После разборок с местной страховой компанией "ТАСК" у мну пропала БОЛЬШАЯ ВЕРА в страховые компании вообще, а из "ТАСКа" советую бежать со всех ног!
Поэтому, чтобы сэкономить на "Каско", я решил не заниматься выдумляндией, а поставить в свой новый автомобильчик готовую GSM-охранку "Страж-SMS 4x4-GPS" от
"Телесистем", которую прикупил во время очередной поездки в Москву.
Какое ждало разочарование: эта система ни черта не хотела слать SMS-ки в Беларуси, что она могла, так только дозваниваться и "молчать" в трубку! Упоминание о неработоспособности "Стража" нашёл и на украинских форумах. На сайте производителя, правда, написано, что поделка "Страж" работает исключительно в российских сетях, но по жизни, чтобы программно привязать аппарат к региону надо написать извращённый код.
Раз деньги "уплочены" - надо чинить
Открыл пластмассовый корпус, оказалось, что конструкция "Стража" махровая кустарщина: в качестве GSM-модема с помощью МГТФ-проводков прилеплена плата от старого Siemens-а C35i с которой снята часть деталей, собственно контроллер сигнализации (какой-то PIC) подключен к выводам UART-а платы телефона. Чтобы включать телефон, когда он проваливается в спящий режим, к кнопочке "POWER" телефона припаян проводок, который идёт к контроллеру.
Ну что ж, посмотрим, что не так в обмене с телефоном: припаиваю UART-интерфейс и смотрю лог обмена контроллера с телефоном во время срабатывания сигнализации.
Код:
|
............
at+cpbr=10 +CPBR: 10,"+375295968565*10",145,"Number1"
OK
at+cmgf=0 OK
at+cmgs=140 › 0011000C917325596958560F0000AA18D3B27BFE96C3686FB1 BA3CA683866536BB67A3C16C0000 {1Ah}
ERROR ‹‹‹‹‹‹‹‹‹‹ вот он "северный олень": неправильный формат номера :)
at+cpbr=05 +CPBR: 5,"0220010000000",129,"Sensor04object"
OK
at+cpbr=11 +CPBR: 11,"+375295968565*10",145,"Number2"
OK
at+cmgf=0 OK
at+cmgs=140 › 0011000C917325596958560F0000AA18D3B27BFE96C3686FB1 BA3CA683866536BB67A3C16C0000 {1Ah}
ERROR ‹‹‹‹‹‹‹‹‹‹ повтор ошибки
at+cpbr=05 +CPBR: 5,"0220010000000",129,"Sensor04object"
OK
............ |
Ошибка программистов "Телесистем" видна невооружённым глазом: телефон явно не согласен с такой СМС-кой и пишет "ERROR"
Ошибка кроется в формате передачи номера.
Код:
|
› было 0011000C917325596958560F0000AA18D3B27BFE96C3686FB1 BA3CA683866536BB67A3C16C0000 {1Ah}
› дополнение номера "выравнивающим" кодом 0Fh не требуется!!!
› надо 0011000C917325596958560000AA18D3B27BFE96C3686FB1BA 3CA683866536BB67A3C16C0000 {1Ah} |
Врядли фирма "Телесистемы" захочет мне "за так" менять прошивку в моём вскрытом "Страже": скорее всего будет "пестня" про "вскрытую пломбу", ссылку в руководстве на "работу только в сетях России" и пр.бред: надо придумывать как ремонтировать самому.
Первой мыслью, которая меня посетила, было приделать маленький контроллер, который будет стоять в разрыве провода TX между контроллером и телефоном, и как только встречается команда
at+cmgs= - исправляет в сообщении номер телефона. Это хорошее, простое и универсальное решение и на самом деле так и надо делать.
Мыслью номер два была мысль о том, а нельзя ли как-нибудь "обойти" это дефект? Ведь неспроста "Страж" работает в России и не работает в Беларуси и на Украине: может просто так получается, что из-за разницы длины кода страны в России всегда надо дополнять номер выравнивающим кодом, а в Беларуси и на Украине это выравнивание не требуется.
Решение оказалось простым: номера, по которым требуется рассылать СМС-ки, в конце надо дополнить символом #. Т.е. запись СМС-телефона должна выглядеть +375295968565#*10 (10 - значит, что на номер шлются только СМС-ки ), после такой записи начинают нормально рассылаться телефоном.
К сожалению, позвонить по номеру +375295968565# "стражу" не удаётся: сеть пишет, что это неправильный номер. Поэтому для дозвона по такому же номеру в следующей ячейке надо завести запись вида +375295968565*01 (01 - значит, что на номер идёт только дозвон). Создать номер для посылки СМС-ок и дозвона в виде одной записи, как задумывали авторы к сожалению не получится: для дозвона и посылки СМС по одному номеру придётся использовать 2 разных ячейки памяти.
Надеюсь моя писанина поможет кому-нибудь сберечь свои нервы и немножко денег
К посту прилагается полный
лог обмена контроллера с платой Siemens C35.