Exemple #1
0
        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;
        }
Exemple #2
0
 public void Start(LCard502Pars _pars, L502Ch[] _channels)
 {
     if (IsStarted)
     {
         return;
     }
     LoadSettings(_pars, _channels);
     LFATAL("LCard502::Start: не смогли стартовать: ", hnd.StreamsStart());
     IsStarted = true;
 }
Exemple #3
0
 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]);
 }
Exemple #4
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;
        }
Exemple #5
0
        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));
        }
Exemple #6
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;
        }
Exemple #7
0
 public double GetValueP(L502Ch _channel, LCard502Pars _parsLCard502Pars, ref bool _ret)
 {
     return(GetValueP(GetValueV(_channel, _parsLCard502Pars, ref _ret)));
 }
Exemple #8
0
 public double GetValueV(L502Ch _channel, LCard502Pars _parsLCard502Pars, ref bool _ret)
 {
     return(0);
 }
Exemple #9
0
 public void Start(LCard502Pars _pars, L502Ch[] _channels)
 {
 }