Как мне упаковать пакеты данных в непрерывное соединение по телефонной линии? - PullRequest
0 голосов
/ 03 июня 2011

Я работаю над проектом, в котором мне нужно преобразовать пакеты данных (в диапазоне 300 байтов) из службы коротких пакетов Iridium .Это предназначено для замены коммутируемого соединения, поэтому мне нужно взять эти пакеты данных из коротких пакетов и преобразовать их в непрерывный поток подключения удаленного доступа.

Я относительно неопытный программист, и единственный язык, который я знаю, это java.

Как я могу конвертировать данные?Существуют ли справочные материалы о том, как работают типы информационных пакетов и как ими манипулировать в java?

[отредактировано для ясности]

EDIT2: мне не нужно преобразовывать данные другим способомвокруг (от ручья до кусков)

1 Ответ

2 голосов
/ 03 июня 2011

Ваш вопрос неясен относительно того, пишете ли вы программное обеспечение для связи с трансивером Iridium, или находитесь ли вы на стороне сервера, но я предполагаю, что вы находитесь на стороне клиента, поскольку, судя по их веб-сайту, на стороне сервера это стандартная IP-сеть.

Программа общается с приемопередатчиком, используя интерфейс RS-232 и набор команд AT (модем). При использовании Java вам понадобится какая-то последовательная библиотека; Я имел большой опыт работы с таким, в частности, с программой для управления банком модемов, соединяющих их связь с IP-сетью, и в то время единственным пакетом связи, который работал и был стабильным, был SerialPort от SerialIO . Другой потенциально жизнеспособный вариант - RxTx , но когда я работал с этим несколько лет назад, он был нестабильным и приводил к падению JVM каждые несколько дней. С любым из них вы можете (и должны) ограничиться JavaComm API , который позволит вам легко переключать последовательные библиотеки.

Когда вы говорите со своим последовательным портом, манипулирование трансивером должно быть таким же, как и манипулирование модемом, вам нужно будет обратиться к документации для уточнения. Если он верен модему, он будет работать в двух режимах: команда и данные. В командном режиме вы отправляете команды AT xxx, завершенные CRLF. Когда вы находитесь в режиме данных, вы отправляете двоичные данные.

Структура двоичных данных почти наверняка будет определяться системой Iridium, и вам нужно будет соответствовать этому; снова увидеть их доко.

Если вы можете позволить себе определять собственный протокол данных или если у вас есть сообщения в свободной форме поверх их протокола, мой лучший совет - логически составлять ваши пары пар ключевое слово / значение для обеспечения долгосрочной гибкости. Если у вас мало места (и кажется, что ограничения на размер устройств Iridiums довольно строгие), вы можете сделать свои ключевые слова предопределенными (согласованными между клиентом и сервером) и отправить двоичное целое число вместо, скажем, UTF-8 или ASCII. строка. Протокол должен включать или выводить очень простой тип, чтобы числовые значения, особенно, могли быть как можно более сжатыми.

В любом случае, я надеюсь, что это даст вам некоторое руководство и идеи о том, чего ожидать ... пожалуйста, не стесняйтесь задавать вопросы через комментарии, особенно для конкретных вопросов об использовании последовательного порта из Java.

...