Comments 13
Из удивительного тут std=c++0x что ли?
В следующий раз вы бы большие куски кода прятали под спойлер, может быть? Или даже на github опубликовать?
А как заказчик относится к вашей публикации его исходников? Какая лицензия предполагается?
интересно, а штатное ПО работало через Wine или CrossOver в Debian ?
Не пробовали. Предполагаю, что с COM портом не было бы связи, и притормаживал бы, по крайней мере на Wine. CrossOver никогда не пробовал. Позднее на сайте Заказчика прочитал, что они сделали подобную библиотеку под Windows. Почему-то им нужна была именно часть, связанная с круговой диаграммой, отдельно от всего. Ещё интересно, что оригинальная программа под Windows работала целиком через WinApi.
Кстати, очень давно был интересный опыт использования старого графического ПО, написанного ещё под DOS, с использованием эмулятора dosemu в ArchLinux. Аппаратура была новая, на лету конвертировали данные от новой аппаратуры в старый протокол и передавали в старую программу через общий RAM disk.
а у Вас "PING" локатора "снаружи", или что это за структура?
Ping внутри, в центре. Очень похоже, что в конце посылки у Заказчика шла недокументированная отладочная или служебная информация. Насколько помню, мы пытались выяснить, отображать эти отсчёты или нет, в результате решили отображать. Вдруг это есть только в тех записях, что передали нам. К сожалению, протокол отсутствовал, нам дали свой исходник вместо протокола. Кстати, картинка панорамы с неубранной мертвой зоной, в центре:
Сразу после Ping'a первые отсчеты очень большие, потом уменьшаются. Их просто отбрасывают, называют "мертвой зоной".
но с некими танцами с бубном его можно заставить рисовать такие графики по данным с последовательного порта.
gnuplot хорошая библиотека. Наверно, всё же больше подходит для графиков уже полученных, для реального времени я бы не рискнул. Ещё надо учесть, что у Заказчика постоянно возникали идеи что-то улучшить или изменить в отображении, мне проще это было делать в SDL2.
Мне очень нравится Linux из-за обилия готовых и бесплатных решений, порой даже хорошо документированных. Помню, в начале 2000-х делал выбор, на какую систему переходить для поставляемой аппаратуры ( корабельное АСУ радиоэлектронного комплекса ). Конкуренты использовали Qnx, я же выбрал Linux и никогда не пожалел об этом. Описанный в статье случай был единственным, когда нужно было только отображать круговую диаграмму, правда, с кучей меняемых на лету настроек. Обычно надо разрабатывать интерфейс оператора целиком, с кнопками, закладками, полями ввода и тп. Вот один из простых вариантов:
В последнее время приходится реализовывать подобные вещи и через браузер, чтобы смотреть графики на смартфоне. Недавно на Хабре написал статью про такой вариант в том числе. Ближе к концу там подробнее, картинки с графиками.
Разработка программы отображения для гидроакустической станции под Linux