Я сейчас нахожусь в процессе программирования сервера, который может позволить клиентам взаимодействовать с частью аппаратного обеспечения.Для заинтересованных читателей это устройство, которое одновременно контролирует длину волны набора лазеров (и контролирует лазеры).Сервер должен иметь возможность регулярно транслировать длины волн (список с плавающей точкой) и позволять клиентам изменять настройки устройства с помощью вызовов dll.
Моя первоначальная идея состояла в том, чтобы написать собственный протокол для обработки связи, но после размышлений о том, как обрабатывать фрагментацию TCP и кодирование данных, я наткнулся на Twisted, и похоже, что большая часть работы уже выполнена, если яиспользуйте перспективный брокер для обмена данными и вызова методов сервера напрямую от клиентов.Это решение могло бы быть немного излишним, но для меня это казалось очевидным, что вы думаете?
Моя главная проблема прошла, когда я подумал о клиентах.В основном мне нужны два типа клиентов: один, который просто отображает длины волн (это должно быть прямо), а второй, который может изменять настройки устройства и получать обратную связь при его изменении.Моя идея состояла в том, чтобы создать единого клиента, способного на оба варианта, но мысль о том, чтобы объединить его с нашей предыдущей системой, заставила меня задуматься ... Второй клиент должен управляться из уже довольно сложной среды Python, которая управляет большим количеством независимого оборудования с относительно строгимВ этом последовательном коде должны быть вызваны временные требования и настройки измерителя длины волны.Теперь дело в том, как мне смешать это с клиентом Twisted?Как я понимаю, Twisted не является потокобезопасным, поэтому я не могу просто создать новый поток, на котором запущен реактор, и затем взаимодействовать с ним из моего основного потока, могу ли я?
Любые предложения по написанию этой инфраструктуры сервера / клиента черезприветствуются другие средства, чем Twisted!
Спасибо