Автор Тема: plugin к recorder  (Прочитано 11053 раз)

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #50 : 16.12.2016, 12:20:37 »
Формат регистрации данных предполагает запись данных для каждого канала в свой файл. Размеры файлов ограничены файловой системой и 32 битностью программы регистрации.
Даже при ограничении в 4ГБ на файл, например при частоте опроса 8000Гц запись может продолжаться трое суток.
При этом с обработкой такого объема данных будут сопряжены некоторые неудобства. Лучше нарезать данные более короткими интервалами.

64 битная версия в очень далеких планах, к сожалению.

Да воспроизведение возможно. Есть плагины к Recorder позволяющие это сделать. Так же в WinПОС существует функция автоматического проигрывания сигнала.

Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #51 : 06.02.2017, 19:03:55 »
Подскажите, возможно ли  с помощью команды PushValue сохранение в виртуальный канал данных отличных от формата double, например в формате float или int, в специфичный момент времени?
И еще вопрос. Существуют ли плагины для получения данных в программу рекордер, от модулей производства L-Card?

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #52 : 07.02.2017, 09:59:33 »
PushValue принмает на вход только double, а затем преобразовывает значение к типу канала.

Насколько знаю некоторые заказчики делали подобные плагины самостоятельно, у нас ничего подобного нет.

Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #53 : 23.03.2017, 16:03:24 »
Начал работать из плагина с базой данных формата  - .mdb. С помощью компонентов ADO билдера. При запуске из под отладчика проблем нет. А при прямом запуске рекордера появляется примерно такое сообщение - "файл kvd05.mdb используется предыдущей версией и будет перенесен в папку C:\Mera Files\Recorder. Вы можете сохранить данные. Продолжить? Да/Нет." Подскажите когда, при запуске программы recorder, может возникать подобная ситуация?

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #54 : 31.03.2017, 11:20:06 »
Когда этот файл лежит в каталоге \Program Files\Mera\Recorder\
Что на самом деле достаточно плохо, т.к. данные по идеологии Microsoft там лежать не должны и система на свое усмотрение может их подменять в зависимости от пользователя. Т.е. из екплорера там будет виден один файл, из какой-то программы совсем другой, под учетной записью администратора третий.

Recorder до WinXP хранил настройки и некоторые рабочие файлы рядом с собой в Progam Files, теперь все эти файлы располагаются в Mera Files на системном разделе. Для удобства перехода со старых версий, при запуске проверяется наличие нештатных файлов в каталоге исполняемых файлов и осуществляется их перенос в Mera Files.

Поэтому просто перенесите свою базу в другое место, например в папки Mera Files или User.



Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #55 : 12.04.2017, 18:43:22 »
Возникла потребность в усреднении показаний датчика в рекордере на интервале 2х секунд. Частота опроса - 100 ГЦ. В настройке канала на вкладке дополнительно, установили длину порции 200, коэф. усреднения 1. Получаемые данные вызывают сомнения. Подскажите, как конкретно вычисляются выдаваемые значения? Если можно с каким-то простым примером. Как действуем программа если одновременно выбраны несколько вычисляемых оценок?

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #56 : 13.04.2017, 12:32:07 »
А что именно вызывает сомнения?
Вычисления производятся в скользящем режиме с перекрытием:


Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #57 : 13.04.2017, 19:15:01 »
Допустим на вход платы поступает последовательно увеличивающееся напряжение вида: 1,2,3,4,5,6,7,8,9,10.... установлена длина порции 2. В рекордере должно регистрироваться 1.5,2.5,3.5,4.5....? варианта 2.222 быть не должно?

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #58 : 14.04.2017, 10:54:27 »
В описанном варианте не должно, но, это некий "сферический конь в вакууме"  упрощенный синтетический тест.
В рекордер среднее как и любая оценка считается с перекрытием на период обновления данных, который может не совпадать с периодом расчета оценки, и не выровнен с ней по началу.

Пришлите кусочек записи реальных данных, тогда можно будет посмотреть что получили и что ожидали

Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #59 : 19.04.2017, 18:37:35 »
На записи не видно данных поступающих на вход канала. Я пробовал такой вариант.
С помощью плагина "ПО расчетные параметры" формировал в виртуальный канал поток данных вида "{Freq}={Freq}+1".
Из своего плагина смотрел полученные данные в режима длина порции 1 и 2. В первом случае шел примерный ряд "1,1,2,3,4,5,5,6..." - все нормально. Во втором должен был идти "1,1,1.5,2.5,3.5...", но появлялись числа типа 1,22 - поэтому и возник вопрос насчет формул.

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #60 : 24.04.2017, 12:54:27 »
Да действительно что-то подобное происходит.
Будем разбираться.

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #61 : 24.04.2017, 13:46:42 »
На записи не видно данных поступающих на вход канала. Я пробовал такой вариант.
С помощью плагина "ПО расчетные параметры" формировал в виртуальный канал поток данных вида "{Freq}={Freq}+1".
Из своего плагина смотрел полученные данные в режима длина порции 1 и 2. В первом случае шел примерный ряд "1,1,2,3,4,5,5,6..." - все нормально. Во втором должен был идти "1,1,1.5,2.5,3.5...", но появлялись числа типа 1,22 - поэтому и возник вопрос насчет формул.

Если запишете и посмотрите на сигнал {Freq} то увидите тоже самое.
Дело в том, что когда вы берете получаете значение {Freq} оно тоже усредненное т.е
; {Freq} == 0
{Freq} = 0 + 1  ;   {Freq} <= 1
{Freq} = {Freq} + 1  ;  {Freq} <=2 но уже есть 2 значения и {Freq} == 1.5
{Freq} = {Freq} + 1  ;  {Freq} <=2.5 , усредняется и {Freq} == 2.25


Скрипт надо сделать примерно такого вида:
{Counter} = {Counter} + 1
{Freq} = {Counter}

Канал Counter усреднение 1
Freq усреднение 2 или какое нужно для тестов тогда всё будет работать как ожидается


« Последнее редактирование: 24.04.2017, 13:59:15 от BacCM »

Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #62 : 14.07.2017, 06:16:17 »
При записи расчетного параметра в виртуальный канал у нас возникало переполнение  диапазона представления чисел. Если такие данные пытались записать, Recorder полностью выпадал с потерей данных. Cделали проверку перед записью, теперь все отлично, то может добавить такую проверку в сам recorder для повышения надежности работы ПО?

Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #63 : 30.11.2017, 15:28:23 »
Здравствуйте!

У нас возникла проблема при включении режима записи в кодах АЦП. Режим не включается в ответ идет код ошибки 0x80040005. Другие режимы включаются нормально.
например изменение каталога (
FRecorder->EnterConfigMode( (IUnknown*)GPlugin, 0);
FRecorder->SetProperty(RCPROP_DATAFOLDER, (VARIANT) str1);
FRecorder->LeaveConfigMode( (IUnknown*)GPlugin, 0);) или предпросмотра RCPROP_PREVIEW_ENABLED.

Есть ли какая то особенность включения режима RCPROP_WRITE_CODES?


Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #64 : 11.12.2017, 19:42:21 »
Режим записи в кодах является специальным режимом. Он не доступен для изменения в процессе работы. Для свойства доступен только метод GetProperty.

Что указано в описании
режим записи в кодах устройства для экономии места [out] VT_BOOL {v: 3.0.4.65, 3.0.5.2}

Так же хочу отметить немного странно выглядящий код установки каталога для записи:


FRecorder->SetProperty(RCPROP_DATAFOLDER, (VARIANT) str1);


Какой тип имеет переменная str1 ?
« Последнее редактирование: 20.02.2018, 11:24:24 от BacCM »

Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #65 : 12.12.2017, 16:01:20 »


Вот так примерно.


static VARIANT str1;
[size=78%]static wchar_t w[100];[/size]


Edit2->Text.WideChar(w,100);    // //
_wcspcpy(str1.bstrVal,w);

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #66 : 12.12.2017, 16:15:37 »
Работа с BSTR предполагает выделение памяти под строку через SysAllocString и соответсвующее освобождение.
В таком варианте как у вас написан, вы копируете строку в неизвестную область
Кроме того VARIANT у вас не проинициализирован. Что вожет привести к возникновению разного рода ошибок, и возможно привести к неработоспособности плагина в более новых версиях рекордер.

Рекомендуем не использовать без необходимости VARIANT в "чистом виде", а применять CComVariant (ATL) либо Variant (BCB) или какой-то аналог (QVariant, TVariant ...  в зависимости от библиотек и используемого фреймворка / среды разработки)