Ejemplo n.º 1
0
        public void SetupTimedSample(LoggerState settings)
        {
            /*
             * //resolution (works) (12/16bit)
             * aio.GetAiResolution(id, out AiResolution);
             * maxbytes = Math.Pow(2, AiResolution);
             *
             * //Doesn't work on 1664LAX
             * aio.SetAiRangeAll(1,CaioConst.P025)
             *
             * //Doesn't work (reads 1)
             * short nC1;
             * aio.GetAiChannels(id, out nC1);
             *
             * //is this a mapping?
             * string map = "";
             * AiChannelSeq = new short[nChannel];
             * for (short i = 0; i < nChannel; i++)
             * {
             *  aio.GetAiChannelSequence(id, i, out AiChannelSeq[i]);
             *  map += AiChannelSeq[i].ToString() + ",";
             * }
             */

            //Setting the
            foreach (DEVICEID id in devices)
            {
                HANDLE_RETURN_VALUES = aio.SetAiChannels(id, settings.n_channels);
                HANDLE_RETURN_VALUES = aio.SetAiSamplingClock(id, settings.timer_interval); //default usec (2000 for)
                HANDLE_RETURN_VALUES = aio.SetAiStopTimes(id, settings.n_samples);
                HANDLE_RETURN_VALUES = aio.SetAiEventSamplingTimes(id, DATA_RECEIVE_EVENT); //#samples until data retrieve event

                HANDLE_RETURN_VALUES = aio.SetAiTransferMode(id, 0);                        //Device buffered 1=sent to user memory
                HANDLE_RETURN_VALUES = aio.SetAiMemoryType(id, 0);                          //FIFO 1=Ring

                if (settings.external_control)
                {
                    HANDLE_RETURN_VALUES = aio.SetAiStartTrigger(id, 1);                //1 by External trigger rising edge
                }
                else
                {
                    HANDLE_RETURN_VALUES = aio.SetAiStartTrigger(id, 0);                //0 by Software
                }

                if (settings.external_control)
                {
                    HANDLE_RETURN_VALUES = aio.SetAiClockType(id, 1);                   //external
                }
                else
                {
                    HANDLE_RETURN_VALUES = aio.SetAiClockType(id, 0);                   //internal
                }

                HANDLE_RETURN_VALUES = aio.SetAiStopTrigger(id, 0);                     //0 means by time
            }
        }