中国移动idc是什么业务中国移动代理ip


红牛工作室:您看能不能以我这个项目写个例子。做电表数据采集就是需要读写锁。大概思路是这样子的,总共3个线程,1个主线程,1个socketTCP线程,内有一个queue队列配1个队列线程.每隔10分钟,主线程添加需要采集的数据到queue,首先要判断是不是第一次发送(因为设备是被动响应,需要发送一个数据唤醒),如果是第一次就直接调用Socket.send发送数据,然后再把这个数据存储到队列线程里面等待onRecv数据解析的结果,数据解析不对或者是等待超时,就在队列线程里面重试5次Socket.send,结果还不是想要的就放弃。如果不是第一次主线程就直接Queue.push_back.直到把需要发送的数据添加完成.主线程添加的这个时候TCP也在同时接收数据,OnRecv如果接收到正确的数据就再次调用OnSend(先queue.pop然后再Socket.send,并把同样的一分数据放到队列线程里面)发送数据采集。这个队列线程主要的作用就是万一有一个电表掉线,在OnRecv里面无法接收到数据造成后面其它需要采集的电表没有抄到。queue用的CCriticalSection做线程安全,3个线程是用的读写锁。现在存在的问题就是这个读写锁用不好,看日志偶尔发现OnRecv和队列线程用时在调用Socket.send,造成设备响应异常,会有2个数据读不到,比如电压和电流。一天24小时每10分钟采集一次数据,有几次就是有几项数据都是

0,看了日志才发现这个问题的。

yufengov:需要恢复的卡暂时不要存入新的文件,可以用读卡器连接到电脑,再用skyRecy恢复里面的文件。



1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。

2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。