Delphi使用SPComm沒辦法觸發ReceiveData

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

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

作者: 林壽山

目前任職於軟體公司研究開發部門,擔任專業處長,專注於.NET C# 開發,並具備豐富的POS 收銀系統與金流整合開發經驗。我精通各類支付系統的設計與開發,包含第三方支付(如綠界、藍新、歐付寶、速買配、馬來西亞 ePay/HappyPay、台新 One 碼)、行動支付(悠遊卡、一卡通、支付寶、微信支付、街口支付)、以及信用卡支付(聯合信用卡)。 熟悉多種開發技術,擅長PHP 網頁開發(CodeIgniter、Laravel 框架)、Delphi 程式設計、資料庫設計、C# WinForm/WebForm 應用開發、ASP.NET MVC、API 串接設計,並具備LINE 串接開發的豐富經驗。 除了技術開發之外,我也熱衷於技術分享,曾擔任台中學校產業學院講師 5 年,培育新一代的軟體開發人才,致力於推動軟體技術的應用與創新。 我對技術充滿熱忱,始終保持學習與探索的心態,期望透過軟體開發為企業與社會創造更大的價值。

在〈Delphi使用SPComm沒辦法觸發ReceiveData〉中有 2 則留言

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

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

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

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

留言功能已關閉。