comポートでデータを送信する臨床デバイスがあります。ENQでACKを送信した後、最初のフレーム(254)文字も受信したデバイスからデータを受信したい[ETB] [CR] [LF]文字を受信してから、もう一度ACKを送信します次のフレーム用ですが、EOT文字のみを受信するデータは受信しません
デバイスごとのデバイス通信は次のとおりです。
<-[ENQ]
-> [ACK]
<-[STX] 1H | * ** * ** * ** * ** * ** * ** * ** * -[ETB] 21 [CR] [LF]
-> [ACK]
<-[STX] 1H | * ** * ** * ** * ** * ** * ** * ** * -[ETX] 8E [CR] [LF]
-> [ACK]
<-[EOT]
私のコードは:
'MSComm1.Settings = "9600,n,8,1"
'MSComm1.InputLen = 1
Private Sub MSComm1_OnComm()
Dim InBuff As String
InBuff = MSComm1.Input
if Chr$(5)=InBuff then 'ENQ received
MSComm1.Output=Chr$(6) & VbCr
elseif Chr$(10)=InBuff then 'LF received
MSComm1.Output=Chr$(6) & VbCr
else
text1.text=text1.text & InBuff
end if
End Sub
完全なデータを送信するデバイス1つのソフトウェアには完全なデータを受信するデバイスが付属していますが、ACKを再度送信した後、次のフレームを受信しませんでした。次のACKにどの出力を送信する必要があるかを誰かが知っている場合は、アドバイスしてください。
前もって感謝します