Beispiel #1
0
        public double[] Read()
        {
            uint count = hnd.RecvReadyCount;

            count /= CurrentSensors;
            count *= CurrentSensors;
            SetRawSize(count);
            int rcv_size = hnd.Recv(rawi, count, RECV_TOUT);

            if (rcv_size < 0)
            {
                if (CheckError((lpcie.Errs)rcv_size))
                {
                    return(null);
                }
            }
            if (rcv_size != (int)count)
            {
                LastError = "Размер полученный не равен размеру запрошенному";
                return(null);
            }
            // переводим АЦП в Вольты
            uint count1 = count;

            if (CheckError(hnd.ProcessAdcData(rawi, raw, ref count1, L502.ProcFlags.VOLT)))
            {
                return(null);
            }
            if (count != count1)
            {
                LastError = "Размер преобразование полученный не равен размеру запрошенному";
                return(null);
            }
            int sensor = 0;

            double[] values = new double[count];
            for (int i = 0; i < count; i++)
            {
                values[i] = raw[i] * VoltPercent[sensor];
                //if (curr_test >= 300000 && curr_test < 300000+40)
                //    values[i] = 100;
                //else
                //    values[i] = 0;
                //values[i] = curr_test / 10000;
                //curr_test++;

                sensor++;
                if (sensor == CurrentSensors)
                {
                    sensor = 0;
                }
            }
            return(values);
        }