Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года

Plugin для LGraph2 на Delphi

Вы не вошли.

 Поиск | Регистрация | Вход 

Дмитрий
31.07.2012 14:32:04
#1

Гость

Plugin для LGraph2 на Delphi

Подскажите, где можно взять файл модуля для Delphi содержащий объявления констант, структур и функций для плагинов. Этот файл модуля используется в примере плагина для Delphi (uses lgraph2;).

Дмитрий
31.07.2012 14:39:34
#2

Гость

Re: Plugin для LGraph2 на Delphi

Может у кого-то есть еще примеры плагинов для Delphi, поделитесь, пожалуйста, ссылками.

31.07.2012 17:30:21
#3

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Plugin для LGraph2 на Delphi

А вот в поддиректории plugins/resamplerdelphi установленного LGraph2 не то, что Вы ищете?
Только там нет uses lgraph2, там uses plugin и plugin.pas в комплекте.

Дмитрий
02.08.2012 11:07:41
#4

Гость

Re: Plugin для LGraph2 на Delphi

Спасибо! Как раз то, что искал! А "uses lgraph2;" используется в том примере для делфи, который выложен на сайте... вот ссылка
http://www.lcard.ru/plugins/resampler_delphi

Дмитрий
03.08.2012 10:35:46
#5

Гость

Re: Plugin для LGraph2 на Delphi

Подскажите пожалуйста по синтаксису, как можно создать несколько визуальных компонентов?
я так понимаю что нужно обращаться к нескольким p_visual в процедуре PluginVisualSetting
procedure PluginVisualSetting(main_visual_settings: PPluginVisualMainStr; p_visual: PPluginVisualStr); stdcall;

Но у меня не получается, может нужно объявлять p_visual как массив PPluginVisualStr? пробовал - выдает ошибку...
Подскажите пожалуйста

Дмитрий
03.08.2012 10:37:47
#6

Гость

Re: Plugin для LGraph2 на Delphi

Работать с одним p_visual получается без проблем...

Дмитрий
06.08.2012 09:13:41
#7

Гость

Re: Plugin для LGraph2 на Delphi

Все же надеюсь что кто-то ответит. Пробовал делать вот так

type TVisArray= array [0..1] of PPluginVisualStr;
procedure PluginVisualSetting(main_visual_settings: PPluginVisualMainStr; p_visual: TVisArray); stdcall;
begin
     main_visual_settings.n:=2;
     main_visual_settings.plugin_height:=main_visual_settings.height div 2;
     p_visual[0].L_type:=9;
     p_visual[1].L_type:=9;
     p_visual[0].label_text:=/'Канал 1/';
     p_visual[1].label_text:=/'Канал 2/';
     p_visual[0].Top:=36;
     p_visual[1].Top:=36+30;
     p_visual[0].Left:=40;
     p_visual[1].Left:=40;
end;

При добавлении плагина в лграф программа сообщает что не хватает памяти для плагина, затем выдает еще ошибку и закрывается. Но если подобным образом настроить один графический элемент то все работает.
type TVisArray= array [0..0] of PPluginVisualStr;
procedure PluginVisualSetting(main_visual_settings: PPluginVisualMainStr; p_visual: TVisArray); stdcall;
begin
     main_visual_settings.n:=1;
     main_visual_settings.plugin_height:=main_visual_settings.height div 2;
     p_visual[0].L_type:=9;
     //p_visual[1].L_type:=9;
     p_visual[0].label_text:=/'Канал 1/';
     //p_visual[1].label_text:=/'Канал 2/';
     p_visual[0].Top:=36;
     //p_visual[1].Top:=36+30;
     p_visual[0].Left:=40;
     //p_visual[1].Left:=40;
end;
в чем моя ошибка?

06.08.2012 11:41:18
#8

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Plugin для LGraph2 на Delphi

Возможно дело в том что структуры С файла имеют по-байтовое выравнивание. В дельфийном ничего не прописано. Правильно будет их все packed объявить или в опции {$A-}... {$A+} заключить. Попробуйте так...

Дмитрий
06.08.2012 12:30:06
#9

Гость

Re: Plugin для LGraph2 на Delphi

Спасибо за совет. Попробовал с packed- не помогло... Кто-нибудь вообще писал плагин на делфи? Разработчики Лграфа, Вы можете помочь?

06.08.2012 12:42:21
#10

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 674

Re: Plugin для LGraph2 на Delphi

Плагин на дельфи, входящий в ЛГраф2 сделал один из наших клиентов. Пришлите полный текст Вашего плагина с двумя элементами на support - разберемся.

08.08.2012 15:00:58
#11

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 674

Re: Plugin для LGraph2 на Delphi

По почте выслали откорректированный плагин с двумя элементами.

Дмитрий
09.08.2012 14:20:31
#12

Гость

Re: Plugin для LGraph2 на Delphi

Все отлично! Большое спасибо!!!

Дмитрий
17.08.2012 14:49:36
#13

Гость

Re: Plugin для LGraph2 на Delphi

Можно ли как то плагину узнать имя и путь к файлу в который планируется вестись запись, или в который уже записались данные?

20.08.2012 11:47:25
#14

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Plugin для LGraph2 на Delphi

Автор LGraph2 сейчас в отпуске, поэтому подробный ответ можно будет получить где-то через неделю.
Но вроде бы в struct PluginDataStr есть поля  dat_file_name и dir_name - это не оно?

Дмитрий
20.08.2012 16:05:38
#15

Гость

Re: Plugin для LGraph2 на Delphi

Не нашел я эти поля ни в руководстве ни в plugin.pas

20.08.2012 18:24:40
#16

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Plugin для LGraph2 на Delphi

В include/plugin.h есть - вероятно, добавлены в последних бета-версиях и еще не описаны в документации.

Перенесите себе в .pas эти поля - вместо
reserved:array[0..4095] of char;
поставьте
ttl_in: cardinal;
dat_file_name: pchar;
dir_name: pchar;
reserved: array[0..4083] of char;

Дмитрий
21.08.2012 07:57:36
#17

Гость

Re: Plugin для LGraph2 на Delphi

Действительно - Сишный вариант обновлен уже... Спасибо буду пробовать, вроде то что нужно!

Дмитрий
12.09.2012 10:41:31
#18

Гость

Re: Plugin для LGraph2 на Delphi

В описании переменных и функций плагина не нашел возможность передачи в плагин названий каналов. Очень неудобно, когда все каналы названы, а плагин отображает только номера каналов. Есть ли возможность плагину узнать названия каналов в программе?

12.09.2012 16:15:06
#19

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 674

Re: Plugin для LGraph2 на Delphi

Добавил в структуру PluginInfoStr массив adc_channels_name. Имейте в виду, что функция PluginInfo вызывается два раза - первый раз массив будет пустым, второй и последующие разы он будет содержать названия каналов.

Исправленную версию выложил на: ftp://ftp.lcard.ru/pub/users/lgraph_beta/lgraph2.zip

Дмитрий
14.09.2012 08:05:38
#20

Гость

Re: Plugin для LGraph2 на Delphi

Скажите, а Вы внесли изменения в файлы plugin.h, plugin.pas? Нигде не найду как объявляется этот массив. Руководство по разработке плагинов тоже без изменений.

Дмитрий
17.09.2012 12:57:38
#21

Гость

Re: Plugin для LGraph2 на Delphi

Подскажите хотя бы тип и размер массива adc_channels_name

17.09.2012 13:53:40
#22

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 674

Re: Plugin для LGraph2 на Delphi

Извините за задержку, только сейчас добрался до инета. Изменение внесено в plugin.h. Из-за ошибки в дистрибутив, который был выложен 12.09 попал старый файл, посмотрите сейчас (дистрибутив только что обновил).

Дмитрий
17.09.2012 14:42:41
#23

Гость

Re: Plugin для LGraph2 на Delphi

Получил заголовочный файл по почте, спасибо!

Maxim
07.09.2016 18:40:44
#24

Гость

Re: Plugin для LGraph2 на Delphi

Владислав пишет:

Добавил в структуру PluginInfoStr массив adc_channels_name. Имейте в виду, что функция PluginInfo вызывается два раза - первый раз массив будет пустым, второй и последующие разы он будет содержать названия каналов.

Исправленную версию выложил на: ftp://ftp.lcard.ru/pub/users/lgraph_beta/lgraph2.zip

Где можно найти рабочий пример использования массива adc_channels_name?
Как сделать, чтобы вместо "Канал 1", "Канал 2" и т.д. я получал названия каналов, заданные в настройках каналов АЦП?

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск