Как я могу получить или дождаться кода результата AT-команды без использования функции Sleep()
в PowerBuilder? Я использую элемент управления MSComm OLE для PowerBuilder. Могу ли я выполнить цикл while, пока свойство MSCOmm.Input
не вернет правильный буфер? (например, OK
) Однако я пробовал это, но Input
возвращает пустую строку.
Вот мой PB-код:
String numbers[]
numbers[1] = "+639394854493"
numbers[2] = "+639394854491"
numbers[3] = "+639394854492"
numbers[4] = "+639394854493"
numbers[5] = "+639394854494"
int cnt = 1
for cnt = 1 to 5
Sleep(0.5)
ole_1.object.Output = "AT" + Char(13) + Char(10)
Sleep(0.5)
ole_1.object.Output = "AT+CMGF=1" + Char(13) + Char(10)
Sleep(0.5)
ole_1.object.Output = "AT+CMGS=" + Char(34) + numbers[cnt] + Char(34) + Char(13) + Char(10)
Sleep(0.5)
ole_1.object.Output = sle_2.text + " - " + string(cnt) + Char(26)
next
А вот и настройки порта:
ole_1.object.CommPort = 7
ole_1.object.Settings = "115200,n,8,1"
ole_1.object.RThreshold = 1
ole_1.object.InputLen = 0
ole_1.object.InputMode = 0
ole_1.object.PortOpen = True
Какие-либо предложения? Или я что-то не так делаю?