На чем писать конфигуратор для железяки под RS232 порт?
На чем лучше всего написать конфигуратор для железяки под RS232 порт под имеющийся протокол?
Требования:
— Windows (но не исключена кроссплатформенность)
— GUI
— сохранение и загрузка конфигураций
— Относительно небольшой размер (порядка нескольких мегабайт)
Знаю, лучше писать на том языке, который лучше всего знаешь. Но школьный Pascal, один университетский курс C и желание научиться писать нормальный софт заставляют задать этот вопрос. Из рассмотренных вариантов QT (пугает размер на выходе и работа с RS232), Visual C++ (кроссплатформенность?), Delphi.
Вы будете смеяться… Но NodeJS. У меня несколько проектов, где идет работа с serial портами(в основном RS485). NodeJS замечательно прижился. Оно предназначено для IO. Если правильно писать, легко тянет управление несколькими устройствами одновременно. А GUI делается через браузер, + бесплатно получаем возможность удаленной настройки. JavaScript очень простой язык. А писать под него асинхронно — неплохая гимнастика для мозгов. Ну и скрипты всегда походу можно подправить. Для работы с COM портом нужен дополнительный модуль, например такой github.com/joeferner/node-serialport2.
Сам пишу еще и на С# и на Delphi и С++. Раньше использовал Delphi для управления устройствами RS232. На C# есть проекты, где используются Serial устройства. Принципы везде одинаковые — работа с потоком байт, конечный автомат. На NodeJS у меня получается лучше всего.
Позавчера как раз допиливали на работе библиотеку на С под вещание с Moxa по rs232.
Думаю, что если поискать, то можно найти еще не одну такую или аналогичную основу на С или С++ и для Ваших нужд.
А дальше уже сделать для нее GUI, работу с конфигами и т.п. По-моему, это лучше делать под конкретную платформу, если действительно есть ограничение по размеру. Если такого нет, то пишите на Qt (с С/С++ он дружит прекрасно). А для уменьшения размера исполняемого файла программы на их форумах уже давно обсуждаются такие темы.
Ограничения по размеру нет. Просто простенький конфигуратор весом в 20 МБ лично я бы не использовал. :)
Окей, допустим остановимся на QT.
— Проблем с подключением C/C++ библиотек для работы с RS232 не будет?
— При портировании на линукс/макось, я так понимаю, придется искать другую библиотеку или изначально искать кроссплатформенное решение?
— Может посоветуете что-то из таких?
C# — размер минимальный(кстати откуда взялось это требование?), под виндоус\макос\линукс, работа с портами элементарна все уже встроено в фреймворк, куча примеров, сохранение и загрузка конфигураций посредством сериализации — две строчки.
Delphi — есть готовые компоненты, размер экзешника приличный, размер коммьюнити небольшой, платформа в полумертвом состояние.
Требования по размеру толком нету. Просто мне лично не приятно тащить 20+ мегабайт библиотек, дабы обеспечить работоспособность небольшой программки.
Сейчас покурю в сторону C#. Интересно. Спасибо!
Немного не по сути вопроса, но вдруг ваша программа уйдёт в массы, поэтому
1. Сделайте ещё сразу в ваш конфигуратор монитор портов, чтобы любой пользователь мог вам лог общения программы-железки отправить.
2. Проверьте работу вашей программы на нетбуке с маленьким экраном.