/// <summary> /// 設備通訊資訊 /// </summary> /// <returns></returns> public static GateWaySetting GateWayLoad() { if (!Directory.Exists($"{MyWorkPath}\\stf")) { Directory.CreateDirectory($"{MyWorkPath}\\stf"); } string SettingPath = $"{MyWorkPath}\\stf\\GateWay.json"; GateWaySetting setting; if (File.Exists(SettingPath)) { string json = File.ReadAllText(SettingPath, Encoding.UTF8); setting = JsonConvert.DeserializeObject <GateWaySetting>(json); } else { setting = new GateWaySetting() { ControlFlag = true, RecordFlag = true, UploadFlag = false, GateWays = { new GateWay() { GatewayIndex = 0, ModbusRTULocation = "COM4", ModbusRTURate = 9600, ModbusTCPLocation = "127.0.0.1", ModbusTCPRate = 502, APILocation = "通訊網址", EMSLocation = "127.0.0.1", EMSRate = 502, WeatherAPILocation = "https://opendata.cwb.gov.tw/api/v1/rest/datastore/F-C0032-001?", Authorization = "氣象開放資料平台會員授權碼", LocationName = "臺北市", WeatherTypeEnum = 1, DistrictName = "中正區", GatewayEnumType = 1, GateWaySenserIDs = { new GateWaySenserID() { DeviceIndex = 1, DeviceID = 1, SenserEnumType = 0, DeviceName = "環境感測器1" } }, GateWayElectricIDs = { new GateWayElectricID() { TotalMeterFlag = false, DeviceIndex = 0, DeviceID = 1, ElectricEnumType = 0, LoopEnumType = 0, PhaseEnumType = 0, PhaseAngleEnumType = 0, DeviceName = "電表1" } }, GatewayName = "通道名稱1" } } }; string output = JsonConvert.SerializeObject(setting, Formatting.Indented, new JsonSerializerSettings()); File.WriteAllText(SettingPath, output); } return(setting); }
private void SettingView_Load(object sender, EventArgs e) { gateWay = InitialMethod.GateWayLoad(); taiwan_DistricsSetting = InitialMethod.Taiwan_DistricsLoad(); #region 產生電錶填入欄位 for (int i = 0; i < 30; i++) //toggleSwitch = 啟動, toggleSwitch2 = 總錶 { DevExpress.XtraEditors.ToggleSwitch toggleSwitch = new DevExpress.XtraEditors.ToggleSwitch { Name = $"toggleSwitch{ 1 + i * 2}", Location = new Point(10, 8 + 25 * i), Size = new Size(48, 19), IsOn = false }; toggleSwitch.Properties.ShowText = false; xtraScrollableControl1.Controls.Add(toggleSwitch); DevExpress.XtraEditors.ToggleSwitch toggleSwitch2 = new DevExpress.XtraEditors.ToggleSwitch { Name = $"toggleSwitch{ 2 + i * 2}", Location = new Point(600, 8 + 25 * i), Size = new Size(48, 19), IsOn = false }; toggleSwitch2.Properties.ShowText = false; xtraScrollableControl1.Controls.Add(toggleSwitch2); toggleSwitches.Add(toggleSwitch); toggleSwitches2.Add(toggleSwitch2); } for (int i = 0; i < 30; i++) //設備名稱 { DevExpress.XtraEditors.TextEdit textEdit = new DevExpress.XtraEditors.TextEdit { Name = $"textEdit{1 + i}", Location = new Point(65, 6 + 25 * i), Size = new Size(105, 22) }; xtraScrollableControl1.Controls.Add(textEdit); textEdits.Add(textEdit); } for (int i = 0; i < 30; i++) //設備ID { DevExpress.XtraEditors.SpinEdit spinEdit = new DevExpress.XtraEditors.SpinEdit { Name = $"spinEdit{1 + i}", Location = new Point(185, 6 + 25 * i), Size = new Size(55, 20) }; spinEdit.Properties.MaxValue = 254; spinEdit.Properties.MinValue = 1; spinEdit.Properties.IsFloatValue = false; xtraScrollableControl1.Controls.Add(spinEdit); spinEdits.Add(spinEdit); } for (int i = 0; i < 30; i++) //電錶廠牌 { DevExpress.XtraEditors.ComboBoxEdit comboBoxEdit = new DevExpress.XtraEditors.ComboBoxEdit { Name = $"comboBoxEdit{1 + i * 4}", Location = new Point(250, 6 + 25 * i), Size = new Size(105, 22), Tag = i }; comboBoxEdit.SelectedIndexChanged += ComboBoxEdit1_SelectedIndexChanged; comboBoxEdit.Properties.Items.Add("PA310"); comboBoxEdit.Properties.Items.Add("HC6600"); comboBoxEdit.Properties.Items.Add("CPM6"); comboBoxEdit.Properties.Items.Add("PA60"); comboBoxEdit.Properties.Items.Add("ABBM2M"); comboBoxEdit.Properties.AllowFocused = false; comboBoxEdit.Properties.AllowMouseWheel = false; comboBoxEdit.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; xtraScrollableControl1.Controls.Add(comboBoxEdit); comboBoxEdits.Add(comboBoxEdit); } for (int i = 0; i < 30; i++) //comboBoxEdit2 = 電錶類型, comboBoxEdit3 = 迴路, comboBoxEdit4 = 相位 { DevExpress.XtraEditors.ComboBoxEdit comboBoxEdit2 = new DevExpress.XtraEditors.ComboBoxEdit { Name = $"comboBoxEdit{2 + i * 4}", Location = new Point(365, 6 + 25 * i), Size = new Size(68, 22), Tag = i }; comboBoxEdit2.SelectedIndexChanged += ComboBoxEdit2_SelectedIndexChanged; comboBoxEdit2.Properties.Items.Add("三相"); comboBoxEdit2.Properties.Items.Add("單相"); comboBoxEdit2.Properties.AllowFocused = false; comboBoxEdit2.Properties.AllowMouseWheel = false; comboBoxEdit2.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; xtraScrollableControl1.Controls.Add(comboBoxEdit2); DevExpress.XtraEditors.ComboBoxEdit comboBoxEdit3 = new DevExpress.XtraEditors.ComboBoxEdit { Name = $"comboBoxEdit{3 + i * 4}", Location = new Point(442, 6 + 25 * i), Size = new Size(68, 22), Tag = i }; comboBoxEdit3.Properties.Items.Add("迴路1"); comboBoxEdit3.Properties.Items.Add("迴路2"); comboBoxEdit3.Properties.Items.Add("迴路3"); comboBoxEdit3.Properties.Items.Add("迴路4"); comboBoxEdit3.Properties.AllowFocused = false; comboBoxEdit3.Properties.AllowMouseWheel = false; comboBoxEdit3.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; xtraScrollableControl1.Controls.Add(comboBoxEdit3); DevExpress.XtraEditors.ComboBoxEdit comboBoxEdit4 = new DevExpress.XtraEditors.ComboBoxEdit { Name = $"comboBoxEdit{4 + i * 4}", Location = new Point(518, 6 + 25 * i), Size = new Size(68, 22), Tag = i }; comboBoxEdit4.Properties.Items.Add("R相"); comboBoxEdit4.Properties.Items.Add("S相"); comboBoxEdit4.Properties.Items.Add("T相"); comboBoxEdit4.Properties.AllowFocused = false; comboBoxEdit4.Properties.AllowMouseWheel = false; comboBoxEdit4.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; xtraScrollableControl1.Controls.Add(comboBoxEdit4); comboBoxEdits2.Add(comboBoxEdit2); comboBoxEdits3.Add(comboBoxEdit3); comboBoxEdits4.Add(comboBoxEdit4); } #endregion #region 抓取原先設定 #region 層資料 ComtoggleSwitch.IsOn = gateWay.ControlFlag; RecordtoggleSwitch.IsOn = gateWay.RecordFlag; ATMtextEdit.Text = gateWay.GateWays[0].Authorization; if (gateWay.GateWays[0].GatewayEnumType == 0) { labelControl4.Visible = true; labelControl22.Visible = true; ComPortcomboBoxEdit.Visible = true; RTURatetextEdit.Visible = true; ComcomboBoxEdit.SelectedIndex = 0; ComPortcomboBoxEdit.Text = gateWay.GateWays[0].ModbusRTULocation; RTURatetextEdit.Text = Convert.ToString(gateWay.GateWays[0].ModbusRTURate); } else if (gateWay.GateWays[0].GatewayEnumType == 1) { labelControl19.Visible = true; labelControl21.Visible = true; ComTCPtextEdit.Visible = true; RatetextEdit.Visible = true; ComcomboBoxEdit.SelectedIndex = 1; ComTCPtextEdit.Text = gateWay.GateWays[0].ModbusTCPLocation; RatetextEdit.Text = Convert.ToString(gateWay.GateWays[0].ModbusTCPRate); } else if (gateWay.GateWays[0].GatewayEnumType == 2) { labelControl20.Visible = true; HTTPtextEdit.Visible = true; ComcomboBoxEdit.SelectedIndex = 2; HTTPtextEdit.Text = gateWay.GateWays[0].APILocation; } else if (gateWay.GateWays[0].GatewayEnumType == 3) { labelControl19.Visible = true; labelControl21.Visible = true; ComTCPtextEdit.Visible = true; RatetextEdit.Visible = true; ComcomboBoxEdit.SelectedIndex = 3; ComTCPtextEdit.Text = gateWay.GateWays[0].EMSLocation; RatetextEdit.Text = Convert.ToString(gateWay.GateWays[0].EMSRate); } #endregion #region 天氣 ATMtextEdit.Text = gateWay.GateWays[0].Authorization; CitycomboBoxEdit.Text = gateWay.GateWays[0].LocationName; ZonecomboBoxEdit.Text = gateWay.GateWays[0].DistrictName; DeviceTypecomboBoxEdit.SelectedIndex = gateWay.GateWays[0].GateWaySenserIDs[0].SenserEnumType; DeviceNametextEdit.Text = gateWay.GateWays[0].GateWaySenserIDs[0].DeviceName; IDspinEdit.Text = Convert.ToString(gateWay.GateWays[0].GateWaySenserIDs[0].DeviceID); #endregion #region 電表 for (int i = 0; i < gateWay.GateWays[0].GateWayElectricIDs.Count; i++) { toggleSwitches[i].IsOn = true; textEdits[i].Text = gateWay.GateWays[0].GateWayElectricIDs[i].DeviceName; spinEdits[i].Text = Convert.ToString(gateWay.GateWays[0].GateWayElectricIDs[i].DeviceID); comboBoxEdits[i].SelectedIndex = gateWay.GateWays[0].GateWayElectricIDs[i].ElectricEnumType; comboBoxEdits2[i].SelectedIndex = gateWay.GateWays[0].GateWayElectricIDs[i].PhaseEnumType; comboBoxEdits3[i].SelectedIndex = gateWay.GateWays[0].GateWayElectricIDs[i].LoopEnumType; comboBoxEdits4[i].SelectedIndex = gateWay.GateWays[0].GateWayElectricIDs[i].PhaseAngleEnumType; toggleSwitches2[i].IsOn = gateWay.GateWays[0].GateWayElectricIDs[i].TotalMeterFlag; } #endregion #endregion }