Уверен что было и не раз, что то полезное даже уже нашел на форуме. Но никогда не было такой задачи, поэтому в голове небольшой хаос.
Задача: Есть некое устройство, оно на COM порт передает данные, нужно написать программу которая эти данные будет обрабатываться и взаимодействовать с остальной частью системы по сложному алгоритму.
Проблема в том что очень вероятно что после реализации приложения появятся другие устройства, которые будут уже совсем другие, да и данные другим образом передавать. Но с ними нужно будет работать абсолютно так же как и с первым.
Предполагаемое решение: Написать отдельную апликуху (так сказать core), к которой должен будет подключатся плагин для взаимодействия с конкретным девайсом, в данном случае который умеет читать с COM порта данные и знает как их интерпретировать.
Очень хочется, что бы написанную апликуху не нужно было пересобирать для каждого нового плагина/устройства. А что бы можно было собрать отдельно плагин, оттестировать и кинуть в прод.
На текущий момент условия такое, что бы не основное приложение запрашивало данные у плагина, а что бы плагин сам сообщал о том когда данные появились.
Но я вот чет не знаю как такое сотворить на С++. Нашел два вариант. Надо делать dll, dlopen и делать Си интерфейс. И весьма необычное решение в виде делать плагин отдельным приложением, которое например через заданные пайп передает данные в основное приложение.
Мне оба не нравятся. Подкиньте каких нибудь идей пожалуйста.