Vale> Ок, вопрос первый... насколько вообще имеет смысл заморачиваться с C++ Builder?
Vale> Может сразу только Qt и для виндов и для Линуха? С другой стороны, при аккуратном подходе не должно быть больших проблем при переходе от одной библиотеки к другой.
Как я бы делал. Есть блок(и) съёма данных. Есть блок(и) записи данных. Есть блок(и) обработки данных. Есть блоки(и) отображения данных. Они могут/должны сопрягаться друг с другом в цепочки вида:
съём — запись
съём — показ
съём — обработка — запись
съём — обрабока — показ
съём — обработка — обработка ... — запись и/или показ
Могут идти в параллель.
Vale> Второй вопрос: как лучше организовать работу программы оцифровки данных?
Vale> Один вариант - "монолитная" программа с несколькими окнами,
ИМХО, плохая идея. Крутиться внутри обработчиков можно только тогда, когда эти окна существенно управляют. А у тебя управление — включил/выключил. Окна отдельно. Связки для визуализации данных тоже отдельно.
Vale> внтри крутится цикл оцифровки, другой - программа управления экспериментом и записи данных на жесткий диск пишется в качестве очень компактного модуля, возможно даже и без GUI, запускаемого с высоким приоритетом.
Это лучше. Но модуль съёмки должен пользоваться интерфейсом. За интерфейсом может быть и обработчик данных, а не только запись. Запись может быть на диск, сеть, просто в разделяемую память.
Vale> Интерфейс в этом случае обеспечивается другой отдельной программой, которая берет данные для отображения, скажем, из разделяемой памяти и отрисовывает их на экране, и занимается вообще взаимодействием с юзером. Заниматься сервер-клиентом стремно, и кажется перебором, работа по сети не требуется и не потребуется никогда.
Да, так больше нравится. Но, я бы делал бы их стыковочными.
