普通接收函式的改進(時間片 執行緒實現)

2021-07-31 02:01:05 字數 526 閱讀 1892

最最開始,我的資料接收是用wxwi中的定時器定時讀取來實現的,定時器中函式如下:

void scomtestframe::ontimer1trigger(wxtimerevent& event)

}

這其中附帶將資料顯示在wxtextctrl中的處理,那個hexflag實際上是十進位制顯示。。。我當時找了一頓竟然發現不能簡單的將char*指向的儲存區的數值直接顯示出來,所以用了這麼個笨辦法。

read_t函式如下:

dword myserialport::read_t(char*& readbuf)

else return -1;

}return 0;

}

這種處理是每次讀緩衝區所有資料並顯示,但是接收高波特率,大量資料時會很容易沒響應,也許把時間間隔設一點會好一些,但這樣仍然阻塞了主線程,所以我決定還是將通訊部分挪到單獨執行緒去,主線程只負責圖形介面顯示與使用者互動等。

我決定先去把顯示出來再說。。。未完待續

lwip設定recv接收函式超時時間

在socket程式設計中,經常使用recv函式阻塞等待接收資料。如果對方gg了 接收到你的資料之後並沒有返回,你這裡會一直等待下去 顯然我們是不希望出現這種情況的。一般情況下,考慮到對方的資料處理時間,我們可以設定乙個超時時間,比如10s,10s之後如果對方還沒返回訊息,我們就應該做相應的處理。核心...

改進後的篩選函式

private void queryindent click object sender,eventargs e if gs if nullflag gs and company gs else if khbh if nullflag khbh and khbh like khbh else if ...

改進函式 變數的表示

現時僅僅利用圓點表示函式和變數 同樣乙個類,當前效果與先前效果對比。當前對類內部元素布局的進一步思考 1 類內部必須能夠看到所有元素。但可以提供某種篩選策略,例如只顯示函式 只顯示變數。2 函式呼叫 變數依賴這兩種邊是有用的。但必須有有效的篩選。簡單的篩選可以只顯示函式呼叫或者變數依賴。複雜的篩選可...