![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
Leviafan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 19.2.2006 Где: г. Екатеринбург Репутация: нет Всего: нет |
Пишу программку, которая принимает по сети показания сравнительно большого набора акустических датчиков. Разрешение 1 датчика - 4096 различных значений. Минимальное количество датчиков - 900. Датчики объеденены в боксы по 25 штук. Хочется получить графическое представление получаемых показаний.
1. При наведении мышки на представление датчика необходимо отображать во всплывающей подсказке его характеристики, но если каждый датчик представить пользовательским элементом управления, то из-за большого количества датчиков возникают тормоза, причём не только с реакцией на события мыши, но и при отрисовке. Как быть? 2. Для визуализаци показаний хочется использовать цветовую шкалу, причём, в идеале, тождественного разрешения с хорошо просматриваемой системой представления значений. Т.е. хочется отображать все 4096 значений, при этом хочется, чтобы изменения в показаниях на 1-2 пункта были заметны для глаза. Какую траекторию в пространстве RGB (а может каком-то другом, более подходящем) выбрать? Есть ли по этому поводу какие-то общеизвестные рекомендации? 3. Может возникнуть необходимость на небольшие отклонения в одном диапазоне шкалы значений реагировать изменением цвета (яркости/насыщенности) слабо, а в другом - сильно. Как реализовать такое поведение?.. |
|||
|
||||
-Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 8 Всего: 59 |
Что-то я сомневаюсь в спосоности человеческого глаза однозначно различать 4096 оттенков. Вот весь спектр: ![]() Можно выделить хорошо отличимых много цветов, но не 4096. Изменение насыщенности это 256 градаций к "серому" представлению цвета, причем из 256, глаз хорошо сможет отличить не так уж много... яркость то же самое (только к черному (-) или белому(+)). А если хочешь, чтоб глаз отличал все значения друг от друга, но при этом не определял точный цифровой эквивалент (0 - 4096), то можно просто сделать, например, для каждого диапазона, простую фигуру (круг, квадрат, ромб, треугольник, паралелограм и т.д.). Ее размер (от 16х16 до 48х48) будет говорить о разнице между двумя соседними показаниями, а цвет - об абсолютном процентном значении из спектра в соответствующем диапазоне значений для соответствующей фигуры. Например, если сделать две фигуры квадрат и круг, то им будут соответствовать диапазоны от 0 до 2047 для квадрата и 2048-4095 для круга. Красный (первый цвет в спектре) квадрат будет соответствовать значению 0, а красный круг значению 2048, а размер - показание между двумя соседними измерениями. Вот такая вот у меня есть идейка. -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
Leviafan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 19.2.2006 Где: г. Екатеринбург Репутация: нет Всего: нет |
Хорошая идея, -Mikle-, однако поясни, что ты имеешь ввиду под разницей между двумя соседними показаниями?
|
|||
|
||||
-Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 8 Всего: 59 |
К примеру с одного датчика идут такие показания: 1003, 1045, 1070, 1020, 1031, 1009, 1009, 1014 и т.д. Разница между двумя соседними показаниями будет такая: +42 (1045-1003), +25 (1070-1045), -50, +11, -22, 0, +5... То есть, мы можем следить за разницей в изменении и соответственно как-то оповещать "смотрящего" об этом. Идея об изменении размера фигурки, при изменении показаний, мне уже чего-то не очень нравится... Вот почему: если показания будут например идти на протяжение долгого периода вниз (от 4000 до 0 с шагом в 1), то невозможно будет постоянно показывать (через изменение размера) что значения падают. Но у меня есть альтернативная идея: показывать изменения через цвет контура фигурки. Берем спектр от красного до зеленого (см.рисунок спектра). Середина у него - это чисто желтый цвет, то есть имеем три точки: красный-желтый-зеленый, которые будут соответствовать -4096 0 +4096 Это означает, что если соседние показания равны - цвет будет желтый, если меньше на 4096 - красный, если больше на 4096 - зеленый. Можно кр. и зел. местами поменять. Если ты уверен, что разница между соседними показаниями в большинстве случаев (не обязательно во всех) будет меньше, чем +4096, то диапазон можно сузить, чтобы увеличить визуальную разницу. Было бы лучше, если бы ты подробнее пояснил где и для каких целей используются аккустические датчики, и для каких целей и с какой задачей они мониторируются пользователем. -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
Leviafan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 19.2.2006 Где: г. Екатеринбург Репутация: нет Всего: нет |
Акустические датчики используются для дефектоскопии поверхностей. Устройство-анализатор движется вдоль поверхности, излучая микроимпульс по тику одометра (каждые 5 мм). По обе стороны от излучателя находится пояс датчиковой системы, которая состоит из секторов, секторы - из блоков, блоки - из двух эхо и одного прямого датчика, каждый датчик - из нескольких активных зон. Для обеспечения адекватности получаемых данных излучатели запускаются не одновременно, а в некотором порядке. Снимаемые показания накапливаются в памяти анализатора, формируя микрокадры (срез показаний всех датчиков для одного микроимпульса). При внешнем запросе акустических данных устройство-анализатор формирует кадр, размер которого зависит от пропускной способности канала, количества готовых микрокадров, скорости движения дефектоскопа. Прямые датчики ориентированы на прямой импульс и ловят дефекты по отбрасываемой "тени". Эхо-сенсоры принимают отражённый от дефектов сигнал. Данные одной активной зоны имеют 12-битную разрядность. --> Думаю над визуализацией процесса, прямая задача которой - выявление неполадок в самой датчиковой системе.
Это сообщение отредактировал(а) Leviafan - 7.4.2009, 23:26 |
|||
|
||||
-Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 8 Всего: 59 |
По каким критериям выявляется неполадка? Т.е. как она определяется и на каких основаниях? -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
Leviafan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 19.2.2006 Где: г. Екатеринбург Репутация: нет Всего: нет |
В оперативном режиме, только визуально, по нестандартным отклонениям, посторонним шумам и т.д. Т.е. по искажению картинки, по advanced-анализу некоторых диапазонов показаний датчиков (можно подстроить спектр соответствующим образом, например, гасить низкие и средние частоты, выделяя только нужный спектр).
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |