0
VaComm組件通過COM端口封裝與外部設備的通信。VaComm組件不會觸發OnRxChar事件
void Form::OnButton_Click()
{
VaComm1->PortNum = param.serialComm.port;
VaComm1->Open();
VaComm1->WriteText("bla bla\r\n");
Sleep(3000);
VaComm1->WriteText("another bla bla");
}
我已經設置OnRxChar事件處理程序(通過窗體設計器),它看起來是這樣的:
void __fastcall TForm_Main::VaComm1RxChar(TObject *Sender, int Count)
{
AnsiString str = VaComm1->ReadText();
if (!str.IsEmpty())
{
// process received data
}
}
問題是,此事件甚至沒有開除我的程序使用下面的代碼測量設備進行通信當收到數據時(可通過在無限循環中調用TVaComm :: ReadText方法進行檢查)。向連接的設備發送兩個命令也是成功的(可以在設備顯示器上看到)。當輸入緩衝區中有數據時,打開COM端口接收OnRxChar事件還需要什麼?我也不明白兄弟組件TVaBuffer的目的是什麼?目前我沒有使用它,並可以通過ReadText方法接收數據(正如我上面所寫)。