Example #1
0
        private void ProcessThread(string rawData, Business.Arrays.SensorData resultTable)
        {
            // Se verifica que el mensaje sea para SDA.
            if (rawData.StartsWith("SDA: ")) rawData = rawData.Remove(0, 5);
            else return;

            // Se separan los datos
            string[] rawColumnsData = rawData.Split(' ');

            Business.Arrays.GenericArray<Business.Measurement> receivedData = new Business.Arrays.GenericArray<Business.Measurement>();
            Business.MeasureUnit measureInfo;
            Business.Measurement newMeasure;

            // Se convierten los datos a double
            for (int i = 0; i < rawColumnsData.Length; ++i)
            {
                try
                {
                    double processedData = Convert.ToDouble(rawColumnsData[i]);

                    measureInfo = new Business.MeasureUnit(resultTable.Columns[i].Measure, resultTable.Columns[i].Unit);
                    newMeasure = new Business.Measurement(measureInfo);

                    newMeasure.Value = processedData;
                    receivedData.Add(newMeasure);
                }
                catch (Exception ex) { RuntimeLogs.SendLog(ex.Message, "Processing.Process(string, ref Business.Arrays.SensorData )"); }
            }

            resultTable.AddRow(receivedData);
        }
Example #2
0
        // ComunicaciĆ³n
        private DataTable SensorDataDataTableFormat(Business.Arrays.SensorData data)
        {
            DataTable result = new DataTable();

            for (int i = 0; i < data.Columns.Size; ++i)
            {
                string columnName = data.Columns[i].Measure.Name + " (" + data.Columns[i].Unit.Name + ")";
                int    tr         = 1;
                while (result.Columns.Contains(columnName))
                {
                    columnName = data.Columns[i].Measure.Name + tr.ToString() + " (" + data.Columns[i].Unit.Name + ")";
                    tr++;
                }
                result.Columns.Add(columnName, typeof(double));
            }
            return(result);
        }
Example #3
0
        public DataTable SensorsListToDataTable(SDA_Core.Business.Arrays.SensorDataArray data)
        {
            DataTable result = new DataTable();

            result.Columns.Add("Name", typeof(string));
            result.Columns.Add("Column count", typeof(int));

            for (int i = 0; i < data.List.Size; ++i)
            {
                Business.Arrays.SensorData sensor = data.List[i];
                DataRow newRow = result.NewRow();

                newRow[0] = sensor.SensorName;
                newRow[1] = sensor.Columns.Size;

                result.Rows.Add(newRow);
            }
            return(result);
        }
Example #4
0
        public void SensorDataToDataTable(ref DataTable data, Business.Arrays.SensorData information)
        {
            int init = data.Rows.Count, last = information.Rows;

            if (data.Columns.Count == 0)
            {
                data = SensorDataDataTableFormat(information);
            }

            for (int i = init; i < last; ++i)
            {
                DataRow newRow = data.NewRow();
                for (int j = 0; j < information.Columns.Size; ++j)
                {
                    try { newRow[j] = information.Columns[j].List[i].Value; }
                    catch { break; }
                }
                data.Rows.Add(newRow);
            }
        }
Example #5
0
 /// <summary>
 /// ES: Procesa datos recogidos por Arduino SDA.
 /// </summary>
 /// <param name="rawData">ES: String con los datos sin procesar.</param>
 /// <param name="resultTable">ES: SensorDataArray donde se almacenaran los resultados</param>
 /// <param name="clearTable">ES: Indicar 'true' si se quiere limpiar los datos de la tabla</param>
 public void Process(string rawData, Business.Arrays.SensorData resultTable)
 {
     ThreadStart ts = delegate { ProcessThread(rawData, resultTable); };
     new Thread(ts).Start();
 }