Я пытаюсь выполнить команду USSD с использованием GSM-модема.Выполнение команды USSD на GSM-модемом (возможно, неправильное кодирование)
AT+CUSD=1,"*200#",15
и результат я получаю не читается
"+ CUSD: 0," Æ · ÜNÓu9XŽt¤å1: - u0Œtši7è, Óëizy®ƒ5ÓnÔL »Ai7½, ш ‡ Ee ·; Ì.ÏAòòœvÓËsÖL »», 15"
когда я пытаюсь тот же код USSD на мобильном телефоне, используя один и тот же сим я получаю правильный результат, который
"Forfait: 909DA. Recharchege: 0.0DA Min gratuites: 0Min. Min Internationales restantes: 0мин»
изменяя набор символов AT + CSCS от GSM к IRA или PCCP, PCDN, 8859-1 не изменяет ответ это тот же ответ точно
и изменения AT + CSCS в шестнадцатеричном дает мне ошибку:
AT+CSCS="HEX"
AT+CUSD=1,"*200#",15
OK
+CUSD: 2,"Unexpected Data Value",15
+CUSD: 2,"Unexpected Data Value",15
ERROR
и изменить его на UCS2 и вызывая USSD сделать мой модем перезагрузки
AT+CSCS="UCS2"
AT+CUSD=1,"*200#",15
Две ошибки Неожиданные значения данных для '*' и ' # ', потому что они не являются шестнадцатеричными символами. При изменении кодировки символов с помощью AT + CSCS она применяется к ** всем ** строкам, следующим, как я упоминал в своем ответе. См. [Этот ответ] (http://stackoverflow.com/a/18672278/23118) для примера настройки UTF-8 с активной кодировкой UCS2.Такая же ошибка применяется во втором случае с UCS2, хотя поведение перезагрузки не так хорошо, как печать полезного сообщения об ошибке «Неожиданное значение данных». – hlovdal