public LCard502(LCard502Pars _pars, DOnPr _OnPr = null) { if (_OnPr != null) { OnPr += _OnPr; } LastError = null; /* создаем описатель модуля */ hnd = new L502(); string serial = FindSerial(_pars.DevNum); if (serial == null) { throw (new Exception("LCard502.LCard502: Ошибка: Устройство не найдено: " + _pars.DevNum.ToString())); } pr("LCard502 create"); // lpcie.Errs res; /* устанавливаем связь по выбранному серийному номеру */ lpcie.Errs res = hnd.Open(serial); if (res != 0) { throw (new Exception(L502.GetErrorString(res) + " Ошибка открытия модуля")); } /* получаем информацию о модуле */ L502.Info devinfo = hnd.DevInfo; }
public void Start(LCard502Pars _pars, L502Ch[] _channels) { if (IsStarted) { return; } LoadSettings(_pars, _channels); LFATAL("LCard502::Start: не смогли стартовать: ", hnd.StreamsStart()); IsStarted = true; }
public double GetValueV(L502Ch _channel, LCard502Pars _parsLCard502Pars, ref bool _ret) { if (IsStarted) { _ret = false; return(0); } double[] buf = new double[1]; LoadSettings(_parsLCard502Pars, new L502Ch[] { _channel }); _ret = !CheckError(hnd.AsyncGetAdcFrame(L502.ProcFlags.VOLT, 1000, buf)); pr("GetValueV=" + buf.ToString()); return(buf[0]); }
public void Start(LCard502Pars _pars, L502Ch[] _channels) { if (IsStarted) { return; } LoadSettings(_pars, _channels); #if TTL_SIGNALS LFATAL("LCard502::Start: не смогли разрешить потоки: ", hnd.StreamsEnable(L502.Streams.ADC | L502.Streams.DIN)); #else LFATAL("LCard502::Start: не смогли разрешить потоки: ", hnd.StreamsEnable(L502.Streams.ADC)); #endif first_tick = Environment.TickCount; LFATAL("LCard502::Start: не смогли стартовать: ", hnd.StreamsStart()); IsStarted = true; }
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("LCard502.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)); if (p.IsPercent) { VoltPercent[i] = K[_channels[i].Range]; } else { VoltPercent[i] = 1; } } // Настраиваем источник частоты синхронизации L502.Sync[] f_sync_mode = { L502.Sync.INTERNAL, L502.Sync.EXTERNAL_MASTER }; hnd.SyncMode = f_sync_mode[_pars.SyncMode]; // 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_acq_buf = f_acq; 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)); }
public LCard502E(LCard502Pars _pars, DOnPr _OnPr = null) { if (_OnPr != null) { OnPr += _OnPr; } LastError = null; IPAddress addr = FirstIp(); if (addr == null) { throw (new Exception("LCard502E.LCard502E: Ошибка: Устройство не найдено")); } /* создаем запись, соответствующую заданному адресу */ X502.DevRec rec = E502.MakeDevRecordByIpAddr(addr, 0, 5000); /* создание объекта */ hnd = X502.Create(rec.DevName); /* станавливаем связь устанавливаем связь по созданной записи */ lpcie.Errs res = hnd.Open(rec); if (res != lpcie.Errs.OK) { throw (new Exception(string.Format("Ошибка открытия модуля: {0}", X502.GetErrorString(res)))); } //return; ///* создаем описатель модуля */ //hnd = new L502(); //string serial = FindSerial(_pars.DevNum); //if (serial == null) // throw (new Exception("LCard502.LCard502: Ошибка: Устройство не найдено: " + _pars.DevNum.ToString())); //pr("LCard502 create"); //// lpcie.Errs res; ///* устанавливаем связь по выбранному серийному номеру */ //lpcie.Errs res = hnd.Open(serial); //if (res != 0) // throw (new Exception(L502.GetErrorString(res) + " Ошибка открытия модуля")); ///* получаем информацию о модуле */ //L502.Info devinfo = hnd.DevInfo; }
public double GetValueP(L502Ch _channel, LCard502Pars _parsLCard502Pars, ref bool _ret) { return(GetValueP(GetValueV(_channel, _parsLCard502Pars, ref _ret))); }
public double GetValueV(L502Ch _channel, LCard502Pars _parsLCard502Pars, ref bool _ret) { return(0); }
public void Start(LCard502Pars _pars, L502Ch[] _channels) { }