Pull to refresh

Comments 13

Из удивительного тут std=c++0x что ли?

В следующий раз вы бы большие куски кода прятали под спойлер, может быть? Или даже на github опубликовать?

А как заказчик относится к вашей публикации его исходников? Какая лицензия предполагается?

С заказчиком согласовано. К тому же, это очень малая часть исходников, как комментарий к тексту. А после публикации могу спрятать под спойлер?

Может, я что-то недопонял в логике, но мне кажется, что в функции, вычисляющей угол, Вам лучше подойдёт atan2 вместо обычного тангенса с кучей проверок. Просто бросилось в глаза при беглом просмотре.

интересно, а штатное ПО работало через Wine или CrossOver в Debian ?

Не пробовали. Предполагаю, что с COM портом не было бы связи, и притормаживал бы, по крайней мере на Wine. CrossOver никогда не пробовал. Позднее на сайте Заказчика прочитал, что они сделали подобную библиотеку под Windows. Почему-то им нужна была именно часть, связанная с круговой диаграммой, отдельно от всего. Ещё интересно, что оригинальная программа под Windows работала целиком через WinApi.

Кстати, очень давно был интересный опыт использования старого графического ПО, написанного ещё под DOS, с использованием эмулятора dosemu в ArchLinux. Аппаратура была новая, на лету конвертировали данные от новой аппаратуры в старый протокол и передавали в старую программу через общий RAM disk.

а у Вас "PING" локатора "снаружи", или что это за структура?

Ping внутри, в центре. Очень похоже, что в конце посылки у Заказчика шла недокументированная отладочная или служебная информация. Насколько помню, мы пытались выяснить, отображать эти отсчёты или нет, в результате решили отображать. Вдруг это есть только в тех записях, что передали нам. К сожалению, протокол отсутствовал, нам дали свой исходник вместо протокола. Кстати, картинка панорамы с неубранной мертвой зоной, в центре:

Сразу после Ping'a первые отсчеты очень большие, потом уменьшаются. Их просто отбрасывают, называют "мертвой зоной".

gnuplot конечно не самый быстрый,
но с некими танцами с бубном его можно заставить рисовать такие графики по данным с последовательного порта.

gnuplot хорошая библиотека. Наверно, всё же больше подходит для графиков уже полученных, для реального времени я бы не рискнул. Ещё надо учесть, что у Заказчика постоянно возникали идеи что-то улучшить или изменить в отображении, мне проще это было делать в SDL2.

Простые одномерные осциллограммы он отлично отрисовывает в реальном времени, но на десятках тысяч точек в 2д/3д будет призадумываться.

Мне очень нравится Linux из-за обилия готовых и бесплатных решений, порой даже хорошо документированных. Помню, в начале 2000-х делал выбор, на какую систему переходить для поставляемой аппаратуры ( корабельное АСУ радиоэлектронного комплекса ). Конкуренты использовали Qnx, я же выбрал Linux и никогда не пожалел об этом. Описанный в статье случай был единственным, когда нужно было только отображать круговую диаграмму, правда, с кучей меняемых на лету настроек. Обычно надо разрабатывать интерфейс оператора целиком, с кнопками, закладками, полями ввода и тп. Вот один из простых вариантов:

В последнее время приходится реализовывать подобные вещи и через браузер, чтобы смотреть графики на смартфоне. Недавно на Хабре написал статью про такой вариант в том числе. Ближе к концу там подробнее, картинки с графиками.

Sign up to leave a comment.

Articles

Change theme settings