Переключение приборной панели самолёта
Вопрос, как лучше, не имеет смысла. Мнения всегда разделяться. Проще всего обойти этот вопрос, сделав несколько вариантов и возможность их переключения. Пусть каждый выбирает себе то, что ему нравится.
Сразу напишу, что вывод параметров двигателя (обороты, температура и т.д) оставил ощущение того, что я для себя называю перегруженным экраном. Человек воспринимает не больше какого-то объема информации. Пусть, например, есть форма для ввода накладных. Теоретически я могу на неё засунуть кучу полезной информации. Цены последней закупки, например. Место позволяет. А человек переполняется. Во-первых, он этих цифр не видит. Во-вторых, просто устаёт, гладя на такой экран. Если нужна какая- то необязательная информация, лучше выводить её в отдельном окне по кнопке.
Программное обеспечение берёт информацию датчиков и в каком-то виде рисует её на графических дисплеях. Несколько раз в секунду содержание дисплея полностью очищается и на нём все рисуется заново. Не имеет значения, как это все рисовать.
Пусть размеры экрана 640*480. Т.е по горизонтали 640 точек, которые могут быть выкрашены в какие-то цвета, а по вертикали 480. У левого верхнего угла (например) координаты 0,0, а у правого нижнего 640, 480. Вот и все, осталось только последовательно нарисовать на экране все, что нужно в нужных местах. Функции для рисования точек, линий и букв обычно есть. Пусть я, например, хочу нарисовать стрелку спидометра, показывающую 100 миль в час. Я её нарисую толстой линией идущей из оси якобы стрелочного прибора в точку, положение которой легко определить по углу наклона стрелки и её длине. Если спидометр надо нарисовать ближе к левому верхнему углу экрана, то ось будет, например, в координате 150,100. А стрелку - линию придётся нарисовать функцией Line(x1=150,y1=100,x2=150,y2=170). И так далее, вся текстовая и графическая информация.
Пример работы с дисплеем тут:
https://wiki.amperka.ru/products:display-lcd-graphic-128x64
Только здесь у него 128 на 64 точек и только два цвета. Названия функций вывода информации могут быть какие угодно (drawLine, Line и т.д). Но в любом случае просто последовательно на экране надо нарисовать все, что нужно.
|