Вверх ↑
Этот топик читают: Гость
Ответов: 655
Рейтинг: 18
#1: 2013-02-19 11:33:32 ЛС | профиль | цитата
Всем привет!

Есть задача получить баланс 3G модема Huawei E173..
немного разобравшись выяснил что при установке модема в системе появляется как минимум 3 COM порта, AT команды надо слать в "HUAWEI Mobile Connect - 3G PC UI Interface"
AT команда для запроса баланса (Мегафон *100#) будет выглядеть так: AT+CUSD=1,"AA180C3602",15
В ответ должно прийти нечто похожее на:
+CUSD: 0,"0030002C003000300020044004430431002E0020002A00310030003000300030003000
300020042504180422043E0432002B002204170430043C0435043D04380020041304430434043E04
3A00220020043104350441043F043B002E002A003500310035002300200028003100300440002F04
4104430442002900200442002E00300031003000350038",72

^RSSI:23

^RSSI:27

Обмен информацией происходит в PDU формате.
Онлайн конвертер: http://smstools3.kekekasvi.com/topic.php?id=288

Собственно к чему я это все расписал:
через hyper terminal команда AT+CUSD=1,"AA180C3602",15 и ответ +CUSD: 0,"0блаблабла приходит, все ок.
Пробовал повторить все тоже самое через компонент COM порт..отправляю данные AT+CUSD=1,"AA180C3602",15..в ответ получаю только ^RSSI:число...как я понял это уровень сигнала.
пробовал считывать из порта до 255байт..пробовал считывать данные по таймеру с разными настройками ..результат всегда ^RSSI:число


Вопросы:
1) куда копать? в hyper terminal все отлично..
2) у кого есть такой же модем?))


карма: 0

1
Голосовали:Ex_
Ответов: 5446
Рейтинг: 323
#2: 2013-02-19 11:46:12 ЛС | профиль | цитата
Gunnman, Enter (0x13) после команды посылаешь?
карма: 1

0
Ответов: 655
Рейтинг: 18
#3: 2013-02-19 12:37:58 ЛС | профиль | цитата
iarspider, нет, подскажи пожалуйста как правильно слать? и если можно ссылку где почитать о таких командах
------------ Дoбавленo в 12.37:
в конце команды AT+CUSD=1,"AA180C3602",15 указал
iarspider, спасибо за подсказку!!
Итого: на модемах huawei e173 шлем AT+CUSD=1,"AA180C3602",15
- это запрос баланса *100# (мегафон и мтс)
другие коды можно получить тут: http://smstools3.kekekasvi.com/topic.php?id=288

следующий этап разбор PDU формата.
карма: 0

0
Ответов: 1173
Рейтинг: 49
#4: 2013-02-19 14:16:43 ЛС | профиль | цитата
Gunnman, не могли бы вы показать схему такого "посылателя"? У самого Huawei E171, но вот такая схема показывает пустое сообщение:
Add(MainForm,2953706,21,105)
{
link(onCreate,12876538:doEvent1,[])
}
Add(COM,6353214,161,119)
{
link(onWrite,426080:doCompare,[])
link(onRead,14076168:doMessage,[(200,132)(200,83)])
}
Add(DoData,3308661,105,140)
{
Data=String(AT+CUSD=1,"AA180C3602",15
)
link(onEventData,6353214:doWrite,[])
}
Add(Hub,12876538,70,119)
{
link(onEvent1,6353214:doOpen,[])
link(onEvent2,3308661:doData,[(95,132)(95,146)])
}
Add(Message,14076168,210,77)
{
}
Add(If_else,426080,210,119)
{
Type=5
Op2=Integer(0)
link(onTrue,6353214:doRead,[(249,125)(249,160)(151,160)(151,153)])
}
------------ Дoбавленo в 14.16:
Упс, у меня же Билайн
Но скажите, в общем схема верна?
карма: 0

0
Ответов: 655
Рейтинг: 18
#5: 2013-02-19 15:31:38 ЛС | профиль | цитата
Вот моя схема, у меня CUSD возвращает ответ (баланс.

code_30369.txt
------------ Дoбавленo в 15.31:
Ex_, ты забыл указать сколько байт считать из COM порта..+ не забывай что ответ на USSD запрос приходит с задержкой, так лучше опустошать порт по таймеру ИМХО.

карма: 0

0
файлы: 1code_30369.txt [1KB] [234]
Разработчик
Ответов: 26164
Рейтинг: 2127
#6: 2013-02-19 15:33:04 ЛС | профиль | цитата
Gunnman писал(а):
Вот моя схема

Опять распространенная ошибка -- использование потокового таймера в работе на интерфейсный элемент
карма: 22

0
Ответов: 655
Рейтинг: 18
#7: 2013-02-19 15:34:32 ЛС | профиль | цитата
Протокол PDU:
http://forum.hiasm.com/forum_serv.php?q=56&id=3480
Желающиезнающие давайте его разберем и добавим в HIASM для работы с 3G модемами
карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#8: 2013-02-19 15:35:09 ЛС | профиль | цитата
Gunnman писал(а):
не забывай что ответ на USSD запрос приходит с задержкой,

А не проще использовать COMEX для этой цели, я его специально добавил в пакет
карма: 22

0
Ответов: 655
Рейтинг: 18
#9: 2013-02-19 15:35:31 ЛС | профиль | цитата
nesco, чем грозит такое использование? чем заменить потоковый таймер?
карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#10: 2013-02-19 15:36:31 ЛС | профиль | цитата
Gunnman писал(а):
Желающиезнающие давайте его разберем и добавим в HIASM для работы с 3G модемами

Ну и кому он упал
Его что, нельзя сделать из штатных компонентов
карма: 22

0
Ответов: 655
Рейтинг: 18
#11: 2013-02-19 15:36:34 ЛС | профиль | цитата
nesco, дык я на COMEX сейчас и пробую) предыдущая версия схемы бетта тест так сказать)
карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#12: 2013-02-19 15:38:23 ЛС | профиль | цитата
Gunnman писал(а):
чем грозит такое использование?

Крэшем программы в самый неподходящий момент
Gunnman писал(а):
чем заменить потоковый таймер?

См мой пост выше
------------ Дoбавленo в 15.38:
Gunnman писал(а):
дык я на COMEX сейчас и пробую

Только не используй прямую точку onRead, используй только onSyncRead
карма: 22

0
Ответов: 655
Рейтинг: 18
#13: 2013-02-19 15:40:32 ЛС | профиль | цитата
nesco, понял, спс.
при использовании COMEX мне для считывания из порта не нужно указывать кол-во байт? COMEX "знает" сколько в буфере COM порта байт?
карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#14: 2013-02-19 15:43:40 ЛС | профиль | цитата
Gunnman писал(а):
COMEX "знает" сколько в буфере COM порта байт?

Сколько примет -- все и выдаст
карма: 22

0
Ответов: 655
Рейтинг: 18
#15: 2013-02-19 15:58:17 ЛС | профиль | цитата
Схема на компоненте COMEX от nesco

code_30370.txt
карма: 0

1
файлы: 1code_30370.txt [658B] [263]
Голосовали:Ex_
Сообщение
...
Прикрепленные файлы
(файлы не залиты)