LINUX.ORG.RU

Должно работать. Что за мопед? Соединение через него не поднято? Если портов несколько, может работать только на одном из них.

anon_666
()
Ответ на: комментарий от anon_666

хм
если открыть в отдельной консоли cat /dev/ttyUSB0, а в другой echo -ne 'AT+COPS?\r\n', то все работает. а как бы распарсить ответ?

snoopcat ★★★★★
() автор топика
Ответ на: комментарий от snoopcat

Там обычно utf16 в виде побайтового хексдампа, те на шелле:

cat /dev/ttyUSB0 |xxd -r -p |iconv -f UTF-16BE
xxd идёт с gvim.

или на питоне:
print(base64.b16decode( Строка ).decode('utf-16-be'))

anon_666
()
Ответ на: комментарий от anon_666

блин.. щас опять перестал получать ответы на AT-комманды..
открываю:

[neko@gdetotut ~]$ cat /dev/ttyUSB0

передаю команду:


[neko@gdetotut ~]$ echo -e 'AT+COPS?\r' > /dev/ttyUSB0

а там тишина.

snoopcat ★★★★★
() автор топика
Ответ на: комментарий от snoopcat

[neko@gdetotut ~]$ echo -e 'AT+COPS?\r' > /dev/ttyUSB0 & cat /dev/ttyUSB0
[1] 13873
cat: /dev/ttyUSB0: Ошибка ввода/вывода
[1]+ Done echo -e 'AT+COPS?\r' > /dev/ttyUSB0

snoopcat ★★★★★
() автор топика
Ответ на: комментарий от snoopcat

Находил в тырнете такой скрипт на питоне
Наверное можно его даже как-то упростить

#!/usr/bin/python
#coding: utf8
import base64, io, tty

def write2p(a):
#p.write(bytes(a + '\r\n', 'utf8'))
p.write(a + '\r\n')

def to7bit(src):
«„“
Encode ASCII text to 7-bit encoding
»«»
result, count, last = [], 0, 0
for c in src:
this = ord(c) << (8 - count)
if count:
result.append('%02X' % ((last >> 8) | (this & 0xFF)))
count = (count + 1) % 8
last = this
result.append('%02x' % (last >> 8))
return ".join(result)

p = io.open('/dev/ttyUSB0', 'w+b', 0)
tty.setraw(p)
write2p('AT+CUSD=1,' + to7bit('*100#') + ',15')

print('Waiting answer...')
for l in p:
#print(l)
if l.startswith('+CUSD'):
print(base64.b16decode(l[10:l.rfind('«')]).decode('utf-16-be'))
break

p.close()

Lumi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.