В какую область копать, чтобы создать программу — «мини драйвер»?
Всем привет! Появилась задача, принятия и передачи данных на сервер с устройства.
Вопрос: Что не обходим сделать, что бы создать такой драйвер, в том смысле что изучить, в какую сторону идти.
Есть устройство, которое передает данные по com порту. Передает в формате XML.
Нужна маленькая программа которая, была бы как драйвер. Т.е. у устройства есть свой драйвер, надо создать программу, которая бы получала бы данные и переправляла на сервер по TCP\IP : port. И чтоб программы не было видно для пользователя. Сейчас все работает через программу Serial to Ethernet Connetcor 7.1. Желательно при установке драйвера, это программа ставилась автоматически(не знай реально нет)
Что сможете подсказать?
Я бы на .net создал службу, в ней бы сделал задачу, которая принимала данные с SerialPort и складывала их в потокобезопасную очередь, а в другом потоке выполнялось подключение (переподключение) к серверу, может происходил какой-то обмен командами и с очереди извлекались данные и передавались на сервер.
На я уже дано не программировал, но думаю все на C# гораздо быстрее сделать
Ну возьмите boost::asio и сделайте Windows Service или демон, который установится вместе с драйвером устройства. С помощью boost::asio прочитаете и COM-порт (см. библиотеки для устройств puloon-cxx и ccnet-cxx для примера) и по TCP/IP сможете передать (примеров в сети тоже достаточно). Стоит ли использовать для этого плюсы - вам решать.
Тут нужен не "Драйвер", а как говорят в IT "преобразователь потока". Нужна служба (win) или демон (linux). Который будет брать данные с com-порта и переупаковывать в udp/tcp. Я бы делал на пуле потоков.