Здравствуйте, пытаюсь разобраться с syscomread и syscomwrite, связь между устройствами есть, как в примерах и полезностях постоянно пишу AT, команда уходит, любая другая команда тоже.
CASE master OF
1:
Length1:=LEN(str1);
str_adr:=ADR(str1);
send:=SysComWrite(
dwHandle:=0,
dwBufferAddress:=str_adr,
dwbytestoWrite:=length1,
dwtimeout:=0);
IF send=length1 THEN master:=2; END_IF
Читать хочу по одному байту с модема. Прочитал байт - пишу в переменную, переменную в массив, инкрементирую позицию для записи, пока ничего не останется читать.
2:
read:=SysComRead(
dwHandle:=0,
dwBufferaddress:=ADR(zz),
dwBytesToread:=1,
dwTimeout:=0);
IF read=1 THEN readed[pos]:=zz; pos:=pos+1;
IF read=0 THEN master:=1; END_IF
Результат: в массиве половина данных, то есть если ответ должен быть "ОК", я имею "каретка - О - каретка", позвонил на модем, жду RING, имею "каретка - R - N - каретка". В чем косяк, где теряются данные?
zz - byte, readed - массив byte