/* настройка параметров модуля значениями из элементов управления */ lpcie.Errs setupParams() { lpcie.Errs err = lpcie.Errs.OK; /* таблица соответствия индексов в ComboBox и кодов режима измерения */ X502.LchMode[] f_mode_tbl = { X502.LchMode.COMM, X502.LchMode.DIFF, X502.LchMode.ZERO }; /* таблица соответствия индексов в ComboBox и кодов диапазонов АЦП */ X502.AdcRange[] f_range_tbl = { X502.AdcRange.RANGE_10, X502.AdcRange.RANGE_5, X502.AdcRange.RANGE_2, X502.AdcRange.RANGE_1, X502.AdcRange.RANGE_05, X502.AdcRange.RANGE_02 }; /* таблица соответствия индексов в ComboBox и кодов источника синхронизации */ X502.Sync[] f_sync_tbl = { X502.Sync.INTERNAL, X502.Sync.EXTERNAL_MASTER, X502.Sync.DI_SYN1_RISE, X502.Sync.DI_SYN2_RISE, X502.Sync.DI_SYN1_FALL, X502.Sync.DI_SYN2_FALL }; UInt32 lch_cnt = Convert.ToUInt32(cbbLChCnt.Text); /* Устанавливаем кол-во логических каналов */ hnd.LChannelCount = lch_cnt; /* Настраниваем таблицу логических каналов */ err = hnd.SetLChannel(0, Convert.ToUInt32(cbbLCh1_Channel.Text) - 1, f_mode_tbl[cbbLCh1_Mode.SelectedIndex], f_range_tbl[cbbLCh1_Range.SelectedIndex], 0); if ((err == lpcie.Errs.OK) && (lch_cnt >= 2)) { err = hnd.SetLChannel(1, Convert.ToUInt32(cbbLCh2_Channel.Text) - 1, f_mode_tbl[cbbLCh2_Mode.SelectedIndex], f_range_tbl[cbbLCh2_Range.SelectedIndex], 0); } if ((err == lpcie.Errs.OK) && (lch_cnt >= 3)) { err = hnd.SetLChannel(2, Convert.ToUInt32(cbbLCh3_Channel.Text) - 1, f_mode_tbl[cbbLCh3_Mode.SelectedIndex], f_range_tbl[cbbLCh3_Range.SelectedIndex], 0); } /* Настраиваем источник частоты синхронизации и запуска сбора */ if (err == lpcie.Errs.OK) { hnd.SyncMode = f_sync_tbl[cbbSyncMode.SelectedIndex]; hnd.SyncStartMode = f_sync_tbl[cbbSyncStartMode.SelectedIndex]; } /* настраиваем частоту сбора с АЦП */ if (err == lpcie.Errs.OK) { err = setAdcFreq(); } /* Записываем настройки в модуль */ if (err == lpcie.Errs.OK) { err = hnd.Configure(0); } return(err); }
public void LoadSettings(LCard502Pars _pars, L502Ch[] _channels) { CurrentSensors = Convert.ToUInt32(_channels.Length); string a = "LCard502.LoadSettings: Не удалось задать параметры"; hnd.LChannelCount = (uint)_channels.Length; VoltPercent = new double[_channels.Length]; double[] K = { 10, 20, 50, 100, 200, 500 }; for (int i = 0; i < _channels.Length; i++) { string aa = string.Format("LCard502E.LoadSettings: Канал[{0}]: {1}", i, _channels[i].ToString()); pr(aa); AdapterPars p = new AdapterPars(_channels[i]); LFATAL(aa, hnd.SetLChannel((uint)i, p.phy_ch, p.mode, p.range, p.avg)); VoltPercent[i] = K[_channels[i].Range]; } // Настраиваем источник частоты синхронизации L502.Sync[] f_sync_mode = { L502.Sync.INTERNAL, L502.Sync.EXTERNAL_MASTER }; hnd.SyncMode = f_sync_mode[_pars.SyncMode]; // hnd.SyncMode = L502.Sync.EXTERNAL_MASTER; // RAG Чтобы не поставил - не работает - ихний баг. // L502.Sync[] f_sync_start_mode = { L502.Sync.DI_SYN1_RISE, L502.Sync.DI_SYN2_RISE, L502.Sync.DI_SYN1_FALL, L502.Sync.DI_SYN2_FALL }; // hnd.SyncStartMode = f_sync_start_mode[_pars.SyncStartMode]; f_acq = _pars.FrequencyPerChannel * _channels.Length * 4; double f_lch = _pars.FrequencyPerChannel; // настраиваем частоту сбора с АЦП LFATAL(a, hnd.SetAdcFreq(ref f_acq, ref f_lch)); // Parameters.frequencyCollect = f_acq; // Parameters.frequencyPerChannel = f_lch; // Записываем настройки в модуль double f_din_save = _pars.TTL.Frequency; LFATAL(a, hnd.SetDinFreq(ref f_din_save)); LFATAL(a, hnd.Configure(0)); #if TTL_SIGNALS LFATAL("LCard502::Start: не смогли разрешить потоки: ", hnd.StreamsEnable(L502.Streams.ADC | L502.Streams.DIN)); #else LFATAL("LCard502::Start: не смогли разрешить потоки: ", hnd.StreamsEnable(L502.Streams.ADC)); #endif }