Мы используем гаджет, который работает со скоростью 115200 бод, теперь VBA для Rs 232 требует вставки ограничения на чтение полученных данных, но гаджет не требует этого ограничения.
Гаджет, который у нас нетТребовать каких-либо ограничений для данных, полученных от RS 232, как мы можем снять это ограничение? И порт должен оставаться открытым 24 часа, как нам это сделать?
Dim intPortID As Integer ' Ex. 1, 2, 3, 4 for COM1 - COM4
Dim lngStatus As Long
Dim strError As String
Dim strData As String
' Initialize Communications
lngStatus = CommOpen(intPortID, "COM" & CStr(intPortID), _
"baud=115200 parity=N data=8 stop=1")
If lngStatus <> 0 Then
' Handle error.
lngStatus = CommGetError(strError)
MsgBox "COM Error: " & strError
End If
' Set modem control lines.
lngStatus = CommSetLine(intPortID, LINE_RTS, True)
lngStatus = CommSetLine(intPortID, LINE_DTR, True)
' Write data to serial port.
lngSize = Len(strData)
lngStatus = CommWrite(intPortID, strData)
If lngStatus <> lngSize Then
' Handle error.
End If
' Read maximum of 14400 bytes from serial port.
lngStatus = CommRead(intPortID, strData, 14400)
If lngStatus > 0 Then
' Process data.
ElseIf lngStatus < 0 Then
' Handle error.
End If
' Reset modem control lines.
lngStatus = CommSetLine(intPortID, LINE_RTS, False)
lngStatus = CommSetLine(intPortID, LINE_DTR, False)
' Close communications.
Call CommClose(intPortID)
(1) Снять ограничение полученных данных (2) Порт должен оставаться открытым 24 часа
Еслиизмените этот код lngStatus = CommRead (PortID, strData, 14400) на lngStatus = CommRead (PortID, strData), тогда я получаю ошибку компиляции?
введите описание изображения здесь