1、
JSON那一块有点小问题,当我们和手机进行通信的时候,virtualswitch写成本机的地址 192.168.1.100即可。
还有就是 jsonstring.c_str() 后面没有 + 1,不然无法与手机进行通信。
2、路由器配置
(知识:路由器再接路由的时候,另一个路由的LAN口需要设置为另一个网段,否则无法上网)且需要手动配置DNS和备用DNS地址。
WLAN口需要配置DNS服务器。这里的WLAN口是从另一个路由器的LAN口过来的。也就是说,现在的两个路由器之间可以相关访问。
我们在做实验的时候,可以修改主机IP和手机IP在两个不同网段。
LAN口需要和WLAN口设置成不一样的配置:
3、ZMP再思考
循环数组有问题,我们可以将isNew放入数组内部,而不是全局变量出现。
类似isValid[6],当我们收不到数据的时候,应该将isValid置为0,也就是说,超时判断在本线程里面做,而不是另一个线程里面去做。
这里,我们的isValid写在循环数组里面,所有,可以随便调用。充当每一个数组的有效位,来判断是否是有效值。
对于isNew来说,每次得到有效的值,它是在操作的。且其值只有一个,可能会出现在不同线程当中,多次调用的出错。
4、阻塞与非堵塞
更改zmq模式里面的发送方式,改为阻塞式发送。
改用阻塞式的话,有一个很大的问题是,程序会堵塞在那,不会往后执行,除非加上超时退出功能。所以,此环节需要考虑到。当然,这个和程序的执行周期有关系。
只要保证 获取数据的周期 < 发送周期就行。
另外,发送数据需要一直发,即使没有目标也需要发送数据。
这样的话,只要我这边再发送数据,说明程序没有死。假如没有数据程序就死掉了。
我们可以规定最少发送数据数量为1.
假如说isNew只用到一次的话,是完全可以的。也就是说,用在一个线程里面,其实不是。在多个线程里面都有调用。
另外,阻塞模式应该是用不到了。因为,程序会死在那。