В рамках моего текущего проекта я разработал несколько новых инструментов для лабораторного анализа. В приборе используется микроконтроллер (серия NXP K66) для сбора временных рядов от некоторых датчиков и отправки его по USB со скоростью примерно 200 кБ / с c, непрерывно.
На хосте P C, I нужна программа, которая взаимодействует с этим оборудованием для обработки, отображения и хранения данных.
В частности, мне необходимо:
- Постоянно прослушивать последовательный порт для данных
- Разделите данные на 6 различных массивов по мере их поступления, по одному для каждого датчика
- I / Q демодулирует данные для извлечения амплитуды на основной частоте (в основном 6 БПФ с дополнительными шагами в секунду) )
- Применение калибровочных констант и прогон данных с помощью некоторых алгебраических c уравнений
- График данных и сохранение временного ряда в виде текста
Иногда я нужно будет
Запустите калибровку, отправив указанную команду c на микроконтроллер, который берет на себя процедуры калибровки - дальнейший ввод не требуется, пока он не сообщит новые параметры калибровки Интерфейс (через USB) с другим микроконтроллер, который контролирует частоту модуляции моих спектроскопических лазеров Отображение дополнительной информации об инструменте, такой как текущие параметры калибровки, время работы и т. д. c.
Мне нужно быть в состоянии связать / встроить компьютер в прибор, поэтому программа должна будет работать на миниатюрном компьютере, таком как Intel NU C. Я смогу потратить немного приличной вычислительной мощности на эту вещь.
У меня был успех с приложением UWP, так как я изначально разработал его для работы на Raspberry Pi с Windows 10 IoT Core. Тем не менее, последовательная связь с UWP ужасно сложна, и, похоже, на это уходит много лишних затрат. Кроме того, для построения графиков UWP требуется тяжелое стороннее программное обеспечение, такое как SyncFusion или Telerik. В UWP нет встроенных графических API-интерфейсов!
Для такого приложения, каковы конкретные c компромиссы производительности между UWP, WPF, Windows Forms или Win32 - в основном то, что предоставляет Visual Studio?