[identity profile] yevro.livejournal.com posting in [community profile] useful_faq
Здравствуйте!
Требуется написать программу управления GSM/GPRS модемом Moxa по RS-232 на си (Линукс), которая бы позволяла установливать соединение (через ftp, сотовую связь), передавать данные, контролировать целостность соединения, восстановление соединения при необходимости, разорвать соединение. Предполагаю, что это должно производиться как-то через АТ-команды модема. Может быть у Вас уже есть опыт подобного написания программ и Вы посоветуете что-нибудь в качестве примера, прототипа? либо не могли бы посоветовать, где про такое могут обсуждать? Спасибо

Date: 2014-08-24 09:06 am (UTC)
From: [identity profile] windcryomancer.livejournal.com
Для работы с последовательным портом в Линукс сперва порекомендую прочитать документ Linux Serial HowTo: http://www.tldp.org/HOWTO/Serial-HOWTO.html. Есть и русские переводы вроде, не уверен точно.
Руководствовался именно этим документом, когда писал своё приложение, в принципе там всё просто: устанавливаешь связь с устройством, даёшь ему команды по управляющему протоколу, получаешь ответы и обрабатываешь их.
Если желаете, напишите в личку, приведу примеры кода.

Date: 2014-08-24 09:15 am (UTC)
From: [identity profile] rm-chik.livejournal.com
для того чтоб отправить в модем инит-строку для инициализации gprs-сессии, много ума не надо
но вот для того чтоб из этого возник ip-интерфейс, по которому будет бегать потом ваш ftp, нужен pppd

собственно, если изобретение велосипеда для "управления модемом" не является конечной целью, то все необходимые велосипеды в linux уже есть. почитать можно, например, здесь:
https://wiki.archlinux.org/index.php/3G_and_GPRS_modems_with_pppd_alone_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)

Date: 2014-08-24 09:58 am (UTC)
From: [identity profile] rm-chik.livejournal.com
1. Unix и Linux - не одно и то же.
2. В Windows 7 вы можете использовать бесплатную виртуальную машину Oracle Virtualbox чтобы установить на нее Linux

Вообще, Вы уверены что если вы не знаете этих вещей, в общем-то довольно азбучных - Вы хотите писать что-то сами? Это решение для production или просто какой-то зачёт в обучении?

Date: 2014-08-24 06:02 pm (UTC)
From: [identity profile] rm-chik.livejournal.com
если речь о продакшене - почему нельзя использовать готовый инструментарий, тот же самый pppd, а конкретное использование автоматизировать скриптами на bash, например?

Date: 2014-08-25 03:10 am (UTC)
From: [identity profile] http://users.livejournal.com/_steap_/
+1 к Bash. Уверен даже есть подобные готовые скрипты.

Date: 2014-08-24 12:47 pm (UTC)
From: [identity profile] dims12.livejournal.com
В Windows тоже есть программы-терминалы, например, putty или hyperterminal. Если нужно передавать файлы через соединение, то нужна программа, поддерживающая X- ZModem.

Чтобы было FTP опять-таки, нужно настроить Dial-Up соединение с интернет-провайдером.

Date: 2014-08-24 12:44 pm (UTC)
From: [identity profile] dims12.livejournal.com
Никакая программа не нужна, все программы есть в Линукс готовые. Откройте COM порт любой терминальной программой, например, minicom и Вы получите необходимый функционал. То есть, сможете, отдавая AT-команды, приказать модему позвонить на другой модем и соединиться с ним. Если на другом конце тоже сидит человек с minicom, Вы сможете с ним переписываться, как в скайпе. Сможете передавать друг другу файлы.

Чтобы работало FTP, нужен интернет. FTP -- это протокол поверх интернета. Если нужен интернет, то тоже все программы есть в Линукс -- для установления Dial-Up соединения с провайдером.