LINUX.ORG.RU

[socat][monicom] Надо написать сервер для /dev/tty


0

1

Пару месяцев назад обращался за помощью написания черновика сервера с помощью nc... socat помог, сервер работает:)

Сегодня надо быстро написать сервер для устройства подключённого к последовательному порту /dev/tty (у меня через USB переходник по этому устройство /dev/ttyUSB0)

Сначала пробовал minicom, получил хорошее соединение, с параметрами 19200 8N1, но мне надо чтобы возможно было запустить bash скрипт который бы считывал с помощью read и писал echo... как это сделать с minicom я не знаю...

Потом взял стандартный socat, где с помощью EXEC хорошо получается запускать серверы на bash... но как установить нужные параметры соединения 19200 8N1 ???
Вот, пробую общаться с /dev/tty через терминал:

sudo socat -d -d READLINE,history=$HOME/.USB0_history /dev/ttyUSB0,raw,echo=0,crnl

но получаю кракозябры ибо не установлены нужные параметры соединения 19200 8N1

$ sudo socat -d -d READLINE,history=$HOME/.http_history /dev/ttyUSB0,raw,echo=0,crnl
2011/01/11 10:11:52 socat[22011] N using readline on stdin for reading and stdio for writing
2011/01/11 10:11:52 socat[22011] N opening character device «/dev/ttyUSB0» for reading and writing
2011/01/11 10:11:52 socat[22011] N starting data transfer loop with FDs [0,0] and [3,3]
�����������������������������������������������������������������������������������������������������

Помогите кто чем может...


ЗЫ: Пишу черновик юникс сервера для мониторинга и охраны стационарных и местоположения мобильных (ГЛОНАСС/GPS) объектов.

В частности данный сервер нужен для поддержки «Центральная мониторинговая станция „Контакт GSM“» http://ritm.ru/catalog/index.php?SECTION_ID=62&ELEMENT_ID=335

Уже написано на socat поддержка «Охранно-пожарная панель „Контакт GSM-5“ (с голосом) и „Контакт GSM-5-2“»
http://ritm.ru/catalog/index.php?SECTION_ID=62&ELEMENT_ID=118

Обе используют открытые??? протоколы DSC SurGard и Ademco ContactID


Устройства ГЛОНАСС/GPS:

Система мониторинга подвижных объектов «Планар-Зенит» по каналу GSM (GPRS)
http://www.planar.chel.ru/Products/Moble%20object%20monitoring%20system%20CUP...
Предоставили открытые??? спецификации на оборудование.
Черновик сервера уже написан GPL3.

Система мониторинга подвижных объектов GALILEO
http://7gis.ru/sputnikovyj-glonass-monitoring.html
http://7gis.ru/gps-treker-sputnikovoe-slezhenie-gps-majachok.html
Предоставили открытые??? спецификации на оборудование и бесплатно??? один образец оборудования для тестирования!!!

Система мониторинга подвижных объектов AutoGRAPH
http://www.tk-chel.ru/autograph-gsm/kontrollery-avtograf-gsm-avtograf-gsm-glo...
Протокол закрытый но еть устройства и могу выслать логи tcpdump, wireshark... протокол надо взламать.

Для использования на клиентском месте программы http://gpsdrive.de/ надо написать, тоже сначала c помощью socat, сервер который создаст gps устройство.

Кому поставили подобные задачи? Кому просто интересно? Можно как-то сотрудничать...


>как установить нужные параметры соединения 19200 8N1

socat /dev/ttyUSB0,b19200,cs8,parenb=0,cstopb=0 ..., не?

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

не!

$ sudo socat -d -d READLINE,history=$HOME/.http_history /dev/ttyUSB0,raw,echo=0,crnl,b19200,cs8,parenb=0,cstopb=0
2011/01/11 11:41:59 socat[24014] N using readline on stdin for reading and stdio for writing
2011/01/11 11:41:59 socat[24014] N opening regular file «/dev/ttyUSB0» for reading and writing
2011/01/11 11:41:59 socat[24014] E tcgetattr(3, 0xbfe47c5c): Inappropriate ioctl for device
2011/01/11 11:41:59 socat[24014] N exit(1)

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

Тоже не :(

$ sudo socat -d -d READLINE,history=$HOME/.http_history,ispeed=19200,ospeed=19200 /dev/ttyUSB0,raw,echo=0,crnl 2011/01/11 11:45:41 socat[24090] N using readline on stdin for reading and stdio for writing 2011/01/11 11:45:41 socat[24090] N opening regular file «/dev/ttyUSB0» for reading and writing 2011/01/11 11:45:41 socat[24090] E tcgetattr(3, 0xbf83913c): Inappropriate ioctl for device 2011/01/11 11:45:41 socat[24090] N exit(1)

$ sudo socat -d -d READLINE,history=$HOME/.http_history,ispeed=b19200,ospeed=b19200 /dev/ttyUSB0,raw,echo=0,crnl 2011/01/11 11:46:32 socat[24105] N using readline on stdin for reading and stdio for writing 2011/01/11 11:46:32 socat[24105] N opening regular file «/dev/ttyUSB0» for reading and writing 2011/01/11 11:46:32 socat[24105] E tcgetattr(3, 0xbfc4732c): Inappropriate ioctl for device 2011/01/11 11:46:32 socat[24105] N exit(1)

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

Заработало!

$ sudo socat -d -d /dev/ttyUSB0,b19200,cs8,parenb=0,cstopb=1,raw,echo=0,crnl READLINE,history=$HOME/.http_history,b19200,cs8,parenb=0,cstopb=1

Если кому интересен сервер для устройств работающих по протоколу SurGard пишите... Ну или вообще кому интересно то что описано в первом посте...

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