Ejemplo n.º 1
0
 private void ConvertUnit(UnitConvert unit, float[] values)
 {
     for (int i = 0; i < values.Length; i++)
     {
         values[i] = (float)unit.Convert(values[i]);
     }
 }
Ejemplo n.º 2
0
 public ValueRow(
     int index, string name, float value, string format, UnitConvert unit,
     bool save = false, bool chart = false, EUnitType yAxis = EUnitType.None)
 {
     Index   = index;
     Name    = name;
     Value   = value;
     Format  = format;
     Unit    = unit;
     State   = EValueState.None;
     YAxis   = yAxis;
     Chart   = chart;
     Save    = save;
     Storage = (Save == true) ? new ValueStorage(csLength) : null;
 }
Ejemplo n.º 3
0
        public void Open(Int64 recNo)
        {
            db.Lock();

            try
            {
                this.recNo = recNo;
                bufferedSeries.ClearPoints();

                double             totalTime  = 0;
                DataBookDataSet    bookSet    = db.DataBookSet;
                DataRawUnitDataSet rawUnitSet = db.DataRawUnitSet;
                DataRawDataSet     rawSet     = db.DataRawSet;
                UnitConvert        unit       = new UnitConvert(EUnitType.None, 0, 0);

                bookSet.Select(recNo);

                if (bookSet.IsEmpty() == false)
                {
                    bookSet.Fetch();

                    scanTime = bookSet.ScanTime;
                    bufferedSeries.BaseTime = scanTime * 1000;

                    if (string.IsNullOrWhiteSpace(bookSet.TestName) == true)
                    {
                        fName = $"None_Line{bookSet.TestLine + 1}";
                    }
                    else
                    {
                        fName = $"{bookSet.TestName}_Line{bookSet.TestLine + 1}";
                    }

                    rawUnitSet.Select(bookSet.RecNo);

                    try
                    {
                        for (int i = 0; i < rawUnitSet.GetRowCount(); i++)
                        {
                            rawUnitSet.Fetch(i);

                            unit.Type = (EUnitType)rawUnitSet.UnitType;
                            unit.From = rawUnitSet.UnitFrom;
                            unit.To   = rawUnitSet.UnitTo;

                            SetMethodUnit((EUnitType)rawUnitSet.UnitType, rawUnitSet.UnitTo);
                            SetPlotSeriesUnit(i, (EUnitType)rawUnitSet.UnitType, rawUnitSet.UnitTo);

                            rawSet.Select(rawUnitSet.RecNo);
                            for (int j = 0; j < rawSet.GetRowCount(); j++)
                            {
                                rawSet.Fetch(j);
                                if (rawSet.DataRaw == null)
                                {
                                    break;
                                }

                                if (i == 0)
                                {
                                    totalTime += (rawSet.DataRaw.Length - 1) * bufferedSeries.BaseTime;
                                }

                                ConvertUnit(unit, rawSet.DataRaw);
                                bufferedSeries[i].Points.AddRange(rawSet.DataRaw);
                            }

                            Win32.SwitchToThread();
                        }
                    }
                    finally
                    {
                        foreach (TabPage page in graphTab.TabPages)
                        {
                            CtrlViewGraphPanel ctrl = page.Controls[0] as CtrlViewGraphPanel;

                            ctrl.Method = method;
                            ctrl.RefreshYAxesUnit();
                            ctrl.SetMaxRangeAxisX(totalTime);
                        }

                        InvalidateGraphSeries(graphTab.SelectedTab);
                    }
                }
            }
            finally
            {
                db.Unlock();
            }
        }
Ejemplo n.º 4
0
        private void Initialize()
        {
            // Load constant variables
            int    i     = 1;
            string key   = $"CH{i}";
            string param = Resource.Ini.GetString("Constant.Channel", key);

            Const.Clear();

            while (string.IsNullOrWhiteSpace(param) == false)
            {
                string[] @params = param.Split(new[] { ',' }, StringSplitOptions.None);

                EUnitType   type   = (EUnitType)Enum.Parse(typeof(EUnitType), @params[1]);
                int         unitNo = GetUnitNo(type, @params[2]);
                UnitConvert unit   = new UnitConvert(type, unitNo, unitNo);

                ValueRow row = new ValueRow(i - 1, @params[0], 0f, @params[3],
                                            unit, bool.Parse(@params[4]), bool.Parse(@params[5]), type);

                Const.Add(@params[0], row);

                i++;
                key   = $"CH{i}";
                param = Resource.Ini.GetString("Constant.Channel", key);
            }

            Const["Total.Rated.Capacity"].Unit.Enabled = false;
            Const["Total.Rated.EER_COP"].Unit.Enabled  = false;

            // Load calculated variables
            i     = 1;
            key   = $"CH{i}";
            param = Resource.Ini.GetString("Calculated.Channel", key);
            Calcurated.Clear();

            while (string.IsNullOrWhiteSpace(param) == false)
            {
                string[] @params = param.Split(new[] { ',' }, StringSplitOptions.None);

                EUnitType   type   = (EUnitType)Enum.Parse(typeof(EUnitType), @params[1]);
                int         unitNo = GetUnitNo(type, @params[2]);
                UnitConvert unit   = new UnitConvert(type, unitNo, unitNo);

                ValueRow row = new ValueRow(i - 1, @params[0], 0f, @params[3],
                                            unit, bool.Parse(@params[4]), bool.Parse(@params[5]), type);

                Calcurated.Add(@params[0], row);

                i++;
                key   = $"CH{i}";
                param = Resource.Ini.GetString("Calculated.Channel", key);
            }

            // Load measured variables
            i     = 1;
            key   = $"CH{i}";
            param = Resource.Ini.GetString("Measured.Channel", key);
            Measured.Clear();

            while (string.IsNullOrWhiteSpace(param) == false)
            {
                string[] @params = param.Split(new[] { ',' }, StringSplitOptions.None);

                EUnitType   type   = (EUnitType)Enum.Parse(typeof(EUnitType), @params[1]);
                int         unitNo = GetUnitNo(type, @params[2]);
                UnitConvert unit   = new UnitConvert(type, unitNo, unitNo);

                ValueRow row = new ValueRow(i - 1, @params[0], 0f, @params[3],
                                            unit, bool.Parse(@params[4]), bool.Parse(@params[5]), type);

                Measured.Add(@params[0], row);

                i++;
                key   = $"CH{i}";
                param = Resource.Ini.GetString("Measured.Channel", key);
            }

            foreach (KeyValuePair <string, ValueRow> row in Calcurated)
            {
                if (row.Value.Chart == true)
                {
                    Graph.Add(row.Key, row.Value);
                }
            }
            foreach (KeyValuePair <string, ValueRow> row in Measured)
            {
                if (row.Value.Chart == true)
                {
                    Graph.Add(row.Key, row.Value);
                }
            }
        }
Ejemplo n.º 5
0
        private void SetSheetValues(Dictionary <string, Cell> sheet, List <string> cellTags, int integCount,
                                    int integTime, DataValueUnitDataSet valueUnitSet, DataValueDataSet valueSet, bool isThermo, bool isNozzle = false)
        {
            string      tag, state = "";
            float       average        = 0;
            int         valueCount     = 0;
            int         valueUnitCount = valueUnitSet.GetRowCount();
            UnitConvert unit           = new UnitConvert(EUnitType.None, 0, 0);

            for (int i = 0; i < valueUnitCount; i++)
            {
                valueUnitSet.Fetch(i);

                unit.Type = (EUnitType)valueUnitSet.UnitType;
                unit.From = valueUnitSet.UnitFrom;
                unit.To   = valueUnitSet.UnitTo;

                if (isThermo == true)
                {
                    tag = $"{{{cellTags[i]}-N}}";
                    sheet[tag].Value = valueUnitSet.ValueName;
                }

                tag = $"{{{cellTags[i]}}}";

                if (cellTags[i] != "365")
                {
                    if (valueUnitSet.UnitType == 0)
                    {
                        sheet[tag].Value = "";
                    }
                    else
                    {
                        sheet[tag].Value = unit.ToDescription;
                    }
                }

                average = 0;
                valueSet.Select(valueUnitSet.RecNo);
                valueCount = valueSet.GetRowCount();

                for (int j = 0; j < valueCount; j++)
                {
                    valueSet.Fetch(j);

                    tag = $"{{{cellTags[i]}-{valueSet.DataNo+1}}}";

                    if (valueUnitSet.UnitType == 0)
                    {
                        if ((cellTags[i] == "365") && (isNozzle == true))
                        {
                            state            = GetNozzleState((byte)valueSet.DataValue);
                            sheet[tag].Value = state;
                        }
                        else
                        {
                            sheet[tag].Value = "";
                            average          = float.NaN;
                            break;
                        }
                    }
                    else
                    {
                        if (float.IsNaN(valueSet.DataValue) == true)
                        {
                            sheet[tag].Value = "";
                            average          = float.NaN;
                            break;
                        }
                        else
                        {
                            if (string.IsNullOrWhiteSpace(valueUnitSet.Format) == false)
                            {
                                sheet[tag].NumberFormat = valueUnitSet.Format;
                            }

                            sheet[tag].Value = unit.Convert(valueSet.DataValue);
                            average         += valueSet.DataValue;
                        }
                    }
                }

                tag = $"{{{cellTags[i]}-0}}";

                if (cellTags[i] == "365")
                {
                    if (isNozzle == true)
                    {
                        sheet[tag].Value = state;
                    }
                    else
                    {
                        sheet[tag].Value = "";
                    }
                }
                else
                {
                    if ((valueUnitSet.UnitType == 0) || (valueCount == 0))
                    {
                        sheet[tag].Value = "";
                    }
                    else
                    {
                        if (float.IsNaN(average) == true)
                        {
                            sheet[tag].Value = "";
                        }
                        else
                        {
                            average          = average / valueCount;
                            sheet[tag].Value = unit.Convert(average);
                        }
                    }
                }
            }

            sheet["{min-0}"].Value = "Average";
            for (int i = 0; i < integCount; i++)
            {
                tag = $"{{min-{i+1}}}";
                sheet[tag].Value = $"{(i+1)*integTime} min";
            }
        }