Esempio n. 1
0
        private void frmLoggerData_Load(object sender, EventArgs e)
        {
            //  Initiate error handling
            //   activating error handling will trap errors like
            //   bad channel numbers and non-configured conditions.
            //   Parameters:
            //     MccDaq.ErrorReporting.DontPrint :all warnings and errors encountered will be handled locally
            //     MccDaq.ErrorHandling.DontStop   :if an error is encountered, the program will not stop,
            //      errors will be handled locally.

            MccDaq.ErrorInfo ULStat = MccDaq.MccService.ErrHandling
                                          (MccDaq.ErrorReporting.DontPrint, MccDaq.ErrorHandling.DontStop);

            //  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(' ', MAX_PATH);

            ULStat = MccDaq.DataLogger.GetFileName
                         ((int)MccDaq.GetFileOptions.GetFirst, ref m_Path, ref filename);
            filename = filename.Trim();
            filename = filename.Trim('\0');

            // create an instance of the data logger
            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 startDate      = 0;
            int startTime      = 0;

            if (ULStat.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                ULStat = 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;

            if (ULStat.Value == MccDaq.ErrorInfo.ErrorCode.NoErrors)
            {
                ULStat = logger.GetAIChannelCount(ref aiChannelCount);
            }
        }
Esempio n. 2
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;
            }
        }