Ужас, сколько всего :)
На самом деле строчка "*100#" превращается такими командами (слегка попортив GSM::PDA код)
$_='AA180C3602';
print;
$_=unpack'b*',pack"H*",$_;
s/([01]{7})/${1}0/g;
$_=pack 'b*',$_;
print "'$_'";
$_=unpack 'b*',$_;
s/([01]{7})0/$1/g;
print unpack"H*", pack'b*',$_;
# aa180c360200
Декодировка. Упаковать в lsb-бинарную строчку (младший бит первый):
AA => 01010101
18 => 00011000
0c => 00110000
36 => 01101100
02 => 01000000
Собираем в кучу:
0101010100011000001100000110110001000000
Нарезаем по 7 бит (я просто добавил по биту после каждого 7-го - а потом снова порезал на 8)
и декодируем.
bits = 01010100 10001100 00001100 00001100 11000100
septet = 0101010
septet = 1000110
septet = 0000110
septet = 0000110
septet = 1100010
Получили '*100#'
Ответ в UCS2 или UTF-16BE..
И ещё интересно:
at+cscs=?
+CSCS: ("IRA","GSM","UCS2")
Хотя at+cscs="GSM" выдаёт ОК и ничего не меняется :)
Да. И всё отправляется и принимается чудненько через консольку ttyUSB1.
Не надо писать в одну и читать в другую :)
Комментариев нет:
Отправить комментарий