http://www.cnblogs.com/fyhui/archive/2012/05/02/2478537.html
2012
這里的“數據接收”特指下位機發(fā)送給上位機的數據。其“時機”有兩種方式:1>上位機請求下位機數據時,下位機被動“數據發(fā)送”給上位機;2>下位機主動“數據發(fā)送”給上位機。
下面分析這兩種方式應用場合。
方式1>的實現方式有兩種,a>在上位機界面,用戶主動觸發(fā)發(fā)送請求命令,如點擊按鈕;b>上位機定時發(fā)送請求命令。有下列情形之一,使用方式1>:
a> 使用方式2>數據發(fā)送頻率過快,導致串口緩沖器壓力過大;或沒必要使用2>方式過頻繁更新上位機數據。
b> 一臺上位機掛載多個下位機,而且是單工串口通信,導致下位機無法掌控發(fā)送時機,所以必須上位機控制發(fā)送進度,采用請求下位機A數據,阻塞等待下位機A返回數據,然后請求下位機B數據······
方式2>實現方式有a>下位機數據改變時,主動發(fā)送數據給上位機;b>如果下位機是由控制板和采集器組成,而控制板可以控制定時,可以由下位機定時給上位機發(fā)送數據。有下列情形之一,使用方式2>:
a> 下位機數據更改頻率較慢,而采用上位機定時請求定時過快數據浪費,定時過慢數據更新很不及時,所有采用下位機數據變化時主動上傳數據。
情形一:
下位機數據有時1秒鐘變化2-5次,有時5分鐘變化一次。使用下位機數據改變時發(fā)送。
情形二:
下位機數據有時1秒鐘變化20次。如果a>過快更新導致串口和上位機UI刷新壓力;b>數據發(fā)送不是變化累計而是完整數據,使用上位機定時請求。
情形三:
上位機無法控制進度,容易導致串口壓力過大等問題,請使用上位機定時請求或者用戶觸發(fā)時再請求。