|
Вопрос # 6 459/ вопрос решён / |
|
Здравствуйте! Научите рисовать динамические графики? Нигде этого не могу найти. В любом виде. (Данные из COM-порта, USB 1.1, USB 2.0). Три (или больше) разноцветных графика одновременно. По оси "У" 255 точек, по оси "Х" время дискретизации на ваше усмотрение. На любом известном вам языке прог, с пояснениями на Могучем и литературном... Специально писать не надо. Дайте, чего не жалко, просто попялиться. Люди из easyelectronics.ru очень нуждаются в этом уже долгие годы.
Например:
Приложение: Переключить в обычный режим- var
- Form1: TForm1;
- conf:array[1..256] of string;
- ComPort:Thandle;
- t,j:integer;
- q,z:integer;
- buf:array[1..4200] of AnsiChar;
- implementation
-
- {$R *.dfm}
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- conf[1]:='1';
- ComPort:=ComOpen('com'+conf[1]);
-
- j:=0 ;
- q:=0;
- t:=1;
-
- end;
-
- procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
- begin
- ComWrite(ComPort,'E'+#10+#13);
- sleep(200);
- ComClose(ComPort);
- end;
-
-
- procedure TForm1.Timer1Timer(Sender: TObject);
- var i,h:longint;
- code,k,p:integer;
- j1:integer;
- x:char;
- str,s:string;
- newStr:array[1..2100] of string;
- //buf:array[1..42000] of Char;
- begin
- j1:=1;
- str:=ComRead(comPort);
- if(str<>'') then
- begin
- for i:=1 to length(str) do
- begin
-
- if j>2110 then
- begin timer1.Enabled:=false;
-
- if Timer1.Enabled=True then lbl1.Caption:='on'
- else lbl1.Caption:='off';
- break;
- end;
- buf[j]:=str[j];
- mmo1.Lines.add(IntToStr(j)+' '+inttostr(Ord(str[j]))+' '+IntToStr(j+1)+'
'+inttostr(Ord(str[j+1])));
- j:=j+2;
-
-
- if ((j>8) and (j<2008)) then
- Series1.AddXY((j-8),256*Ord(str[j+1])+Ord(str[j]));
-
-
- end;
- end;
- end;
-
-
-
- procedure TForm1.Button1Click(Sender: TObject);
- var temp:string;
- i,p:integer;
- begin
-
- j:=1;i:=1;
- Timer1.Enabled:=true;
- if Timer1.Enabled=True then lbl1.Caption:='on'
- else lbl1.Caption:='off';
- ComWrite(ComPort,'G'+#10+#13);
- temp:=ComRead(ComPort);
- {if Timer1.Enabled=false then
- while j<2110 do
- begin
- p:=ord(buf[j]);
- end;
-
-
- end;
-
- procedure TForm1.N3Click(Sender: TObject);
- begin
- ComWrite(ComPort,'E'+#10+#13);
- sleep(200);
- ComClose(ComPort);
- close();
- end;
-
- procedure TForm1.N2Click(Sender: TObject);
- var path:string;
- begin
- SaveDialog1.Execute;
- path:=SaveDialog1.FileName;
- if path<>'' then memo1.Lines.SaveToFile(path);
- end;
-
- procedure TForm1.RadioButton1Click(Sender: TObject);
- begin
- ComWrite(ComPort,'T1'+#10+#13);t:=25
- end;
-
- procedure TForm1.RadioButton2Click(Sender: TObject);
- begin
- ComWrite(ComPort,'T2'+#10+#13);t:=50
- end;
-
- procedure TForm1.RadioButton3Click(Sender: TObject);
- begin
- ComWrite(ComPort,'T3'+#10+#13);t:=100
- end;
-
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- timer1.Enabled:=false;
- end;
-
- procedure TForm1.Exit1Click(Sender: TObject);
- begin
-
- Close;
-
- end;
-
- procedure TForm1.N5Click(Sender: TObject);
- begin
-
- Tmr1.Enabled:=True ;
- end;
-
- procedure TForm1.tmr1Timer(Sender: TObject);
- begin
-
- if Timer1.Enabled=False then
-
-
- begin
-
- Button1.Click ;
-
- end;
- begin
- if tmr1.Enabled=True then lbl2.Caption:='on' else
- lbl2.Caption:='off'
- end;
-
-
- end;
-
-
-
- procedure TForm1.N6Click(Sender: TObject);
- begin
- tmr1.Enabled:=False;
- end;
-
- end.
 |
Вопрос задал: zvygin1964 (статус: Посетитель)
Вопрос отправлен: 24 июля 2013, 22:16
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 20; последнее сообщение — 5 августа 2013, 13:16; участников в обсуждении: 3.
|
zvygin1964 (статус: Посетитель), 24 июля 2013, 22:21 [#1]:
Или так:
var
bmp: TBitmap;
procedure Timer(wnd,uMsg,idEvent,dwTime: LongInt);stdcall;
begin
bmp.Canvas.Draw(-1,0,bmp); //Сдвигаем график влево на 1 пиксель
bmp.Canvas.FillRect(Rect(511,0,512,256)); //Стираем столбик справа
bmp.Canvas.LineTo(511,random(20)+128); //Рисуем график
Form1.Canvas.Draw(0,0,bmp); //Вывод графика на форму
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
bmp:=TBitmap.Create;
bmp.Height:=256;
bmp.Width :=512;
bmp.Canvas.MoveTo(511,128); //Начальная позиция графика
bmp.Canvas.Pen.Color:=255; //Цвет графика
bmp.Canvas.Brush.Color:=0; //Цвет фона
BitBlt(bmp.Canvas.Handle,0,0,512,256,0,0,0,BLACKNESS); //Заливаем экран чёрным цветом
SetTimer(0,0,100,@Timer);
end;
|
|
min@y™ (статус: Доктор наук), 24 июля 2013, 22:34 [#2]:
Посмотри вот это демо.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
zvygin1964 (статус: Посетитель), 30 июля 2013, 19:56 [#3]:
Я не понимаю шуток, даже от уважаемых людей. Не умеете? А просто построить динамический график по данным из потока?
|
|
min@y™ (статус: Доктор наук), 30 июля 2013, 20:05 [#4]:
Цитата (zvygin1964):
Я не понимаю шуток, даже от уважаемых людей. Не умеете? А просто построить динамический график по данным из потока?
Это ты щас к кому обращаешься-то? И кто тут шутит? Я не понял...
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
zvygin1964 (статус: Посетитель), 30 июля 2013, 21:53 [#5]:
Я просил научить, а не демонстрировать Ваши способности.
|
|
dandbyt (статус: Посетитель), 30 июля 2013, 21:58 [#6]:
zvygin, я думаю что пользователь "min@y™" Сказал используй компонент для построение графика TeeChar
|
|
min@y™ (статус: Доктор наук), 30 июля 2013, 22:40 [#7]:
Цитата (zvygin1964):
Я просил научить, а не демонстрировать Ваши способности.
Научить я, как раз, и пытался, выложив демо-проект (с исходниками!), который и демонстрирует построение самых разнообразных динамических графиков в программах на Delphi. И я никоим образом не демонстрировал свои способности, ибо этот самый демо-проект включён в стандартные дистрибутивы Delphi со времён царя Гороха, и я его создателем не являюсь.
Когда много лет назад мне таки понадобилось построение красивых графиков в очередном моём проекте, я постигал сабж (причём успешно) именно по исходникам этой самой демки. Смею заметить - при полном отсутствии доступа к этим вашим интернетам! Поэтому я посмел предположить, что и у тебя это должно получиться.
Если по мере изучения сабжа будут появляться какие-то конкретные вопросы - задавай. И формулируй их правильно, пожалуйста.
Цитата (dandbyt):
я думаю что пользователь "min@y™" Сказал используй компонент для построение графика TeeChar
Всё верно.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 30 июля 2013, 22:49 [#8]:
Да, забыл добавить: если влом заморачиваться с таким сложным компонентом, как TChart, есть варианты попроще. Например, THeartMachine и т.п.

ИМХО: Если проект не учебный (не стоит задача отрисовки графика своими силами/мозгом), то целесообразно использовать готовые отлаженные варианты кода/компоненты, если они решают поставленную задачу, и не заморачиваться: сильно экономит время.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
zvygin1964 (статус: Посетитель), 31 июля 2013, 18:51 [#9]:
Вот это уже ответ. Меня как раз интересуют готовые компоненты.
Примерно такой, как использован в программе Terminal.exe
от Великого DI HALT. Интересно, на чём она писалась? Явно не на LabVIEW. Ведь такая скромная. А какая умная. Похожий исходник на любом языке есть у кого?
Давайте по делу, с примерами кода. Как у Самого Великого DI HALT! И поподробней, мне много лет. Я в микроконтроллерах AVR.
C паяльником. Все остальное темный лес.
Нас здесь таких нуждающихся много (easyelectronics.ru). Сами мы не местные. ПомоЖите кто чем может!
|
|
min@y™ (статус: Доктор наук), 31 июля 2013, 20:43 [#10]:
Цитата (zvygin1964):
Вот это уже ответ. Меня как раз интересуют готовые компоненты.
Ну так забирай готовый компонент и используй его.

Цитата (zvygin1964):
Примерно такой, как использован в программе Terminal.exe
Вот это поворот! Это чо ж за зверь такой? У меня нет такой программы.
Цитата (zvygin1964):
от Великого DI HALT
А это кто ваще?
Цитата (zvygin1964):
Интересно, на чём она писалась?
Понятия не имею.
Цитата (zvygin1964):
Явно не на LabVIEW.
Я и не слышал никогда про эту среду разработки. Пришлось покурить википедию для интереса.
Цитата (zvygin1964):
Ведь такая скромная. А какая умная.
Дааааааааааааааа??!!!!!!111
Цитата (zvygin1964):
Похожий исходник на любом языке есть у кого?
Исходник чего? Построения динамических графиков?
Цитата (zvygin1964):
Давайте по делу, с примерами кода.
Давайте, конечно, давно бы так! Для начала определимся с техническим заданием и, естественно, с суммой моего гонорара за проделанную работу.

Цитата (zvygin1964):
Как у Самого Великого DI HALT!
Да кто этот, блин, Великий Кормчий? К нему лично обращаться не пробовал?

Цитата (zvygin1964):
И поподробней, мне много лет.
Ага! И ПОБЫСТРЕЕ, Б...Я!!! А то на пенсию выпрут!!!1111
Цитата (zvygin1964):
Я в микроконтроллерах AVR. C паяльником.
А я - на диване. С ноутбуком на пузе и пивом.
Цитата (zvygin1964):
Все остальное темный лес.
Ну и чего же ты от меня хочешь-то? Чтобы я сделал ЧТО?!
Цитата (zvygin1964):
Нас здесь таких нуждающихся много (easyelectronics.ru).
В чём ваша нужда заключается? Все спецы разбежались и уехали в Москвабад?
Цитата (zvygin1964):
Сами мы не местные. ПомоЖите кто чем может!
Ну я ж просил задавать конкретные вопросы.
Цитата (min@y™):
Если по мере изучения сабжа будут появляться какие-то конкретные вопросы - задавай. И формулируй их правильно, пожалуйста.
ИТОГО: Ты меня совсем запутал, я не понимаю, чего тебе надо.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
zvygin1964 (статус: Посетитель), 1 августа 2013, 19:08 [#11]:
Знакомьтесь: http://www.youtube.com/watch?v=650Pa-dz9rY&list=PL27A58A2D3AAAEE07 , в кадре Сам DI HALT !
По теме -
Задача: Создание исходника (с пояснениями) программы для отображения результатов измерений полученных из любительских устройств в виде графиков на координатной сетке с легендой для выбора языка программирования (перспективности изучения). Люди из easyelectronics.ru очень нуждаются в этом уже долгие годы.
Готовых программ много. Интересно написать свою.
За компонент спасибо. Пробую. Торопиться некуда. На пенсии давно. Десятка лет хватит.
|
|
min@y™ (статус: Доктор наук), 1 августа 2013, 23:43 [#13]:
Цитата (zvygin1964):
Знакомьтесь: http://www.youtube.com/watch?v=650Pa-dz9rY&list=PL27A58A2D3AAAEE07 , в кадре Сам DI HALT !
А готовую Terminal v1.9b by Bray можно скачать у создателя.
Он обитает https://sites.google.com/site/terminalbpp/
Хочется создать свой, простенький график. И измываться над ним...
И не подумаю. Нафига оно мне надо?
Цитата (zvygin1964):
Задача: Создание исходника (с пояснениями) программы для отображения результатов измерений полученных из любительских устройств в виде графиков на координатной сетке с легендой для выбора языка программирования (перспективности изучения). Люди из easyelectronics.ru очень нуждаются в этом уже долгие годы.
Для создания такой программы нужно:
1. Подробное ТЗ.
2. Любительские устройства или их программы-эмуляторы/симуляторы.
3. Деньги для программиста-полиглота.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
zvygin1964 (статус: Посетитель), 2 августа 2013, 00:02 [#14]:
Куда уже подробнее. Разработка не нужна. Интересуют готовые куски на всех известных языках для их сравнения.
Устройство зацеплено за соседний ПК. А если для него специально писать не будут, тогда зачем оно вам? Используйте рандомайс, или как там оно у вас называется.
У людей это называется случайным числом (микроконтроллер 8 битный- от 0 до 255).
Нет, пока меня деньги не интересуют. Спасибо за предложение. Пока это хобби.
Может быть вы потом книжку напишите как Ю.Ревич. Вот её я куплю, для коллекции, даже если в 500 страницах будет один удачный пример.
А вы тут один? Жаль... Наверно скучно Вам переписываться самому с собой. На easyelectronics.ru не так. Слава создателю DI HALT !
|
|
min@y™ (статус: Доктор наук), 2 августа 2013, 00:40 [#15]:
Цитата (zvygin1964):
Куда уже подробнее. Разработка не нужна. Интересуют готовые куски на всех известных языках для их сравнения.
Котовые куски чего?
И где ж я тебе их возьму-то на всех языках?
Цитата (zvygin1964):
Устройство зацеплено за соседний ПК. А если для него специально писать не будут, тогда зачем оно вам?
Ни хрена не понял.
Цитата (zvygin1964):
Используйте рандомайс, или как там оно у вас называется. У людей это называется случайным числом (микроконтроллер 8 битный- от 0 до 255).
Ой, да неужели?! Спасибо, что разрешил. А то как же я без ГПСЧ жить-то буду?!
Цитата (zvygin1964):
Нет, пока меня деньги не интересуют. Спасибо за предложение. Пока это хобби.
А я ничего и не предлагал.
Цитата (zvygin1964):
Может быть вы потом книжку напишите как Ю.Ревич. Вот её я куплю, для коллекции, даже если в 500 страницах будет один удачный пример.
Исключено. Я писáть не умею.
Цитата (zvygin1964):
А вы тут один? Жаль... Наверно скучно Вам переписываться самому с собой.
Нет, я тут не один. Просто народ прочитал вопрос, первые комменты к нему и прошёл мимо. А мне заняться нечем, в больнице лежу, есть время потроллить людей, которые сами напрашиваются на это.
Цитата (zvygin1964):
На easyelectronics.ru не так. Слава создателю DI HALT !
Это у вас там секта такая? Ну-ну...
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
zvygin1964 (статус: Посетитель), 5 августа 2013, 08:04 [#16]:
Окончание программы понятно. Спасибо хорошие люди подсказали, компонент PlotLab хороший (от http://www.delphipages.com/comp/plotlab_v-5953.html , бесплатно для некоммерческого использования).
Но ваш THeartMachine вообще чудо. И посмотреть, и поковырять есть чего.
Теперь вернёмся к началу: получение данных из USB 1.1, USB 2.0 со скоростью, ну к примеру, 9600 бод.
Это умеем?
|
|
min@y™ (статус: Доктор наук), 5 августа 2013, 08:30 [#17]:
Цитата (zvygin1964):
Теперь вернёмся к началу: получение данных из USB 1.1, USB 2.0 со скоростью, ну к примеру, 9600 бод. Это умеем?
Сюда заходить не пробовал, или тебя там забанили?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
zvygin1964 (статус: Посетитель), 5 августа 2013, 12:48 [#18]:
Спасибо. Это очень хорошее сочетание. У меня так не получалось. Считаю вопрос решенным. Мне этого хватит надолго!
|
|
zvygin1964 (статус: Посетитель), 5 августа 2013, 12:52 [#19]:
Сколько я вам должен? Куда перечислить?
|
|
min@y™ (статус: Доктор наук), 5 августа 2013, 13:16 [#20]:
Цитата (zvygin1964):
У меня так не получалось.
Почему не получалось-то?
Цитата (zvygin1964):
Сколько я вам должен? Куда перечислить?
Мне ничего не надо, у меня всё есть. Можешь купить бутылку водки и выпить за моё здоровье.
Цитата (zvygin1964):
Считаю вопрос решенным.
Как скажешь.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
5 августа 2013, 13:17: Статус вопроса изменён на решённый (изменил модератор min@y™): Пожелание топикстартера.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|