2015-05-13 3 views
1

Я работаю над ответом на чтение устройства с помощью QBasic. Проблема заключается в ожидании qbasic для новой строки или CHR $ (13) перед выдачей данных, но у моего ответа устройства нет CHR $ (13) (пример: «ОК»), поэтому qbasic ожидает ожидания новой строки.Qbasic ответ на торговый знак без новой строки

Как я могу получить ответ или прочитать файл даже без новой строки? Это возможно?

[EDIT]

CLS 
    OPEN "com2:9600,n,8,1,BIN,cs,ds,rs" FOR RANDOM AS #1 
    param$ ="Some data" 
    PRINT #1, param$ 
     DO WHILE b$ <> "*CLOSE*" 
     INPUT #1, b$ 
     PRINT b$ 
    LOOP 

Это мой код, но в этом коде он не может читать *CLOSE*, потому что нет новой строки после *CLOSE*.

И еще одно устройство задерживает устройство за 5 секунд до ответа.

ответ

1

Не могли бы вы привести пример вашего кода? Я подозреваю, что вы используете INPUT#n, но, возможно, вместо этого вы должны использовать INPUT$(x). Я нашел example here см ниже код

a$ = "" 
DO 
IF LOC(1) THEN a$ = a$ + INPUT$(1, 1) 
LOOP UNTIL INSTR(a$, "OK") 
+0

Я просто использовать 'INPUT # 1, данные $ PRINT данные $' –

0

Этот пример кода демонстрирует доступ к модему в Basic.

REM Reset modem source: 
CLS 
OPEN "COM2:9600,N,8,1,BIN,CS,DS,RS" FOR RANDOM AS #1 
Reset$ = "ATZ" + CHR$(13) + CHR$(10) 
PRINT #1, Reset$; 
Inp$ = "" 
DO 
    IF LOC(1) THEN 
     Inp$ = Inp$ + INPUT$(1, 1) 
     IF INSTR(Inp$, "OK") THEN 
      PRINT "Modem reset." 
      EXIT DO 
     END IF 
    END IF 
LOOP 
END