• Внимание! Перед любыми операциями с китайскими телефонами не забудьте сделать BACKUP! И не говорите потом, что вас не предупреждали!

Поддержка команды AT+CKPD="code", имитирующей ввод с клавиатуры

  • Автор темы Автор темы Ssm17
  • Дата начала Дата начала

Ssm17

.
12/1/13
8
0
0
48
Кредиты
0
Пытаюсь понять, поддерживают ли дешёвые 2-3-симочные "китайцы" эту AT-команду.
Пока что пытался проверять на Fly DS 120 и LG A290 - с DS120 - вообще глухо, а LG A290 поддерживает команду выбора "приёмника" AT+CMEC= (0 или 2), но, что бы я не выбрал, AT+CKPD="клавиша клавиатуры телефона" не срабатывает.

Подскажите, пожалуйста, если кто-то знает, в чём проблема. Очень надо - пытаемся сделать распределённый call-центр на базе телефонов, управляемых компом через Bluetooth.
 
Поддержка есть - это точно. Но вот какими кодами? С этим неплохо справляется прога MobilEdit. . Я тоже пробовал - работает. А . Останется только вычитать управляющие коды, которые в ней используются. Возможно, они в драйверах есть.
 
Благодарю. Сейчас покопаюсь. Подслушать обмен с COM-портом (AT-команды) - дело нехитрое.

---------- Сообщение добавлено 14.05.2013 в 01:33 ---------- Предыдущее сообщение было от 13.05.2013 в 19:08 ----------

Увы, не нашёл функции клавиатуры. Возможно, чтобы её активировать, нужна зарегистрированная версия MobilEdit
 
Подключил. Картинка с имитатором клавиатуры появилась. Но, к сожалению, никакой реакции нет. Скажем, я жму на виртуальной клавиатуре цифру 1 или "Меню", а на моём LG A290 ничего не происходит.

При этом, скажем, в режиме Dial (у меня английская версия) всё прекрасно работает - как только я ввожу номер и жму кнопочку, телефон начинает его набирать и звонить.

Как заставить телефон звонить AT-командами, я уже знаю - "подслушал" сниффером ком-порта: ATD 89ххххххххх; (тут весь секрет в значке ";" ). Но мне-то хочется имитировать именно клавиатурный ввод - чтобы прога вместо оператора бегала по меню и, скажем, отправляла в комп только что созданный звуковой файл.
 
Трудно сказать. Я просто этим как-то не заморачивался и прогой пользуюсь совсем для других целей. Может дрова криво встали, может что ещё.
Извини, дальше сам копай.
 
Спасибо.
Кстати, подсмотрел сниффером, что за команду пытается выдавать MobilEdit. Всё ту же AT+CKPD.
И получает в ответ всё тот же Error (я нажимал на виртуальной клавиатуре цифирки 1, 2 и 3)
80 0.00041597 MOBILeditFramew IRP_MJ_WRITE Btiaspp7 SUCCESS Length 12: AT+CKPD="1".
81 0.03107630 MOBILeditFramew IRP_MJ_READ Btiaspp7 TIMEOUT Length 2: CK
82 0.03096259 MOBILeditFramew IRP_MJ_READ Btiaspp7 TIMEOUT Length 16: PD="1"...ERROR..
83 0.59356902 MOBILeditFramew IRP_MJ_READ Btiaspp7 TIMEOUT Length 1: A
84 0.00006286 MOBILeditFramew IRP_MJ_WRITE Btiaspp7 SUCCESS Length 12: AT+CKPD="2".
85 0.03113440 MOBILeditFramew IRP_MJ_READ Btiaspp7 TIMEOUT Length 2: T+
86 0.04671208 MOBILeditFramew IRP_MJ_READ Btiaspp7 TIMEOUT Length 18: CKPD="2"...ERROR..
87 0.82802172 MOBILeditFramew IRP_MJ_READ Btiaspp7 TIMEOUT Length 1: A
88 0.00006481 MOBILeditFramew IRP_MJ_WRITE Btiaspp7 SUCCESS Length 12: AT+CKPD="3".
89 0.07799511 MOBILeditFramew IRP_MJ_READ Btiaspp7 TIMEOUT Length 20: T+CKPD="3"...ERROR..

Фокус в том, что должна быть команда выбора получателя для AT+CKPD. Вроде как AT+CMEC (на Siemens - именно так). И AT+CMEC даже воспринимается моим LG A290. Но, к сожалению, ни при одном из 2-х вариантов (0 и 2) эмуляция ввода с клавиатуры почему-то не работает. :-(
Может, у LG есть ещё и другая команда выбора.
 
А подключался как? Через кабель или Блютуз?
 
Гм... Через Bluetooth. Думаете, телефон блокирует команду по соображениям безопасности?
Я это проверю, как только раздобуду кабель micro-USB.
 
Телефон поддерживает или не поддерживает AT комманду заложено разработчиком софта для тел. легко(если софт не пак.)можете посмотреть в Hex редакторе прошу При приеме модемом TA всякая последовательность после "АТ+" инерпретируется как стандартная и обрабатывается функциями прошивки если такого обработчика нет то ERROR Очень упрощенно как-то так...
А у MobilEdit есть логи(где то в Documents and Settings)...
 
Основная команда
AT+CKPD="клавиша или клавиши".

AT+CKPD="code"
Где code
0..9 – цифровые клавиши; (можно написать "12345" будет введено 12345)
E или e – завершить соединение (красная трубка); (может работать и как Esc)
S или s – сделать вызов (зеленая трубка);
M - центральная клавиша джойстика (меню)
< - джойстик влево; (или отмена)
> - джойстик вправо; (или Ok)
^ - джойстик вверх;
V или v – джойстик вниз;
[ - левая софт-клавиша;
] – правая софт-клавиша;
# - решетка ;
* - *;

Возможно, эмуляция запрещена - тогда её нужно разрешить командой
AT+CMEC=2

Нужно сказать, что эмуляция ввода происходит довольно медленно. Иногда это приводит к казусам - нужно делать паузы, иначе телефон просто не успевает отработать все эмулируемые нажатия. К примеру, чтобы мой LG-A290 сбросил в мой комп файл, только что сохранённый на карту памяти по автозаписи, приходится дважды делать паузы.
write(comport, 'at+ckpd="[]e[<^mVmvm"');
sleep(1000);
write(comport, 'at+ckpd="^"');
sleep(1000);
write(comport, 'at+ckpd="[Vm^mVm"');
 
Последнее редактирование:
Назад
Верх Низ