data_interval :
当是ubus 时 重新赋值为 3;当是ws 时 重新赋值为 20;
1. 如何理解data_tik ?
在函数can_packet_check_timer 定时can发送函数里面,data_tik 作为倒计时时间,当倒计时间到,则发送。
data_tik 的初始值为:Can_data_table[i].data_tik = Can_data_table[i].data_interval;
初始值为data_interval 赋值。
data_tik 如何递减的?
在can_packet_check_timer 函数里面,进来时,执行
can_packet_check_timer
for (i = 0; i < can_avaliable_data_num; ++i)
{
Can_data_table[i].data_tik--;
}
在websocket 接收到下发参数时,比如同时下发了8个要读的参数,这时在ws_parse_msg 函数里面会把这8个对应的can_table 单元 data_interval 同时初始为 20 或者3 (ubus);
在每一个can_packet_check_timer 定时周期里面,除第一次会把can_table 单元消耗为19-19 19 等外,经过一轮周期8个定时周期 会最终演变为
如何理解read_times?
在早期,当一个科目结束的时候,平板并不会告诉你调试结束。导致设备任然会不停向平板发送数据。(当第二个科目到来的时候,此时又会下发新的数据。)
也就是设备不知道当前科目调试结束了,因此加了这个超时,一旦超时就不往平板发送数据了。