| 
| 
 | Вопрос # 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);beginComWrite(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<>'') thenbegin  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);beginComWrite(ComPort,'E'+#10+#13);sleep(200);ComClose(ComPort);close();end; procedure TForm1.N2Click(Sender: TObject);var path:string;beginSaveDialog1.Execute;path:=SaveDialog1.FileName;if path<>'' then memo1.Lines.SaveToFile(path);end; procedure TForm1.RadioButton1Click(Sender: TObject);begin     ComWrite(ComPort,'T1'+#10+#13);t:=25end; procedure TForm1.RadioButton2Click(Sender: TObject);begin      ComWrite(ComPort,'T2'+#10+#13);t:=50end; procedure TForm1.RadioButton3Click(Sender: TObject);begin      ComWrite(ComPort,'T3'+#10+#13);t:=100end; procedure TForm1.Button2Click(Sender: TObject);begintimer1.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);begintmr1.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™): Пожелание топикстартера. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |