예제 #1
0
        private void parseStream()
        {
            string line = null;

            if (_logFile != null) {

                // Populate logFileLines.
                for (int i = 0; ( line = _logFile.ReadLine() ) != null; i++ ) {

                    if (line != "" && line != "AT+CGREG?" && (line.Substring(0,1).StartsWith("#") != true )) {

                        _ar_logFileLines.Add (line);

                        //Split lines
                        string[] cols = line.Split (',');

                        //Populate devi/** TODO: Populate Alarms Table */ceLogFileValues
                        _ar_deviceLogFileEntries.Add (cols);

                    }

                }

                /**
                 * ===============================
                 * New parse for temps and alarms.
                 * ===============================
                 * Walk through each LogFile Entry.
                 * For each entry, walk through the Device LogFileDescription to get
                 * the sensor codes, as well as the array index for the logfile values
                 * for each Device LogFile Entry.
                 */

                if (_ar_logFileDescription == null)
                    _ar_logFileDescription = new CUtillity ().CUTIL_DefaultDeviceFileDescription;

                for (int j = 0; j < _ar_deviceLogFileEntries.Count; j++) {

                    for (int k = 0; k < _ar_logFileDescription.Count; k++) {

                        CDeviceFileDescription __device_descr = (CDeviceFileDescription) _ar_logFileDescription [k];

                        switch (__device_descr.DeviceCode) {
                        case "LOGTEMP":

                            try {

                            _ar_logTimeTemp.Add (((string[])_ar_deviceLogFileEntries [j]) [k]);

                            } catch (IndexOutOfRangeException e) {

                                //TODO: Catch array index out of range here.

                            }

                            break;

                        case "LOGTIME":

                            int __hour = 0;
                            int __minute = 0;
                            string __cur_element = ((string[])_ar_deviceLogFileEntries [j]) [k];

                            try {
                                __hour = Convert.ToInt32 (__cur_element.Substring (0, 2));
                                __minute = Convert.ToInt32 (__cur_element.Substring (3, 2));
                            } catch (FormatException) {

                                new Gtk.MessageDialog (null, Gtk.DialogFlags.Modal, Gtk.MessageType.Error, Gtk.ButtonsType.Ok,
                                    "The file you tried to open was incorrectly formatted.\n" +
                                    "Please select a different file.", 0).Show ();

                                return;
                            }

                            DateTime dt = new DateTime (
                                              _logFileModifiedDate.Year,
                                              _logFileModifiedDate.Month,
                                              _logFileModifiedDate.Day, __hour, __minute, 0
                                          );

                            _ar_logTime.Add (dt);

                            break;

                        case "DID":
                            break;

                        default:

                            string value = ((string[])_ar_deviceLogFileEntries [j]) [k];

                            if ( value.Length > 1 ){
                                CDeviceLogFileEntry __entry = new CDeviceLogFileEntry ();

                                __entry.LogFIleSensorCode = __device_descr.DeviceCode;
                                __entry.LogFileSensorDescr = __device_descr.DeviceCodeDescription;
                                __entry.LogFileSensorValue = value;

                                _ar_logAlarms.Add (__entry);

                            }

                            break;

                        }

                    }

                }

            }
        }
예제 #2
0
        private void parseStream()
        {
            string line = null;

            if (_logFile != null)
            {
                // Populate logFileLines.
                for (int i = 0; (line = _logFile.ReadLine()) != null; i++)
                {
                    if (line != "" && line != "AT+CGREG?" && (line.Substring(0, 1).StartsWith("#") != true))
                    {
                        _ar_logFileLines.Add(line);

                        //Split lines
                        string[] cols = line.Split(',');

                        //Populate devi/** TODO: Populate Alarms Table */ceLogFileValues
                        _ar_deviceLogFileEntries.Add(cols);
                    }
                }


                /**
                 * ===============================
                 * New parse for temps and alarms.
                 * ===============================
                 * Walk through each LogFile Entry.
                 * For each entry, walk through the Device LogFileDescription to get
                 * the sensor codes, as well as the array index for the logfile values
                 * for each Device LogFile Entry.
                 */

                if (_ar_logFileDescription == null)
                {
                    _ar_logFileDescription = new CUtillity().CUTIL_DefaultDeviceFileDescription;
                }

                for (int j = 0; j < _ar_deviceLogFileEntries.Count; j++)
                {
                    for (int k = 0; k < _ar_logFileDescription.Count; k++)
                    {
                        CDeviceFileDescription __device_descr = (CDeviceFileDescription)_ar_logFileDescription [k];

                        switch (__device_descr.DeviceCode)
                        {
                        case "LOGTEMP":

                            try {
                                _ar_logTimeTemp.Add(((string[])_ar_deviceLogFileEntries [j]) [k]);
                            } catch (IndexOutOfRangeException e) {
                                //TODO: Catch array index out of range here.
                            }

                            break;

                        case "LOGTIME":

                            int    __hour        = 0;
                            int    __minute      = 0;
                            string __cur_element = ((string[])_ar_deviceLogFileEntries [j]) [k];

                            try {
                                __hour   = Convert.ToInt32(__cur_element.Substring(0, 2));
                                __minute = Convert.ToInt32(__cur_element.Substring(3, 2));
                            } catch (FormatException) {
                                new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Error, Gtk.ButtonsType.Ok,
                                                      "The file you tried to open was incorrectly formatted.\n" +
                                                      "Please select a different file.", 0).Show();

                                return;
                            }

                            DateTime dt = new DateTime(
                                _logFileModifiedDate.Year,
                                _logFileModifiedDate.Month,
                                _logFileModifiedDate.Day, __hour, __minute, 0
                                );

                            _ar_logTime.Add(dt);

                            break;

                        case "DID":
                            break;

                        default:

                            string value = ((string[])_ar_deviceLogFileEntries [j]) [k];

                            if (value.Length > 1)
                            {
                                CDeviceLogFileEntry __entry = new CDeviceLogFileEntry();

                                __entry.LogFIleSensorCode  = __device_descr.DeviceCode;
                                __entry.LogFileSensorDescr = __device_descr.DeviceCodeDescription;
                                __entry.LogFileSensorValue = value;

                                _ar_logAlarms.Add(__entry);
                            }

                            break;
                        }
                    }
                }
            }
        }