Exemplo n.º 1
0
        public Form1()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //  Initiate error handling
            //   activating error handling will trap errors like
            //   bad channel numbers and non-configured conditions.
            //   Parameters:
            //     MccDaq.ErrorReporting.PrintAll :all warnings and errors encountered will be printed
            //     MccDaq.ErrorHandling.StopAll   :if an error is encountered, the program will stop
            MccDaq.ErrorInfo errorInfo = MccDaq.MccService.ErrHandling(MccDaq.ErrorReporting.PrintAll, MccDaq.ErrorHandling.StopAll);

            //  Get the first file in the directory
            //   Parameters:
            //     MccDaq.GetFileOptions.GetFirst :first file
            //     m_Path						  :path to search
            //	   filename						  :receives name of file
            string	filename = new string('\0', MAX_PATH);
            errorInfo = MccDaq.DataLogger.GetFileName((int)MccDaq.GetFileOptions.GetFirst, ref m_Path, ref filename);

            // create an instance of the data logger
            MccDaq.DataLogger logger = new MccDaq.DataLogger(filename);

            //  Set the preferences
            //    Parameters
            //      timeFormat					  :specifies times are 12 or 24 hour format
            //      timeZone					  :specifies local time of GMT
            //      units						  :specifies Fahrenheit, Celsius, or Kelvin
            MccDaq.TimeFormat	timeFormat = MccDaq.TimeFormat.TwelveHour;
            MccDaq.TimeZone		timeZone = MccDaq.TimeZone.Local;
            MccDaq.TempScale	units = MccDaq.TempScale.Fahrenheit;
            logger.SetPreferences(timeFormat, timeZone, units);

            //  Get the sample info for the first file in the directory
            //   Parameters:
            //     sampleInterval					 :receives the sample interval (time between samples)
            //     sampleCount						 :receives the sample count
            //	   startDate						 :receives the start date
            //	   startTime						 :receives the start time
            int	sampleInterval = 0;
            int	sampleCount = 0;
            int	startDate = 0;
            int startTime = 0;
            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.GetSampleInfo(ref sampleInterval, ref sampleCount, ref startDate, ref startTime);
            }

            //  Get the ANALOG channel count for the first file in the directory
            //   Parameters:
            //	   aiChannelCount					:receives the number of AI chennels logged
            int	aiChannelCount = 0;
            float [] aiChannelData = null;
            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.GetAIChannelCount(ref aiChannelCount);
                if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
                {
                    aiChannelData = new float [sampleCount * aiChannelCount];
                }
            }

            //  Get the CJC info for the first file in the directory
            //   Parameters:
            //	   cjcChannelCount					:receives the number of CJC chennels logged
            int	cjcChannelCount = 0;
            float [] cjcChannelData = null;
            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.GetCJCInfo( ref cjcChannelCount);
                if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
                {
                    cjcChannelData = new float [sampleCount * cjcChannelCount];
                }
            }

            //  Get the DIO info for the first file in the directory
            //   Parameters:
            //	   dioChannelCount					:receives the number of DIO chennels logged
            int	dioChannelCount = 0;
            int [] dioChannelData = null;
            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.GetDIOInfo(ref dioChannelCount);
                if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
                {
                    dioChannelData = new int [sampleCount * dioChannelCount];
                }
            }

            //  Read the time tag information
            //   Parameters:
            //	   startSample						:first sample to read
            //	   sampleCount						:number of samples to read
            //     dateTags							:receives the date tag information
            //     timeTags							:receives the time tag information
            int startSample = 0;
            int [] dateTags = new int [sampleCount];
            int [] timeTags = new int [sampleCount];
            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.ReadTimeTags(startSample, sampleCount, ref dateTags, ref timeTags);
            }

            //  Read the Analog data
            //   Parameters:
            //	   startSample						:first sample to read
            //	   sampleCount						:number of samples to read
            //     aiChannelData					:receives the analog data
            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.ReadAIChannels(startSample, sampleCount, ref aiChannelData);
            }

            //  Read the CJC data
            //   Parameters:
            //	   startSample						:first sample to read
            //	   sampleCount						:number of samples to read
            //     cjcChannelData					:receives the cjc data
            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.ReadCJCChannels(startSample, sampleCount, ref cjcChannelData);
            }

            //  Read the DIO data
            //   Parameters:
            //	   startSample						:first sample to read
            //	   sampleCount						:number of samples to read
            //     dioChannelData					:receives the dio data
            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.ReadDIOChannels(startSample, sampleCount, ref dioChannelData);
            }

            // display the data in teh list box
            string	displayStr;
            string	dateStr;
            string	timeStr;
            string	postfix;
            int		index;

            for (int i=0; i<sampleCount; i++)
            {
                int		date = dateTags[i];
                int		time = timeTags[i];

                int day = date & 0xff;
                int month = (date>>8) & 0xff;
                int year = (date>>16) & 0xffff;
                dateStr = month.ToString() + "/" + day.ToString() + "/" + year.ToString();

                switch ((time >> 24) & 0xff)
                {
                    case 0:
                        postfix = " AM";
                        break;
                    case 1:
                        postfix = " PM";
                        break;
                    case -1:
                        postfix = "";
                        break;
                    default:
                        postfix = "";
                        break;
                }
                int hours = (time>>16) & 0xff;
                int minutes = (time>>8) & 0xff;
                int seconds = (time) & 0xff;
                timeStr = hours.ToString() + ":" + minutes.ToString() + ":" + seconds.ToString() + ":" + postfix;

                displayStr = dateStr + "  " + timeStr;

                if (aiChannelCount > 0)
                {
                    index = i * aiChannelCount;
                    for (int j=0; j<aiChannelCount; j++)
                    {
                        displayStr += "\t\t" + aiChannelData[index++].ToString();
                    }
                }

                if (cjcChannelCount > 0)
                {
                    index = i * cjcChannelCount;
                    for (int j=0; j<cjcChannelCount; j++)
                    {
                        displayStr += "\t\t" + cjcChannelData[index++].ToString();
                    }
                }

                if (dioChannelCount > 0)
                {
                    index = i * dioChannelCount;
                    for (int j=0; j<dioChannelCount; j++)
                    {
                        displayStr += "\t" + dioChannelData[index++].ToString();
                    }
                }

                lbData.Items.Add(displayStr);
            }

            if (errorInfo.Value != MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                MessageBox.Show(errorInfo.Message);
                return;
            }
        }
Exemplo n.º 2
0
        private void cmdAnalogData_Click(object sender, EventArgs e)
        {
            int aiChannelCount = 0;

            float[] aiChannelData;
            int[]   ChannelNumbers;
            int[]   Units;
            int     i, j, ListSize, Index;
            string  DataListStr, StartTimeStr, lbDataStr;
            string  ChansStr, UnitsStr, ChanList, UnitList;
            string  PostfixStr, StartDateStr;

            int[] DateTags;
            int[] TimeTags;
            int   StartSample = 0;
            int   Hour, Minute, Second, Postfix;
            int   Month, Day, Year;

            //  Get the ANALOG info for the first file in the directory
            //   Parameters:
            //     channelMask		:receives the channel mask to specify which channels were logged
            //     unitMask			:receives the unit mask to specify temp or raw data

            ULStat = logger.GetAIChannelCount(ref aiChannelCount);
            if (ULStat.Value != MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                txtData.Text = ULStat.Message;
            }
            else
            {
                // Get the Analog information
                //  Parameters:
                //    Filename                :name of file to get information from
                //    ChannelNumbers          :array containing channel numbers that were logged
                //    Units                   :array containing the units for each channel that was logged
                //    AIChannelCount          :number of analog channels logged

                if ((aiChannelCount > 0) && (SampleCount > 0))
                {
                    ChannelNumbers = new int[aiChannelCount];
                    Units          = new int[aiChannelCount];
                    ULStat         = logger.GetAIInfo(ref ChannelNumbers, ref Units);
                    ChanList       = "";
                    UnitList       = "";
                    if (ULStat.Value != MccDaq.ErrorInfo.ErrorCode.NoErrors)
                    {
                        txtData.Text = ULStat.Message;
                    }
                    else
                    {
                        for (i = 0; i < aiChannelCount; i++)
                        {
                            ChansStr = ChannelNumbers[i].ToString();
                            UnitsStr = "Temp";
                            if (Units[i] == (int)MccDaq.LoggerUnits.Raw)
                            {
                                UnitsStr = "Raw";
                            }
                            ChanList = ChanList + "Chan" + ChansStr + "\t";
                            UnitList = UnitList + UnitsStr + "\t";
                        }
                    }
                    DataListStr = "Time" + "\t" + "\t" + ChanList + "\r\n" +
                                  "\t" + "\t" + UnitList + "\r\n" + "\r\n";
                    DateTags = new int[SampleCount];
                    TimeTags = new int[SampleCount];
                    ULStat   = logger.ReadTimeTags(StartSample, SampleCount, ref DateTags, ref TimeTags);
                    if (ULStat.Value != MccDaq.ErrorInfo.ErrorCode.NoErrors)
                    {
                        txtData.Text = ULStat.Message;
                    }

                    aiChannelData = new float[SampleCount * aiChannelCount];
                    ULStat        = logger.ReadAIChannels(StartSample, SampleCount, ref aiChannelData);
                    ListSize      = SampleCount;
                    if (ListSize > 50)
                    {
                        ListSize = 50;
                    }
                    PostfixStr = "";
                    for (i = 0; i <= ListSize; i++)
                    {
                        //Parse the date from the StartDate parameter
                        Month        = (DateTags[i] >> 8) & 0xff;
                        Day          = DateTags[i] & 0xff;
                        Year         = (DateTags[i] >> 16) & 0xff;
                        StartDateStr = Month.ToString("00") + "/" +
                                       Day.ToString("00") + "/" + Year.ToString("0000");

                        //Parse the time from the StartTime parameter
                        Hour    = (TimeTags[i] >> 16) & 0xff;
                        Minute  = (TimeTags[i] >> 8) & 0xff;
                        Second  = TimeTags[i] & 0xff;
                        Postfix = (TimeTags[i] >> 24) & 0xff;
                        if (Postfix == 0)
                        {
                            PostfixStr = " AM";
                        }
                        if (Postfix == 1)
                        {
                            PostfixStr = " PM";
                        }
                        StartTimeStr = Hour.ToString("00") + ":" +
                                       Minute.ToString("00") + ":" + Second.ToString("00")
                                       + PostfixStr;
                        Index     = i * aiChannelCount;
                        lbDataStr = "";
                        for (j = 0; j < aiChannelCount; j++)
                        {
                            lbDataStr = lbDataStr + "\t" + aiChannelData[Index + j].ToString("0.00");
                        }

                        DataListStr = DataListStr + StartDateStr + "  " + StartTimeStr + lbDataStr + "\r\n";
                    }
                    txtData.Text = "Analog data from " + logger.FileName + "\r\n" + "\r\n" + DataListStr;
                }
                else
                {
                    txtData.Text = "There is no analog data in " + logger.FileName + ".";
                }
            }
        }
Exemplo n.º 3
0
        public Form1()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //  Initiate error handling
            //   activating error handling will trap errors like
            //   bad channel numbers and non-configured conditions.
            //   Parameters:
            //     MccDaq.ErrorReporting.PrintAll :all warnings and errors encountered will be printed
            //     MccDaq.ErrorHandling.StopAll   :if an error is encountered, the program will stop
            MccDaq.ErrorInfo errorInfo = MccDaq.MccService.ErrHandling(MccDaq.ErrorReporting.PrintAll, MccDaq.ErrorHandling.StopAll);


            //  Get the first file in the directory
            //   Parameters:
            //     MccDaq.GetFileOptions.GetFirst :first file
            //     m_Path						  :path to search
            //	   filename						  :receives name of file
            string filename = new string('\0', MAX_PATH);

            errorInfo = MccDaq.DataLogger.GetFileName((int)MccDaq.GetFileOptions.GetFirst, ref m_Path, ref filename);


            // create an instance of the data logger
            MccDaq.DataLogger logger = new MccDaq.DataLogger(filename);


            //  Set the preferences
            //    Parameters
            //      timeFormat					  :specifies times are 12 or 24 hour format
            //      timeZone					  :specifies local time of GMT
            //      units						  :specifies Fahrenheit, Celsius, or Kelvin
            MccDaq.TimeFormat timeFormat = MccDaq.TimeFormat.TwelveHour;
            MccDaq.TimeZone   timeZone   = MccDaq.TimeZone.Local;
            MccDaq.TempScale  units      = MccDaq.TempScale.Fahrenheit;
            logger.SetPreferences(timeFormat, timeZone, units);


            //  Get the sample info for the first file in the directory
            //   Parameters:
            //     sampleInterval					 :receives the sample interval (time between samples)
            //     sampleCount						 :receives the sample count
            //	   startDate						 :receives the start date
            //	   startTime						 :receives the start time
            int sampleInterval = 0;
            int sampleCount    = 0;
            int startDate      = 0;
            int startTime      = 0;

            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.GetSampleInfo(ref sampleInterval, ref sampleCount, ref startDate, ref startTime);
            }


            //  Get the ANALOG channel count for the first file in the directory
            //   Parameters:
            //	   aiChannelCount					:receives the number of AI chennels logged
            int aiChannelCount = 0;

            float [] aiChannelData = null;
            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.GetAIChannelCount(ref aiChannelCount);
                if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
                {
                    aiChannelData = new float [sampleCount * aiChannelCount];
                }
            }


            //  Get the CJC info for the first file in the directory
            //   Parameters:
            //	   cjcChannelCount					:receives the number of CJC chennels logged
            int cjcChannelCount = 0;

            float [] cjcChannelData = null;
            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.GetCJCInfo(ref cjcChannelCount);
                if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
                {
                    cjcChannelData = new float [sampleCount * cjcChannelCount];
                }
            }


            //  Get the DIO info for the first file in the directory
            //   Parameters:
            //	   dioChannelCount					:receives the number of DIO chennels logged
            int dioChannelCount = 0;

            int [] dioChannelData = null;
            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.GetDIOInfo(ref dioChannelCount);
                if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
                {
                    dioChannelData = new int [sampleCount * dioChannelCount];
                }
            }


            //  Read the time tag information
            //   Parameters:
            //	   startSample						:first sample to read
            //	   sampleCount						:number of samples to read
            //     dateTags							:receives the date tag information
            //     timeTags							:receives the time tag information
            int startSample = 0;

            int [] dateTags = new int [sampleCount];
            int [] timeTags = new int [sampleCount];
            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.ReadTimeTags(startSample, sampleCount, ref dateTags, ref timeTags);
            }


            //  Read the Analog data
            //   Parameters:
            //	   startSample						:first sample to read
            //	   sampleCount						:number of samples to read
            //     aiChannelData					:receives the analog data
            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.ReadAIChannels(startSample, sampleCount, ref aiChannelData);
            }


            //  Read the CJC data
            //   Parameters:
            //	   startSample						:first sample to read
            //	   sampleCount						:number of samples to read
            //     cjcChannelData					:receives the cjc data
            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.ReadCJCChannels(startSample, sampleCount, ref cjcChannelData);
            }


            //  Read the DIO data
            //   Parameters:
            //	   startSample						:first sample to read
            //	   sampleCount						:number of samples to read
            //     dioChannelData					:receives the dio data
            if (errorInfo.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                errorInfo = logger.ReadDIOChannels(startSample, sampleCount, ref dioChannelData);
            }


            // display the data in teh list box
            string displayStr;
            string dateStr;
            string timeStr;
            string postfix;
            int    index;

            for (int i = 0; i < sampleCount; i++)
            {
                int date = dateTags[i];
                int time = timeTags[i];

                int day   = date & 0xff;
                int month = (date >> 8) & 0xff;
                int year  = (date >> 16) & 0xffff;
                dateStr = month.ToString() + "/" + day.ToString() + "/" + year.ToString();

                switch ((time >> 24) & 0xff)
                {
                case 0:
                    postfix = " AM";
                    break;

                case 1:
                    postfix = " PM";
                    break;

                case -1:
                    postfix = "";
                    break;

                default:
                    postfix = "";
                    break;
                }
                int hours   = (time >> 16) & 0xff;
                int minutes = (time >> 8) & 0xff;
                int seconds = (time) & 0xff;
                timeStr = hours.ToString() + ":" + minutes.ToString() + ":" + seconds.ToString() + ":" + postfix;

                displayStr = dateStr + "  " + timeStr;

                if (aiChannelCount > 0)
                {
                    index = i * aiChannelCount;
                    for (int j = 0; j < aiChannelCount; j++)
                    {
                        displayStr += "\t\t" + aiChannelData[index++].ToString();
                    }
                }

                if (cjcChannelCount > 0)
                {
                    index = i * cjcChannelCount;
                    for (int j = 0; j < cjcChannelCount; j++)
                    {
                        displayStr += "\t\t" + cjcChannelData[index++].ToString();
                    }
                }

                if (dioChannelCount > 0)
                {
                    index = i * dioChannelCount;
                    for (int j = 0; j < dioChannelCount; j++)
                    {
                        displayStr += "\t" + dioChannelData[index++].ToString();
                    }
                }

                lbData.Items.Add(displayStr);
            }


            if (errorInfo.Value != MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                MessageBox.Show(errorInfo.Message);
                return;
            }
        }