![]() |
|
#1
|
|||
|
|||
![]() Суть проблемы такова: сделано устройство (секундомер) которое подключено к СОМ порту и передает байты в виде 254 15 0 15 25 всего 5 байт, написав такой код:
Код:
Procedure TCommThread.QueryPort; Var MyBuff:Array[1..5] Of Char; ByteReaded:Cardinal; Str:String; Status:DWord; Begin If Not GetCommModemStatus(hPort,Status) Then Begin SysErrorMessage(GetLastError); fmMain.btnStop.Click; Exit; End; FillChar(MyBuff,SizeOf(MyBuff),#0); If Not ReadFile(hPort,MyBuff,SizeOf(MyBuff),ByteReaded,Nil) Then Begin SysErrorMessage(GetLastError); fmMain.btnStop.Click; Exit; End; If ByteReaded>0 Then Begin {ByteReaded>0} ReciveBytes:=ReciveBytes+ByteReaded; fmMain.Memo1.Text:=MyBuff; //вот здесь я получаю символы я получаю иероглифы, наверное символы ANSI ![]() мне нужно получить именно байты, распознать их 254 - начало передачи 15 - номер порта (от 1 до 8) 0 15 25 время мин сек мсек помогите плиз. Последний раз редактировалось Admin, 18.04.2010 в 13:09. |