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; } } }
/// <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); } }