Пишу скрипт чтения входящих sms, нужно для запроса баланса. Обнаружил, что сообщения прочитываются с ошибками, пропускаются отдельные символы в unicode-hex строке. Думал у меня руки кривые, запустился в minicom, 7 раз подряд прочитал одно и то же сообщение и каждый раз полученные строки отличаются. Вот лог миникома:
Press CTRL-A Z for help on special keys
at
OK
at+cscs=“gsm”
OK
at
OK
at+cmgf=1
OK
at+cmgr=17
+CMGR: “REC READ”,“w49702245656p696+656”,"",“17/05/04,22:44:10+12”
042304320430043604300435043C044B04390020041A043B04380435043D0442002100200412043004480438002004420435043A04430449043804350020044043004410445043E0434044B00200441043E04410442043004320438043B0438002001
OK
at+cmgr=17
+CMGR: “REC READ”,“w49702245656p696+656”,"",“17/05/04,22:44:10+12”
042304320430043604300435043C044B04390020041A043B04380435043D0442002100200412043004480438002004420435043A044304490438043500200440043004410445043E0434044B00200441043E04410442043004320438043B043800201
OK
at+cmgr=17
+CMGR: “REC READ”,“w49702245656p696+656”,"",“17/05/04,22:44:10+12”
042304320430043604300435043C044B0439002004A043B04380435043D0442002100200412043004480438002004420435043A044304490438043500200440043004410445043E0434044B00200441043E04410442043004320438043B0438002001
OK
at+cmgr=17
+CMGR: “REC READ”,“w49245656p696+656”,"",“17/05/04,22:44:10+12”
042304320430043604300435043C044B04390020041A043B04380435043D0002100200412043004480438002004420435043A044304490438043500200440043004410445043E0434044B00200441043E04410442043004320438043B043800200031
OK
at+cmgr=17
+CMGR: “REC READ”,“w49702245656p696+656”,"",“17/05/04,22:44:10+12”
042304320430043604300435043C044B04020041A043B04380435043D0442002100200412043004480438002004420435043A044304490438043500200440043004410445043E043404B00200441043E04410442043004320438043B0438002000331
OK
at+cmgr=17
+CMGR: “REC READ”,“w49702245656p696+656”,"",“17/05/04,22:44:10+12”
042304320430043604300435043C044B04390020041A043B04380435043D0442002100200412043004480438002004420435043A044304490438043500200440043004410445043E0434044B00200441043E04410442043004320438043B043800201
OK
at+cmgr=17
+CMGR: “REC READ”,“w49702245656p696+656”,"",“17/05/04,22:44:10+12”
042304320430043604300435043C044B04390020041A043B04380435043D0442002100200412043004480438002004420435043A044304490438043500200440043004410445043E0434044B00200441043E04410442043004320438043B043800201
OK
CTRL-A Z for help |115200 8N1 | NOR | Minicom 2.6.1 | VT102 | Offline
Действительно, пропускаются символы и из за этого весь остаток строки кривой и не читается.
С чем это может быть связано и как лечить ?