Решил вопрос передачи информации путем дополнительного оборудования (MOXA NPort 5110), но теперь проходит инициализация, но не передается само сообщение, я догадываюсь что проблема в строчке WAITFOR (ack, ERR_NO )
VAR sText, sMsgSend, sWaitstr, MAXLOOPS, ANSSELECT, ANSBUSY, ANSACCEPT, ANSABSENT, ANSTERMINATE;
CONVERT = 142 TO 91, 153 TO 92, 154 TO 94, 132 TO 123, 148 TO 124, 129 TO 126, 225 TO 30;
CHECKSUM = MODE_5,1;
// Please check in the manual if your Pager System is supporting messages which are up to 128 characters long. // Some systems are only supporting messages up to 56 characters in length. If this is the case please // change the variable MAXCHAR accordingly. sText = MAXCHAR(Message, 128); sMsgSend = "1" + stx + "1" + ^_ + ReceiverID + ^^ + "2" + ^_ + sText + ^^ + "3" + ^_ + "1" + ^^ + "4" + ^_ + "3" + etx;
sMsgSend = CHK(sMsgSend);
TIMEOUT = 10; MAXLOOPS = 6;
ANSSELECT = "1" + ^E; ANSBUSY = "7" +^_ + "1"; //ANSACCEPT = "7" +^_ + "2"; ANSACCEPT = "7" +^_ + "я"; // Zeichen 0FFH ANSABSENT = "7" +^_ + "4"; ANSTERMINATE = "7" +^_ + "5";
DELAY 1;
LOOP 1 DO TRANSMIT ("1" + ^E); TRANSMIT ("2" + ^E); WAITFOR(ack,ERR_NO); IF ERR = ERR_NO THEN TRANSMIT(^A + sMsgSend); WAITFOR (ack,ERR_NO); IF ERR = ERR_NO THEN TRANSMIT(eot); EXIT; ENDIF; ENDIF; TRANSMIT(eot); LEND;
IF ERR = ERR_NO THEN LOOP MAXLOOPS DO TRANSMIT ("2" + ^E); WAITFOR(eot,ERR_NO,ANSSELECT,"REPLY"); IF ERR = "REPLY" THEN TRANSMIT(ack); WAITFOR(ANSBUSY,"STBUSY",ANSACCEPT,"STACCEPT",ANSABSENT,"STABSENT",ANSTERMINATE,"STTERMINATE"); IF ERR = "STBUSY" THEN TRACE ("Pager busy"); // wait ENDIF; IF ERR = "STACCEPT" THEN TRACE ("Call in queue"); ERR = ERR_NO; ENDIF; IF ERR = "STABSENT" THEN TRACE ("Absent"); ENDIF; IF ERR = "STTERMINATE" THEN TRACE ("Pager unregistered"); ENDIF; TRANSMIT(ack); IF ERR <> "STBUSY" THEN EXIT; ENDIF; ENDIF; IF ERR = ERR_TIMEOUT THEN EXIT; ENDIF; LEND; ENDIF;
IF ERR = ERR_NO THEN RETURN (TRUE); // successful ELSE RETURN (FALSE); // not successful ENDIF;
В результате в гипертерминале появляется 12 и какой то знак, дальше десига подвисает и выдает ошибку передачи, помогите разобраться как передать сообщение и в чём проблема. Есть ли какая нибудь документация по Pager Script? И что такое ack?
|