Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Сортировка числовых данных и вывод на график


Автор: ValerkaT 25.8.2008, 11:38
есть программа она считывает данные эксперимента (числовые) с устройства и записывает в файл, надо чтобы эти данные отсортировывались по возрастанию и выводились на график с помощью компоненты chart или dbchart. Подробнее - имеется плата АЦП 16-и разрядная, на ней релюшки - сопротивления, программно эти релюшки переключаются, одно положение реле - первое измерение в вольтах по трем каналам, другое положение - второе измерение и т.д. всего 18 измерений.
часть кода:
//вычисление значений в вольах по трем каналам
 double volt1=(*ch1*maxVolts/2048)*1000;
 double volt2=(*ch2*maxVolts/2048)/StrToFloat(editRShumtL->Text)*1000;
 double volt3=(*ch3*maxVolts/2048)/StrToFloat(editRShuntR->Text)*1000;

//запись в  файл значений по тем каналам
 WriteToFile(numbofeq,volt1,volt2,volt3)

как отсортировать этизначения по возрастанию и вывести их на гафик?

Автор: mrbrooks 25.8.2008, 12:31
решение -> база данных + dbchart

Автор: ValerkaT 25.8.2008, 14:05
дело в том что имеется три канала измерение проходит по трем каналам, то есть 3 массива получается, одно измерение 3 строки - 1-й, 2-й, 3-й канал,  как отсортировать по первому каналу, чтобы в других двух каналах значения соответствовали первому каналу и как это все записать в БД, чтобы потом построить график по полученным знчениям

Автор: mrbrooks 25.8.2008, 14:42
собственноя здесь ничего сложного не вижу. пишешь в базу данных инфу скажем через АДО в Аксес. Далее sql-запросом сортируешь по  полю в которое пишешь данные снятые с девайса. Так же создай поле метки времени в момент записи данных. Я правда не совсем понимаю зачем их сортировать по возрастанию (данный от девайса то бишь), но раз надо так надо. Потом на графике строй данные в соответствие со значениями твоих полей.

Вообще имхо посмотри в разделе по БД там есть мануалы для новичков. Для тебя самое раз.

ЗЫ. Да и как ты данные получаешь, по com-порту или ethernet? 

Автор: ValerkaT 25.8.2008, 14:52
данные по usb, программа уже сть с инициализацией устройства и т.д. и т.п. она только эти данные в файл пишет, этот файл я в экселе обрабатываю написаны макросы сортировка графики все есть, но дело в том что при эксперименте образец может неправильно лечь на стенд, а чтобы это проверить надо провести измерения потом в экселе уже смотреть график и по нему можно сказать как лег образец криво или нет, а так программа вывела график сразу видно криво лежит или нет

Автор: ValerkaT 25.8.2008, 15:10
в редактировании компоненты DBChart нашел во вкладке Series -> Data Source, какмне этот дата сурс создать из получаемых данных?

Автор: mrbrooks 25.8.2008, 15:56
ValerkaT, яж грю почитай мануал или книгу по БД в Бормане.
На форму кидай TAdoConnection TAdoTable TDataSourse TDBChart. И читай мануалы. действительно глупол все это здесь описывать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)