На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 58,
участников - 11 [ melom, garynych, Alexandr G, muha131, HDD, dimss, dir320, ew2abc, Silent, qwert0173, Dubai]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Программное обеспечение —› Как программно преобразовать данные с COM порта для управления приемником по LAN 
Широкополосные связные радиоприемники в нашем магазине


Icom IC-R6
руб.

Yaesu VR-120D
руб.

Icom IC-R75
руб.

Yaesu VR-160
руб.

Icom IC-R20
руб.
Автор Сообщение
marvel
Участник
Offline5.9
с фев 2003
Москва
Сообщений: 2182

Дата: 06 Сен 2015 13:46:21 #  

Суть задачи такова. Нужно программными средствами преобразовать данные с последовательного порта программы управления частотой РПУ, и направить их по протоколу telnet в приемник, у которого в качестве интерфейса управления есть только Ethernet. Пример такой. Есть некая прога - W-Code, в настройках которой можно задать выдачу кода частоты для управления каналом трафика Inmarsat-C по сигналам контрольного канала NCS. В программе можно установить выдачу кода частоты только по протоколу RS-232. Формат выводимых данных таков: RF1537100000 - частота канала управления NCS, RF1539455000 - например частота канала трафика. Приемник с LAN должен соответственно синхронно, в реальном времени, и без задержек автоматически настраиваться (перепрыгивать) с одной частоты на другую. Приемник с LAN по telnet понимает команду управления частотой только в таком виде: freq 1537100000 - частота канала управления NCS, freq 1539455000 - частота канала трафика. Соответственно, нужно как-то перехватить и преобразовать с удалением префикса RF и подстановкой freq каждое значение частоты с программы W-Code, и направить это значение в telnet, для дальнейшего управления приемником. Причем, видимо нужен какой-то скрипт для автоматической записи и передачи в telnet. Какими программными средствами это наиболее просто сделать? Нужна ли многоходовая комбинация с преобразованиями, и промежуточными программами-плагинами, или всю проблему можно решить с помощью одной программы? Желательно конечно иметь уже готовое решение...
Olexandr
Участник
Offline3.5
с мая 2009
Оренбург/Днепропетровск
Сообщений: 615

Дата: 06 Сен 2015 13:54:15 #  

Это к АСУ ТП не относится? Там используют контроллеры. Сколько раз я сталкивался, производители не советуют постоянно использовать СОМ порт, только для настройки.
Реклама
Google
marvel
Участник
Offline5.9
с фев 2003
Москва
Сообщений: 2182

Дата: 06 Сен 2015 14:14:15 #  

Это к АСУ ТП не относится?
Ни коим образом! Никакие устройства типа MOXA и пр. я даже не рассматриваю. У них в основном задача сбора данных с передачей в Ethernet, или дистанционный вынос com-порта по Ethernet. Все можно решить программными способами. Да и задачка у меня не совсем тривиальная. К тому-же и com-порт виртуальный.
Zmej
Участник
Offline3.1
с дек 2005
...
Сообщений: 10681

Дата: 06 Сен 2015 19:31:26 · Поправил: Zmej (06 Сен 2015 19:33:28) #  

всю проблему можно решить с помощью одной программы? Желательно конечно иметь уже готовое решение...

Любой программист-самоучка сделает вам такую программку. Нужен компонент для сом порта и socket. Дальше по приходу строки из сом порта она будет переформатироватся в нужный вид и отправляться в сокет.
marvel
Участник
Offline5.9
с фев 2003
Москва
Сообщений: 2182

Дата: 06 Сен 2015 20:12:05 · Поправил: marvel (06 Сен 2015 20:15:49) #  

Любой программист-самоучка сделает вам такую программку
Вот-вот все кажется таким простым, а начнешь разбираться-дебри!
Я вроде как нашел одно из решений - экспорт в EXCEL с помощью компонентов MSComm и написания макроса.
А дальше в том-же EXCEL макрос на Telnet.
Но дальше примеров я не сдвинулся с мертвой точки... Не программист я!
сом порта она будет переформатироватся в нужный вид и отправляться в сокет.
Вот тут пожалуйста поподробнее - какими подручными средствами это можно сделать?
Может просто подменять пакеты TCP c данными Com порта. Пакеты я просниффил в Wireshark. Там ничего особенного - 72 байта и все в явном виде...
Zmej
Участник
Offline3.1
с дек 2005
...
Сообщений: 10681

Дата: 06 Сен 2015 20:24:28 #  

Нужная какая-то визуальная среда разработки, делфи там или C++Builder, может другие есть новей, но я уже не интересуюсь этим. Там всё примерно так: перетянул на форму компоненты нужные, дальше в них настроил параметры, скорость обмена для порта, куда соединяться телнет-клиенту... Потом там обработчики событий, например, что делать когда в сом порт поперли символы, вот и начинаем их записывать в переменную, дальше шлифуем их, если нужно, отдаем в другой компонент, тот же tcp-клиент. Язык операторов довольно простой, есть много примеров для начинающих.
marvel
Участник
Offline5.9
с фев 2003
Москва
Сообщений: 2182

Дата: 06 Сен 2015 20:31:06 #  

Нужно еще и указать последнюю строку в логе частоты, чтобы программа забирала именно последнюю частоту.
Похоже да, к программисту мне дорога...
Windk
Участник
Offline3.3
с апр 2007
Тюмень
Сообщений: 3686

Дата: 08 Сен 2015 19:49:24 #  


сом порта она будет переформатироватся в нужный вид и отправляться в сокет.
Вот тут пожалуйста поподробнее - какими подручными средствами это можно сделать?
Может просто подменять пакеты TCP c данными Com порта.


Но дальше примеров я не сдвинулся с мертвой точки... Не программист я!

Но таки попытались и даже типа в теме.. осталось немного,
качаем с микрософта MS VS 2015 бесплатную версию, а рыбу-проект (осталось делегаты докинуть просто) я завтра скину. Он не сложен.
XOR
Участник
Offline4.0
с янв 2007
...
Сообщений: 1322

Дата: 08 Сен 2015 23:07:20 #  

Windk
А можно поподробнее как это все выглядит? Как я понимаю должно быть два виртуальных коморта соединенных нульмодемным кабелем, в первый шлет W-Code, из второго выгребает программка и отправляет в открытый сокет? У вас свой драйвер или надо купить Virtual Null Modem?
Windk
Участник
Offline3.3
с апр 2007
Тюмень
Сообщений: 3686

Дата: 09 Сен 2015 06:31:50 #  

XOR
А можно поподробнее как это все выглядит? Как я понимаю должно быть два виртуальных коморта соединенных нульмодемным кабелем, в первый шлет W-Code, из второго выгребает программка и отправляет в открытый сокет?

ну это если все на одном комппе и портов нет или только один, то так. Если есть пара физ портов или разные компы, то виртуальные не надо.

У вас свой драйвер или надо купить Virtual Null Modem?

проект лишь просто открывает порт через .Net класс SerialPort и направляет в TCPClient, никакой поддержки виртуальных конечно нет, - это на усмотрение пользователя: покупать, искать бесплатные, крякнутые или организовывать физические порты,например усб-СОМ.
marvel
Участник
Offline5.9
с фев 2003
Москва
Сообщений: 2182

Дата: 09 Сен 2015 13:13:55 #  

Все, проблема решена! Была написана (не мною) программка на VisualStudio. Она черпает данные с виртуального порта, подставляет вместо одного значения другое, и далее телнетом в TCP сокет. Все очень замечательно работает!
marvel
Участник
Offline5.9
с фев 2003
Москва
Сообщений: 2182

Дата: 09 Сен 2015 13:15:43 #  

XOR
Как я понимаю должно быть два виртуальных коморта
Виртуальный как раз таки один нужен. С 2-мя она не работает.
 

Создавать сообщения могут только зарегистрированные участники форума.
Войти в форум :: » Логин » Пароль
Начало
Средства связи, рации. Купить радиостанции Motorola, Yaesu, Vertex, приемники, антенны.
Время загрузки страницы (сек.): 0.040; miniBB ®