Valentin |
Отправлено: 09.04.2004, 19:13 |
|
Не зарегистрирован
|
Может кто сталкивался с подобной проблемой.
С устройства идет информация со скоростью 512 чисел в секунду, так вот, эту инф. надо как-то отобразить, компонент TChart не подходит (не может работать с нужной скоростью), как это можно сделать?
Заранее благодарен за помощь. |
|
Asher |
Отправлено: 09.04.2004, 19:30 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
А монитор может 512?
|
|
Георгий |
Отправлено: 09.04.2004, 22:03 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
Реальное время? под винды? забудь.
А так — если обновлять чарт 2-10 раз в секунду, то большую часть времени будет иллюзия отображения данных в реальном масштабе времени (до первой задумчивости виндов). при большом количестве точек (~1000 и больше) имеет смысл на графике показывать не все — например использовать вместо 10 точек одну, со значением = усреднённое значнию 10 точек.
а если без чарта, то можно рисовать прямо в окне используя вин апи — будет гораздо быстрее
или рисовать на канве какого-нибудь паинт бокса |
|
Иван |
Отправлено: 10.04.2004, 01:10 |
|
Машинист паровоза
Группа: Участник
Сообщений: 207
|
Согласен с Георгием,
Я бы брал усредненное значение 10-20 чисел.
|
|
Валентин |
Отправлено: 10.04.2004, 20:24 |
|
Не зарегистрирован
|
С полностью real time я согласен, в Винде невозможно, но надо сделать хотя бы видимость этого, а с компонентом TChart это нельзя в принципе, так как пока он обновляется, даже если добавлять каждую 30 точку, то время обновления компонента превышает время подачи нового числа устройством и информация теряется, что недопустимо. Рисование на Canvas в принципе подходит, но там много недостатков, как стирание графиков при перерисовке окна . Так что если у кого есть идеи, пожалуйста поделитесь.
Valentin |
|
joynter |
Отправлено: 10.04.2004, 23:32 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 137
|
а ежели использовать таймер? |
|
Doga |
Отправлено: 12.04.2004, 12:28 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
Сначала надо добиться чтобы не терялись входные данные. Очевидно без без специалного монитора, оформленного в виде потока TThread с высоким(возможно) приоритетом не обойтись. Задача этого монитора только получать и копить данные. Далее следует организовать второй поток который по мере возможности будет брать новые данные из первого потока и обновлять график. TChart действительно очень медлителен — это цена за универсальность. Попробуй поискать мене навороченные компоненты графиков. На данный момент могу посоветовать SGraph. Качать отсюда:
http://www.iae.nsk.su/~lab12/pod/prg_staf.htm
В хелпе есть пример для быстрого добовления точек(см QuickAddXY Example)
|
|