Delphi使用SPComm沒辦法觸發ReceiveData

SPComm 在連線Com機器時,時候沒辦法觸發 ReceiveData,後來才知道StartComm後要留點時間給它喘氣(連線)。所以加上sleep~

var 
  s:Ansistring;
begin
  RepCom.StartComm;
  s := Chr(16) + Chr(4) + Chr(1) ;
  sleep(50);
  RepCom.WriteCommData(PAnsiChar(s),Length(s));
end;

我要留言

留言

關於 林壽山

林壽山 資深系統分析師,擅長PHP網頁設計(CodeIgniter、Laravel)框架、Delphi程式設計、資料庫設計、C# WinForm/WebForm程式設計
本篇發表於 Delphi 並標籤為 , , 。將永久鏈結加入書籤。

2 則回應給 Delphi使用SPComm沒辦法觸發ReceiveData

  1. kuraki5336 說道:

    設備的COM是連續送資料 在你COM OPEN ReceiveData 就會一直活著
    反之 開了在他一定的設定時間內沒收到資料他就會將thread 關閉。直到下次你再OPEN
    假設以溫度計或者是磅秤機來看。他們會持續送。以信用卡機來看就會收不到。

    先讓他喘氣就不會斷了,我等等來測看看。

    我之前也有在弄SPCOM也有遇到這問題。那時候一直在想是因為一班設備都是連續送他才這樣寫的嗎

  2. 林壽山 說道:

    我是控制發票機跟出單機,發現
    StartComm之後馬上接著WriteCommData不會觸發ReceiveData,後來加上Sleep(50)等Com連線就正常了。

發表迴響

你的電子郵件位址並不會被公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料