Организовал отправку пакетов AT командами(примеров в интернете куча), все бы хорошо, но вылезает неприятный момент: при отправке вместе с пакетом данных отправлялась фраза "AT+CIPSEND", хотя задержку между чтением/записью в порт организовывал, менял задержки, теперь вместе с пакетами еще выползает кусок пакета, не оборванный, а именно кусок повторный(не более 10 байт). Во вложении что получаю видно.
Код:
8:
IF queue_size>0 THEN
SysComWrite(com_num,ADR(Set_AT_CIPSEND),LEN(Set_AT_CIPSEND),0);
master:=90;
ELSE master:=102; END_IF
90:
IF Wait1.Q THEN
ComRead(rcvStr=>rcvStr); result:=1;
IF FIND(rcvStr,'>')>0 THEN
master:=9;
ELSE master:=8; END_IF
IF FIND(rcvStr,'ERROR')>0 THEN
master:=3; END_IF
END_IF
9:
WHILE queue_size>0 DO
toSend:=QUEUE_POLL(); //выьираем из очереди накопившиеся пакеты
SysComWrite(com_num,ADR(toSend),BYTE_TO_INT(toSend[2]),0);
END_WHILE
IF queue_size=0 THEN
master:=100;
END_IF
100:
SysComWrite(com_num,ADR(Set_26),SIZEOF(Set_26),0);
master:=101;
101:
IF Wait.Q THEN
ComRead(rcvStr=>rcvStr); result:=1;
IF FIND(rcvStr,'SEND OK')>0 THEN
master:=102;
ELSE master:=102; END_IF
IF FIND(rcvStr,'CLOSED')>0 OR FIND(rcvStr,'ERROR')>0 THEN
Set_AT:='AT+CIPCLOSE$R';
SysComWrite(com_num,ADR(Set_AT),LEN(Set_AT),0);
master:=3; END_IF
END_IF
102:
ComRead(rcvStr=>rcvStr); result:=1;
IF queue_size>0 THEN
master:=8;
END_IF