コード例 #1
0
        public override void TextChange()
        {
            TTime = DateTime.Now;
            ThreePhaseElectricMeter_Logs = MysqlMethod.Search_ThreePhaseElectricMeter_Log($"{TTime:yyyyMMdd000000}", $"{TTime:yyyyMMdd235959}", ElectricConfig.GatewayIndex, ElectricConfig.DeviceIndex);
            LinechartControl.DataSource  = ThreePhaseElectricMeter_Logs;
            LinechartControl.Refresh();
            var data = ElectricAbsProtocols.Single(g => g.GatewayIndex == ElectricConfig.GatewayIndex & g.DeviceIndex == ElectricConfig.DeviceIndex);

            if (data.ConnectFlag)
            {
                ElectricTypeEnum electricTypeEnum = (ElectricTypeEnum)data.ElectricTypeEnum;
                switch (electricTypeEnum)
                {
                case ElectricTypeEnum.BAW_4C:
                {
                    ThreePhaseElectricMeterData threePhaseElectric = (ThreePhaseElectricMeterData)data;
                    rsvlabelControl.Text   = threePhaseElectric.rsv.ToString("F2");
                    stvlabelControl.Text   = threePhaseElectric.stv.ToString("F2");
                    trvlabelControl.Text   = threePhaseElectric.trv.ToString("F2");
                    ralabelControl.Text    = threePhaseElectric.ra.ToString("F2");
                    salabelControl.Text    = threePhaseElectric.sa.ToString("F2");
                    talabelControl.Text    = threePhaseElectric.ta.ToString("F2");
                    pfelabelControl.Text   = threePhaseElectric.pfe.ToString("F3");
                    hzlabelControl.Text    = threePhaseElectric.hz.ToString("F2");
                    kwlabelControl.Text    = threePhaseElectric.kw.ToString("F2");
                    kwhlabelControl.Text   = threePhaseElectric.kwh.ToString("F2");
                    kvarlabelControl.Text  = threePhaseElectric.kvar.ToString("F2");
                    kvarhlabelControl.Text = threePhaseElectric.kvarh.ToString("F2");
                }
                break;
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 新增三相電力歷史資訊
        /// </summary>
        /// <param name="log">三相電錶歷史資訊</param>
        /// <returns></returns>
        public bool Insert_ThreePhaseElectricMeter_Log(ThreePhaseElectricMeterData log)
        {
            DateTime dateTime      = DateTime.Now;
            string   ttime         = dateTime.ToString("yyyyMMddHHmm00");
            DateTime ttimen        = Convert.ToDateTime($"{dateTime:yyyy/MM/dd HH:mm:00}");
            bool     InsertFlag    = false;
            bool     ProcedureFlag = false;

            try
            {
                using (var conn = new MySqlConnection(logscsb.ConnectionString))
                {
                    string InsertString    = "INSERT IGNORE INTO ThreePhaseElectricMeter_Log (ttime,ttimen,GatewayIndex,DeviceIndex,rv,sv,tv,rsv,stv,trv,ra,sa,ta,kw,kwh,kvar,kvarh,pfe,kva,kvah,hz)VALUES (@ttime,@ttimen,@GatewayIndex,@DeviceIndex,@rv,@sv,@tv,@rsv,@stv,@trv,@ra,@sa,@ta,@kw,@kwh,@kvar,@kvarh,@pfe,@kva,@kvah,@hz)";
                    string Procedurestring = "ElectricdailykwhProcedure";
                    conn.Execute(InsertString, new { ttime, ttimen, log.GatewayIndex, log.DeviceIndex, log.rv, log.sv, log.tv, log.rsv, log.stv, log.trv, log.ra, log.sa, log.ta, log.kw, log.kwh, log.kvar, log.kvarh, log.pfe, log.kva, log.kvah, log.hz });
                    InsertFlag = true;
                    var affectedRows = conn.Execute(Procedurestring, new { nowTime = ttime, gatewayIndex1 = log.GatewayIndex, deviceIndex1 = log.DeviceIndex, nowKwh = log.kwh }, commandType: System.Data.CommandType.StoredProcedure);
                    if (affectedRows > 0)
                    {
                        ProcedureFlag = true;
                    }
                }
            }
            catch (Exception ex)
            {
                if (!InsertFlag && !ProcedureFlag)
                {
                    Log.Error(ex, "三相電力存取失敗");
                }
                else if (InsertFlag && !ProcedureFlag)
                {
                    Log.Error(ex, "三相電力累積量存取失敗");
                }
                else if (!InsertFlag && ProcedureFlag)
                {
                    Log.Error(ex, "三相電力累積量存取失敗");
                }
            }
            if (InsertFlag && ProcedureFlag)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }