Добрый день! Хотел бы узнать можно ли выдавать данные с плагина в LGraph с частотой 10 Гц? Если да, то какие соотношения надо выбирать вот в этих строках?
d_info->input_kadrs_min=100; // минимальное число кадров, которые надо дождаться перед вызовом плагина
d_info->input_kadrs_max=200;
и
// только для Расчётного Плагина
d_info->plugin_nch=1; // число рассчётных каналов
d_info->plugin_channel_rate=10; // частота расчётного канала (Гц) 10Гц == 100ms
т.е. как я понимаю, с частотой 10Гц плагин должен выдавать 2 кадра (при сборе при 10кГц), если пришло 200кадров? а если вдруг пришло 170 кадров, а у меня фиксировано стоит, что плагин должен выдавать два кадра, то что делать?
и что будет если сбор будет осуществляться с другой частотой? и вообще какая минимальная частота сбора данных?
Вот моя функция расчёта:
#define SIZE_TEMP 2
static double Tempa[SIZE_TEMP];
// главная функция обмена данными с рассчетом спектров
void __stdcall PluginDataExchange(struct PluginDataStr *data_str)
{
int i, chan, chan1, index, n;
double kadr1 = 0, kadr2 = 0;
chan1 = DataInfo.adc_channels[0]; // запомним номер первого канала (от 0 до 31)
n = data_str->n; // сколько пришло кадров
if(n & 1) n--; // сделаем n четным
// смещение внутри одного кадра для каналов АЦП
index = DataInfo.chan_kadr_offset[device_index][chan1];
//заполняем LehaData данными
for(i=0; i < n; i++, index += DataInfo.nch[device_index]) // nch - число включенных каналова АЦП в настройках LGraph
{
if(i < n/2)
kadr1 += data_str->data_to_plugin[index]; // data_to_plugin - указатель на массив с данными для плагина (double)
else
kadr2 += data_str->data_to_plugin[index];
}
// среднее значение
kadr1 = kadr1/(n/2);
kadr2 = kadr2/(n/2);
// по этой фор-лу рассчитывается температура с нашей термопары
Tempa[0] = (((kadr1 * 1000)/186,8) - 0,164688)/0,015343;
Tempa[1] = (((kadr2 * 1000)/186,8) - 0,164688)/0,015343;
data_str->n_from_plugin = SIZE_TEMP; // сколько кадров сформировал плагин
for(i=0; i < n; i++, index += DataInfo.nch[device_index]) // nch число включенных каналов на модулях АЦП
data_str->data_from_plugin[index] = Tempa[i]; // указатель на массив с данными от плагина для ЛГрафа
}