/// <summary> /// AI點位新增畫面 /// </summary> /// <param name="CaseUserControl">AI資訊主畫面</param> /// <param name="form1">繼承主物件-泡泡視窗使用</param> /// <param name="ewatch_MySqlMethod">資料庫方法</param> public AiConfigUserControl1(Ewatch_Field4UserControl CaseUserControl, Form1 form1, Ewatch_MySqlMethod ewatch_MySqlMethod) { InitializeComponent(); caseUserControl = CaseUserControl; Form1 = form1; Ewatch_MySqlMethod = ewatch_MySqlMethod; }
/// <summary> /// 狀態新增畫面 /// </summary> /// <param name="CaseUserControl">狀態主畫面</param> /// <param name="form1">繼承主物件-泡泡視窗使用</param> /// <param name="ewatch_MySqlMethod">資料庫方法</param> public StateSettingUserControl1cs(Ewatch_Field4UserControl CaseUserControl, Form1 form1, Ewatch_MySqlMethod ewatch_MySqlMethod) { InitializeComponent(); caseUserControl = CaseUserControl; Form1 = form1; Ewatch_MySqlMethod = ewatch_MySqlMethod; }
private void ChangesimpleButton_Click(object sender, EventArgs e) { ElectricSetting electricSetting = new ElectricSetting() { CaseNo = CaseNotextEdit.Text, ElectricNo = Convert.ToInt32(ElectricNotextEdit.Text), ElectricName = ElectricNametextEdit.Text, NotifyFlag = NotifyFlagtoggleSwitch.IsOn, TimeoutSpan = Convert.ToInt32(TimeoutSpantextEdit.Text), MTimeoutSpan = Convert.ToInt32(MTimeoutSpantextEdit.Text) }; Ewatch_MySqlMethod.Update_ElectricSetting(electricSetting); Search_Setting(); }
private void ChangesimpleButton_Click(object sender, EventArgs e) { StateSetting stateSetting = new StateSetting() { CaseNo = CaseNotextEdit.Text, StateNo = Convert.ToInt32(StateNotextEdit.Text), StateName = StateNametextEdit.Text, NotifyFlag = NotifyFlagtoggleSwitch.IsOn, StateFlag = Convert.ToInt32(StateFlagcomboBoxEdit.SelectedIndex), StateHigh = StateHightextEdit.Text, StateLow = StateLowtextEdit.Text }; Ewatch_MySqlMethod.Update_StateSetting(stateSetting); Search_Setting(); }
private void SavesimpleButton_Click(object sender, EventArgs e) { ElectricSetting electricSetting = new ElectricSetting() { CaseNo = CaseNotextEdit.Text, ElectricNo = Convert.ToInt32(ElectricNotextEdit.Text), ElectricName = ElectricNametextEdit.Text, NotifyFlag = NotifyFlagtoggleSwitch.IsOn, TimeoutSpan = Convert.ToInt32(TimeoutSpantextEdit.Text), MTimeoutSpan = Convert.ToInt32(MTimeoutSpantextEdit.Text) }; Ewatch_MySqlMethod.Insert_ElectricSetting(electricSetting); caseUserControl.Search_Setting(); caseUserControl.FlyoutFlag = false; caseUserControl.flyout.Close(); }
protected override void AfterMyWorkStateChanged(object sender, EventArgs e) { if (myWorkState) { CaseSettings = Ewatch_MySqlMethod.CaseLoad(); AiSettings = Ewatch_MySqlMethod.AiLoad(); ElectricSettings = Ewatch_MySqlMethod.ElectricLoad(); ConnectionThread = new Thread(Connection_Mysql); ConnectionThread.Start(); } else { if (ConnectionThread != null) { ConnectionThread.Abort(); } } }
private void SavesimpleButton_Click(object sender, EventArgs e) { StateSetting stateSetting = new StateSetting() { CaseNo = CaseNotextEdit.Text, StateNo = Convert.ToInt32(StateNotextEdit.Text), StateName = StateNametextEdit.Text, NotifyFlag = NotifyFlagtoggleSwitch.IsOn, StateFlag = Convert.ToInt32(StateFlagcomboBoxEdit.SelectedIndex), StateHigh = StateHightextEdit.Text, StateLow = StateLowtextEdit.Text }; Ewatch_MySqlMethod.Insert_StateSetting(stateSetting); caseUserControl.Search_Setting(); caseUserControl.FlyoutFlag = false; caseUserControl.flyout.Close(); }
/// <summary> /// 修改按鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ChangesimpleButton_Click(object sender, EventArgs e) { CaseSetting caseSetting = new CaseSetting() { CaseNo = CaseNotextEdit.Text, Address = AddresstextEdit.Text, Contacter = ContactertextEdit.Text, Phone = PhonetextEdit.Text, TitleName = TitleNametextEdit.Text, NotifyTypeEnum = NotifyTypeEnumcomboBoxEdit.SelectedIndex, NotifyApi = NotifyApitextEdit.Text, NotifyToken = NotifyTokentextEdit.Text, Longitude = Convert.ToSingle(LongitudetextEdit.Text), Latitude = Convert.ToSingle(LatitudetextEdit.Text) }; Ewatch_MySqlMethod.Update_CaseSetting(caseSetting); Search_Setting(); }
private void ChangesimpleButton_Click(object sender, EventArgs e) { AiConfig aiConfig = new AiConfig() { CaseNo = CaseNotextEdit.Text, AiNo = Convert.ToInt32(AiNotextEdit.Text), AiName = AiNametextEdit.Text, Ai = AitextEdit.Text, AiCalculateFlag = AicalculateFlagtoggleSwitch.IsOn, Aiunit = AiunittextEdit.Text, CompareFlag = CompareFlagFlagtoggleSwitch.IsOn, AiMax = Convert.ToDecimal(AiMaxtextEdit.Text), AiMin = Convert.ToDecimal(AiMintextEdit.Text), EnumFlag = EnumFlagtoggleSwitch.IsOn, Enum_Array = Enum_ArraytextEdit.Text }; Ewatch_MySqlMethod.Update_AiConfig(aiConfig); Search_Setting(); }
private void SavesimpleButton_Click(object sender, EventArgs e) { CaseSetting caseSetting = new CaseSetting() { CaseNo = CaseNotextEdit.Text, Address = AddresstextEdit.Text, Contacter = ContactertextEdit.Text, Phone = PhonetextEdit.Text, TitleName = TitleNametextEdit.Text, NotifyTypeEnum = NotifyTypeEnumcomboBoxEdit.SelectedIndex, NotifyApi = NotifyApitextEdit.Text, NotifyToken = NotifyTokentextEdit.Text, Longitude = Convert.ToSingle(LongitudetextEdit.Text), Latitude = Convert.ToSingle(LatitudetextEdit.Text) }; Ewatch_MySqlMethod.Insert_CaseSetting(caseSetting); caseUserControl.Search_Setting(); caseUserControl.FlyoutFlag = false; caseUserControl.flyout.Close(); }
private void SavesimpleButton_Click(object sender, EventArgs e) { AiConfig aiConfig = new AiConfig() { CaseNo = CaseNotextEdit.Text, AiNo = Convert.ToInt32(AiNotextEdit.Text), AiName = AiNametextEdit.Text, Ai = AitextEdit.Text, AiCalculateFlag = AicalculateFlagtoggleSwitch.IsOn, Aiunit = AiunittextEdit.Text, CompareFlag = CompareFlagFlagtoggleSwitch.IsOn, AiMax = Convert.ToDecimal(AiMaxtextEdit.Text), AiMin = Convert.ToDecimal(AiMintextEdit.Text), EnumFlag = EnumFlagtoggleSwitch.IsOn, Enum_Array = Enum_ArraytextEdit.Text, }; Ewatch_MySqlMethod.Insert_AiConfig(aiConfig); caseUserControl.Search_Setting(); caseUserControl.FlyoutFlag = false; caseUserControl.flyout.Close(); }
public override void Search_Setting() { var ElectricSetting = Ewatch_MySqlMethod.ElectricLoad(); gridControl1.DataSource = ElectricSetting; if (!Flag) { gridView1.OptionsBehavior.Editable = false; gridView1.OptionsSelection.EnableAppearanceFocusedCell = false; for (int i = 0; i < gridView1.Columns.Count; i++) { gridView1.Columns[i].BestFit(); } RepositoryItemToggleSwitch toggleSwitch = new RepositoryItemToggleSwitch(); gridControl1.RepositoryItems.Add(toggleSwitch); gridView1.Columns["PK"].Visible = false; gridView1.Columns["NotifyFlag"].ColumnEdit = toggleSwitch; gridView1.Columns["CaseNo"].Caption = "案場編號"; gridView1.Columns["ElectricNo"].Caption = "電表編號"; gridView1.Columns["ElectricName"].Caption = "電表名稱"; gridView1.Columns["PhaseTypeEnum"].Caption = "相位類型"; gridView1.Columns["NotifyFlag"].Caption = "推播功能"; gridView1.Columns["TimeoutSpan"].Caption = "延遲推播(h)"; gridView1.Columns["MTimeoutSpan"].Caption = "延遲推播(m)"; gridView1.Columns["SendTime"].Visible = false; gridView1.Columns["ConnectionFlag"].Visible = false; #region 報表行聚焦 gridView1.FocusedRowChanged += (s, ex) => { ColumnView view = (ColumnView)s; if ((view.FindFilterText == "" || view.ActiveFilterString != "") & !SortGlyphFlag) { if (ex.FocusedRowHandle > -1) { CaseNotextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "CaseNo").ToString(); ElectricNotextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "ElectricNo").ToString(); ElectricNametextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "ElectricName").ToString(); PhaseTypeEnumcomboBoxEdit.SelectedIndex = Convert.ToInt32(view.GetListSourceRowCellValue(ex.FocusedRowHandle, "PhaseTypeEnum")); NotifyFlagtoggleSwitch.IsOn = Convert.ToBoolean(view.GetListSourceRowCellValue(ex.FocusedRowHandle, "NotifyFlag")); TimeoutSpantextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "TimeoutSpan").ToString(); MTimeoutSpantextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "MTimeoutSpan").ToString(); } } else { if (ex.FocusedRowHandle > -1) { if (FilterElectricSetting.Count > 0 && FilterElectricSetting.Count > ex.FocusedRowHandle) { CaseNotextEdit.Text = FilterElectricSetting[ex.FocusedRowHandle].CaseNo; ElectricNotextEdit.Text = FilterElectricSetting[ex.FocusedRowHandle].ElectricNo.ToString(); ElectricNametextEdit.Text = FilterElectricSetting[ex.FocusedRowHandle].ElectricName; PhaseTypeEnumcomboBoxEdit.SelectedIndex = FilterElectricSetting[ex.FocusedRowHandle].PhaseTypeEnum; NotifyFlagtoggleSwitch.IsOn = FilterElectricSetting[ex.FocusedRowHandle].NotifyFlag; TimeoutSpantextEdit.Text = FilterElectricSetting[ex.FocusedRowHandle].TimeoutSpan.ToString(); MTimeoutSpantextEdit.Text = FilterElectricSetting[ex.FocusedRowHandle].MTimeoutSpan.ToString(); } } } }; #endregion #region 報表行刪除 gridView1.RowDeleting += (s, ex) => { ColumnView view = (ColumnView)s; string CaseNo = CaseNotextEdit.Text; int ElectricNo = Convert.ToInt32(ElectricNotextEdit.Text); Ewatch_MySqlMethod.Delete_ElectricSetting(CaseNo, ElectricNo); }; #endregion #region 關鍵字搜尋 gridView1.ColumnFilterChanged += (s, e) => { GridView view = s as GridView; if (view.FindFilterText != "" || view.ActiveFilterString != "") { FilterElectricSetting = new List <ElectricSetting>(); for (int i = 0; i < view.RowCount; i++) { if (view.IsGroupRow(i)) { continue; } var entity = view.GetRow(i) as ElectricSetting; if (entity == null) { continue; } FilterElectricSetting.Add(entity); } } if (FilterElectricSetting.Count > 0) { CaseNotextEdit.Text = FilterElectricSetting[0].CaseNo; ElectricNotextEdit.Text = FilterElectricSetting[0].ElectricNo.ToString(); ElectricNametextEdit.Text = FilterElectricSetting[0].ElectricName; PhaseTypeEnumcomboBoxEdit.SelectedIndex = FilterElectricSetting[0].PhaseTypeEnum; NotifyFlagtoggleSwitch.IsOn = FilterElectricSetting[0].NotifyFlag; TimeoutSpantextEdit.Text = FilterElectricSetting[0].TimeoutSpan.ToString(); MTimeoutSpantextEdit.Text = FilterElectricSetting[0].MTimeoutSpan.ToString(); } }; #endregion #region 表頭篩選 gridView1.EndSorting += (s, e) => { GridView view = s as GridView; FilterElectricSetting = new List <ElectricSetting>(); for (int i = 0; i < view.RowCount; i++) { if (view.IsGroupRow(i)) { continue; } var entity = view.GetRow(i) as ElectricSetting; if (entity == null) { continue; } FilterElectricSetting.Add(entity); } SortGlyphFlag = true; gridView1.FocusedRowHandle = 0; }; #endregion gridView1.FocusedRowHandle = 1; Flag = true; } else { gridControl1.Refresh(); } }
/// <summary> /// 電表主畫面 /// </summary> /// <param name="ewatch_MySqlMethod">資料庫方法</param> public ElectricSettingUserControl(Ewatch_MySqlMethod ewatch_MySqlMethod) { InitializeComponent(); Ewatch_MySqlMethod = ewatch_MySqlMethod; Search_Setting(); }
public override void Search_Setting() { var AiConfig = Ewatch_MySqlMethod.AiConfigLoad(); gridControl1.DataSource = AiConfig; if (!Flag) { //gridView1.OptionsView.ColumnAutoWidth = false; gridView1.OptionsBehavior.Editable = false; gridView1.OptionsSelection.EnableAppearanceFocusedCell = false; RepositoryItemToggleSwitch toggleSwitch = new RepositoryItemToggleSwitch(); gridControl1.RepositoryItems.Add(toggleSwitch); gridView1.Columns["PK"].Visible = false; gridView1.Columns["CaseNo"].Caption = "案場編號"; gridView1.Columns["AiNo"].Caption = "Ai編號"; gridView1.Columns["Ai"].Caption = "Ai點位"; gridView1.Columns["AiName"].Caption = "Ai名稱"; gridView1.Columns["AiCalculateFlag"].ColumnEdit = toggleSwitch; gridView1.Columns["AiCalculateFlag"].Caption = "累積功能"; gridView1.Columns["Aiunit"].Caption = "Ai單位"; gridView1.Columns["CompareFlag"].ColumnEdit = toggleSwitch; gridView1.Columns["CompareFlag"].Caption = "上下限功能"; gridView1.Columns["AiMax"].Caption = "上限值"; gridView1.Columns["AiMin"].Caption = "下限值"; gridView1.Columns["GroupNo"].Visible = false; gridView1.Columns["CompareType"].Visible = false; gridView1.Columns["EnumFlag"].ColumnEdit = toggleSwitch; gridView1.Columns["EnumFlag"].Caption = "類型旗標"; gridView1.Columns["EnumType"].Visible = false; gridView1.Columns["Enum_Array"].Caption = "類型內容"; for (int i = 0; i < gridView1.Columns.Count; i++) { gridView1.Columns[i].BestFit(); } #region 報表行聚焦 gridView1.FocusedRowChanged += (s, ex) => { ColumnView view = (ColumnView)s; if ((view.FindFilterText == "" || view.ActiveFilterString != "") & !SortGlyphFlag) { if (ex.FocusedRowHandle > -1) { CaseNotextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "CaseNo").ToString(); AiNotextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "AiNo").ToString(); AitextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "Ai").ToString(); AiNametextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "AiName").ToString(); AicalculateFlagtoggleSwitch.IsOn = Convert.ToBoolean(view.GetListSourceRowCellValue(ex.FocusedRowHandle, "AiCalculateFlag")); CompareFlagFlagtoggleSwitch.IsOn = Convert.ToBoolean(view.GetListSourceRowCellValue(ex.FocusedRowHandle, "CompareFlag")); AiMaxtextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "AiMax").ToString(); AiMintextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "AiMin").ToString(); AiunittextEdit.Text = (view.GetListSourceRowCellValue(ex.FocusedRowHandle, "Aiunit") == null ? "" : view.GetListSourceRowCellValue(ex.FocusedRowHandle, "Aiunit").ToString()); EnumFlagtoggleSwitch.IsOn = Convert.ToBoolean(view.GetListSourceRowCellValue(ex.FocusedRowHandle, "EnumFlag")); Enum_ArraytextEdit.Text = (view.GetListSourceRowCellValue(ex.FocusedRowHandle, "Enum_Array") == null ? "" : view.GetListSourceRowCellValue(ex.FocusedRowHandle, "Enum_Array").ToString()); } } else { if (ex.FocusedRowHandle > -1) { if (FilterAiConfig.Count > 0 && FilterAiConfig.Count > ex.FocusedRowHandle) { CaseNotextEdit.Text = FilterAiConfig[ex.FocusedRowHandle].CaseNo; AiNotextEdit.Text = FilterAiConfig[ex.FocusedRowHandle].AiNo.ToString(); AitextEdit.Text = FilterAiConfig[ex.FocusedRowHandle].Ai; AiNametextEdit.Text = FilterAiConfig[ex.FocusedRowHandle].AiName; AicalculateFlagtoggleSwitch.IsOn = FilterAiConfig[ex.FocusedRowHandle].AiCalculateFlag; CompareFlagFlagtoggleSwitch.IsOn = FilterAiConfig[ex.FocusedRowHandle].CompareFlag; AiMaxtextEdit.Text = FilterAiConfig[ex.FocusedRowHandle].AiMax.ToString(); AiMintextEdit.Text = FilterAiConfig[ex.FocusedRowHandle].AiMin.ToString(); AiunittextEdit.Text = (FilterAiConfig[ex.FocusedRowHandle].Aiunit == null ? "" : FilterAiConfig[ex.FocusedRowHandle].Aiunit); EnumFlagtoggleSwitch.IsOn = FilterAiConfig[ex.FocusedRowHandle].EnumFlag; Enum_ArraytextEdit.Text = (FilterAiConfig[ex.FocusedRowHandle].Enum_Array == null ? "" : FilterAiConfig[ex.FocusedRowHandle].Enum_Array); } } } }; #endregion #region 報表行刪除 gridView1.RowDeleting += (s, ex) => { ColumnView view = (ColumnView)s; string CaseNo = CaseNotextEdit.Text; int AiNo = Convert.ToInt32(AiNotextEdit.Text); string Ai = AitextEdit.Text; Ewatch_MySqlMethod.Delete_AiConfig(CaseNo, AiNo, Ai); }; #endregion #region 關鍵字搜尋 gridView1.ColumnFilterChanged += (s, e) => { GridView view = s as GridView; if (view.FindFilterText != "" || view.ActiveFilterString != "") { FilterAiConfig = new List <AiConfig>(); for (int i = 0; i < view.RowCount; i++) { if (view.IsGroupRow(i)) { continue; } var entity = view.GetRow(i) as AiConfig; if (entity == null) { continue; } FilterAiConfig.Add(entity); } } if (FilterAiConfig.Count > 0) { CaseNotextEdit.Text = FilterAiConfig[0].CaseNo; AiNotextEdit.Text = FilterAiConfig[0].AiNo.ToString(); AitextEdit.Text = FilterAiConfig[0].Ai; AiNametextEdit.Text = FilterAiConfig[0].AiName; AicalculateFlagtoggleSwitch.IsOn = FilterAiConfig[0].AiCalculateFlag; CompareFlagFlagtoggleSwitch.IsOn = FilterAiConfig[0].CompareFlag; AiMaxtextEdit.Text = FilterAiConfig[0].AiMax.ToString(); AiMintextEdit.Text = FilterAiConfig[0].AiMin.ToString(); AiunittextEdit.Text = (FilterAiConfig[0].Aiunit == null ? "" : FilterAiConfig[0].Aiunit); EnumFlagtoggleSwitch.IsOn = FilterAiConfig[0].EnumFlag; Enum_ArraytextEdit.Text = (FilterAiConfig[0].Enum_Array == null ? "" : FilterAiConfig[0].Enum_Array); } }; #endregion #region 表頭篩選 gridView1.EndSorting += (s, e) => { GridView view = s as GridView; FilterAiConfig = new List <AiConfig>(); for (int i = 0; i < view.RowCount; i++) { if (view.IsGroupRow(i)) { continue; } var entity = view.GetRow(i) as AiConfig; if (entity == null) { continue; } FilterAiConfig.Add(entity); } SortGlyphFlag = true; gridView1.FocusedRowHandle = 0; }; #endregion gridView1.FocusedRowHandle = 1; Flag = true; } else { gridControl1.Refresh(); } }
private void Connection_Mysql() { while (myWorkState) { TimeSpan timeSpan = DateTime.Now.Subtract(ConnectionTime); if (timeSpan.TotalMilliseconds > 5000) //每一秒查詢動作 { var NewCaseSettings = Ewatch_MySqlMethod.CaseLoad(); var NewAiSettings = Ewatch_MySqlMethod.AiLoad(); var NewElectricSettings = Ewatch_MySqlMethod.ElectricLoad(); var casevalue = Ewatch_MySqlMethod.CaseLoad(); foreach (var caseitem in casevalue) { #region AI接收 var aivalue = Ewatch_MySqlMethod.AiLoad(caseitem); foreach (var aiitem in aivalue) { if (aiitem.NotifyFlag) //AI點位需要發報 { if (Ewatch_MySqlMethod.AI64Load(aiitem)) //檢查即時數值是否超過時間 { var TimeValue = Ewatch_MySqlMethod.Ai_Time(aiitem); //檢查發報數值是否達到 if (TimeValue == null || TimeValue >= aiitem.TimeoutSpan) { if (NewAiSettings.SingleOrDefault(g => g.PK == aiitem.PK) != null) { NewAiSettings.Single(g => g.PK == aiitem.PK).ConnectionFlag = "斷線"; NotifyTypeEnum notifyTypeEnum = (NotifyTypeEnum)caseitem.NotifyTypeEnum; switch (notifyTypeEnum) { case NotifyTypeEnum.None: break; case NotifyTypeEnum.Line: { LineNotifyClass lineNotifyClass = new LineNotifyClass(); lineNotifyClass.LineNotifyFunction(caseitem.NotifyToken, $"設備名稱:{aiitem.AiName} \r最後上傳時間 : {Ewatch_MySqlMethod.AI_LastTime(aiitem)}\r上傳逾時請檢查"); } break; case NotifyTypeEnum.Telegram: { TelegramBotClass telegramBotClass = new TelegramBotClass(caseitem.NotifyApi) { Chat_ID = caseitem.NotifyToken }; telegramBotClass.Send_Message_Group($"設備名稱:{aiitem.AiName} \r最後上傳時間 : {Ewatch_MySqlMethod.AI_LastTime(aiitem)}\r上傳逾時請檢查"); } break; } Ewatch_MySqlMethod.UpdataAi_Time(aiitem, true); } } else { NewAiSettings.Single(g => g.PK == aiitem.PK).ConnectionFlag = "斷線"; } } else { if (NewAiSettings.SingleOrDefault(g => g.PK == aiitem.PK) != null) { NewAiSettings.Single(g => g.PK == aiitem.PK).ConnectionFlag = "連線"; Ewatch_MySqlMethod.UpdataAi_Time(aiitem, false); } } } else { //AiSettings.Single(g => g.PK == aiitem.PK).ConnectionFlag = "不使用"; if (Ewatch_MySqlMethod.AI64Load(aiitem))//檢查即時數值是否超過時間 { if (NewAiSettings.SingleOrDefault(g => g.PK == aiitem.PK) != null) { NewAiSettings.Single(g => g.PK == aiitem.PK).ConnectionFlag = "斷線"; //Ewatch_MySqlMethod.UpdataAi_Time(aiitem, true); } } else { if (NewAiSettings.SingleOrDefault(g => g.PK == aiitem.PK) != null) { NewAiSettings.Single(g => g.PK == aiitem.PK).ConnectionFlag = "連線"; Ewatch_MySqlMethod.UpdataAi_Time(aiitem, false); } } } } #endregion #region 電表接收 var electricvalue = Ewatch_MySqlMethod.ElectricLoad(caseitem); foreach (var electricitem in electricvalue) { if (electricitem.NotifyFlag)//電表點位需要發報 { if (Ewatch_MySqlMethod.ElectricMeterLoad(electricitem)) { var TimeValue = Ewatch_MySqlMethod.ElectricMeter_Time(electricitem); if (TimeValue == null || TimeValue >= electricitem.TimeoutSpan) { if (NewElectricSettings.SingleOrDefault(g => g.PK == electricitem.PK) != null) { NewElectricSettings.Single(g => g.PK == electricitem.PK).ConnectionFlag = "斷線"; NotifyTypeEnum notifyTypeEnum = (NotifyTypeEnum)caseitem.NotifyTypeEnum; switch (notifyTypeEnum) { case NotifyTypeEnum.None: break; case NotifyTypeEnum.Line: { LineNotifyClass lineNotifyClass = new LineNotifyClass(); lineNotifyClass.LineNotifyFunction(caseitem.NotifyToken, $"設備名稱:{electricitem.ElectricName} \r最後上傳時間 : {Ewatch_MySqlMethod.ElectricMeter_LastTime(electricitem)}\r上傳逾時請檢查"); } break; case NotifyTypeEnum.Telegram: { TelegramBotClass telegramBotClass = new TelegramBotClass(caseitem.NotifyApi) { Chat_ID = caseitem.NotifyToken }; telegramBotClass.Send_Message_Group($"設備名稱:{electricitem.ElectricName} \r最後上傳時間 : {Ewatch_MySqlMethod.ElectricMeter_LastTime(electricitem)}\r上傳逾時請檢查"); } break; } Ewatch_MySqlMethod.UpdataElectricMeter_Time(electricitem, true); } } else { NewElectricSettings.Single(g => g.PK == electricitem.PK).ConnectionFlag = "斷線"; } } else { if (NewElectricSettings.SingleOrDefault(g => g.PK == electricitem.PK) != null) { NewElectricSettings.Single(g => g.PK == electricitem.PK).ConnectionFlag = "連線"; Ewatch_MySqlMethod.UpdataElectricMeter_Time(electricitem, false); } } } else { //ElectricSettings.Single(g => g.PK == electricitem.PK).ConnectionFlag = "不使用"; var TimeValue = Ewatch_MySqlMethod.ElectricMeter_Time(electricitem); if (TimeValue == null || TimeValue >= electricitem.TimeoutSpan) { if (NewElectricSettings.SingleOrDefault(g => g.PK == electricitem.PK) != null) { NewElectricSettings.Single(g => g.PK == electricitem.PK).ConnectionFlag = "斷線"; } } else { if (NewElectricSettings.SingleOrDefault(g => g.PK == electricitem.PK) != null) { NewElectricSettings.Single(g => g.PK == electricitem.PK).ConnectionFlag = "連線"; Ewatch_MySqlMethod.UpdataElectricMeter_Time(electricitem, false); } } } } #endregion } CaseSettings = NewCaseSettings; AiSettings = NewAiSettings; ElectricSettings = NewElectricSettings; ConnectionTime = DateTime.Now; } else { Thread.Sleep(80); } } }
/// <summary> /// 查詢案場 /// </summary> public override void Search_Setting() { var CaseSetting = Ewatch_MySqlMethod.CaseLoad(); gridControl1.DataSource = CaseSetting; if (!Flag) { gridView1.CustomColumnDisplayText += (s, ex) => { if (ex.Column.FieldName == "NotifyTypeEnum") { int val = (int)ex.Value; switch (val) { case 0: { ex.DisplayText = "None"; } break; case 1: { ex.DisplayText = "LineNotify"; } break; case 2: { ex.DisplayText = "TelegramBot"; } break; } } }; gridView1.OptionsBehavior.Editable = false; gridView1.OptionsSelection.EnableAppearanceFocusedCell = false; for (int i = 0; i < gridView1.Columns.Count; i++) { gridView1.Columns[i].BestFit(); } gridView1.Columns["PK"].Visible = false; gridView1.Columns["CaseNo"].Caption = "案場編號"; gridView1.Columns["Address"].Caption = "地址"; gridView1.Columns["Contacter"].Caption = "聯絡人"; gridView1.Columns["Phone"].Caption = "聯絡電話"; gridView1.Columns["TitleName"].Caption = "案場名稱"; gridView1.Columns["NotifyTypeEnum"].Caption = "推播類型"; gridView1.Columns["NotifyApi"].Caption = "推播網址"; gridView1.Columns["NotifyToken"].Caption = "推播權杖"; gridView1.Columns["Longitude"].Caption = "經度"; gridView1.Columns["Latitude"].Caption = "緯度"; #region 報表行聚焦 gridView1.FocusedRowChanged += (s, ex) => { ColumnView view = (ColumnView)s; if ((view.FindFilterText == "" || view.ActiveFilterString != "") & !SortGlyphFlag) { if (ex.FocusedRowHandle > -1) { CaseNotextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "CaseNo").ToString(); AddresstextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "Address").ToString(); ContactertextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "Contacter").ToString(); PhonetextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "Phone").ToString(); TitleNametextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "TitleName").ToString(); NotifyTypeEnumcomboBoxEdit.SelectedIndex = Convert.ToInt32(view.GetListSourceRowCellValue(ex.FocusedRowHandle, "NotifyTypeEnum")); NotifyApitextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "NotifyApi").ToString(); NotifyTokentextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "NotifyToken").ToString(); LongitudetextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "Longitude").ToString(); LatitudetextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "Latitude").ToString(); } } else { if (ex.FocusedRowHandle > -1) { if (FilterCaseSetting.Count > 0 && FilterCaseSetting.Count > ex.FocusedRowHandle) { CaseNotextEdit.Text = FilterCaseSetting[ex.FocusedRowHandle].CaseNo; AddresstextEdit.Text = FilterCaseSetting[ex.FocusedRowHandle].Address; ContactertextEdit.Text = FilterCaseSetting[ex.FocusedRowHandle].Contacter; PhonetextEdit.Text = FilterCaseSetting[ex.FocusedRowHandle].Phone; TitleNametextEdit.Text = FilterCaseSetting[ex.FocusedRowHandle].TitleName; NotifyTypeEnumcomboBoxEdit.SelectedIndex = FilterCaseSetting[ex.FocusedRowHandle].NotifyTypeEnum; NotifyApitextEdit.Text = FilterCaseSetting[ex.FocusedRowHandle].NotifyApi; NotifyTokentextEdit.Text = FilterCaseSetting[ex.FocusedRowHandle].NotifyToken; LongitudetextEdit.Text = FilterCaseSetting[ex.FocusedRowHandle].Longitude.ToString(); LatitudetextEdit.Text = FilterCaseSetting[ex.FocusedRowHandle].Latitude.ToString(); } } } }; #endregion #region 報表行刪除 gridView1.RowDeleting += (s, ex) => { ColumnView view = (ColumnView)s; string CaseNo = CaseNotextEdit.Text; Ewatch_MySqlMethod.Delete_CaseSetting(CaseNo); }; #endregion #region 關鍵字搜尋 gridView1.ColumnFilterChanged += (s, e) => { GridView view = s as GridView; if (view.FindFilterText != "" || view.ActiveFilterString != "") { FilterCaseSetting = new List <CaseSetting>(); for (int i = 0; i < view.RowCount; i++) { if (view.IsGroupRow(i)) { continue; } var entity = view.GetRow(i) as CaseSetting; if (entity == null) { continue; } FilterCaseSetting.Add(entity); } } if (FilterCaseSetting.Count > 0) { CaseNotextEdit.Text = FilterCaseSetting[0].CaseNo; AddresstextEdit.Text = FilterCaseSetting[0].Address; ContactertextEdit.Text = FilterCaseSetting[0].Contacter; PhonetextEdit.Text = FilterCaseSetting[0].Phone; TitleNametextEdit.Text = FilterCaseSetting[0].TitleName; NotifyTypeEnumcomboBoxEdit.SelectedIndex = FilterCaseSetting[0].NotifyTypeEnum; NotifyApitextEdit.Text = FilterCaseSetting[0].NotifyApi; NotifyTokentextEdit.Text = FilterCaseSetting[0].NotifyToken; LongitudetextEdit.Text = FilterCaseSetting[0].Longitude.ToString(); LatitudetextEdit.Text = FilterCaseSetting[0].Latitude.ToString(); } }; #endregion #region 表頭篩選 gridView1.EndSorting += (s, e) => { GridView view = s as GridView; FilterCaseSetting = new List <CaseSetting>(); for (int i = 0; i < view.RowCount; i++) { if (view.IsGroupRow(i)) { continue; } var entity = view.GetRow(i) as CaseSetting; if (entity == null) { continue; } FilterCaseSetting.Add(entity); } SortGlyphFlag = true; gridView1.FocusedRowHandle = 0; }; #endregion gridView1.FocusedRowHandle = 1; Flag = true; } else { gridControl1.Refresh(); } }
public Ewatch_AlarmComponent(Ewatch_MySqlMethod ewatch_MySqlMethod) { InitializeComponent(); Ewatch_MySqlMethod = ewatch_MySqlMethod; }
public override void Search_Setting() { var StateSetting = Ewatch_MySqlMethod.StateLoad(); gridControl1.DataSource = StateSetting; if (!Flag) { gridView1.OptionsBehavior.Editable = false; //不允取編輯 gridView1.OptionsSelection.EnableAppearanceFocusedCell = false; //不允許欄位聚焦 gridView1.OptionsFind.FindMode = FindMode.FindClick; //搜尋需要點擊 Find或Enter for (int i = 0; i < gridView1.Columns.Count; i++) { gridView1.Columns[i].BestFit(); } RepositoryItemToggleSwitch toggleSwitch = new RepositoryItemToggleSwitch(); gridControl1.RepositoryItems.Add(toggleSwitch); gridView1.Columns["PK"].Visible = false; gridView1.Columns["NotifyFlag"].ColumnEdit = toggleSwitch; gridView1.Columns["CaseNo"].Caption = "案場編號"; gridView1.Columns["StateNo"].Caption = "狀態編號"; gridView1.Columns["StateName"].Caption = "狀態名稱"; gridView1.Columns["NotifyFlag"].Caption = "推播功能"; gridView1.Columns["StateFlag"].Caption = "狀態類型"; gridView1.Columns["StateHigh"].Caption = "狀態高位元"; gridView1.Columns["StateLow"].Caption = "狀態低位元"; gridView1.Columns["LastStateFlag"].Visible = false; #region DI/O狀態顯示 gridView1.CustomColumnDisplayText += (s, e) => { if (e.Column.FieldName == "StateFlag") { string valueCell = e.DisplayText.ToString(); if (valueCell == "0") { e.DisplayText = "DI狀態"; } else if (valueCell == "1") { e.DisplayText = "DO狀態"; } } }; #endregion #region 報表行聚焦 gridView1.FocusedRowChanged += (s, ex) => { ColumnView view = (ColumnView)s; if ((view.FindFilterText == "" || view.ActiveFilterString != "") & !SortGlyphFlag) { if (ex.FocusedRowHandle > -1) { CaseNotextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "CaseNo").ToString(); StateNotextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "StateNo").ToString(); StateNametextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "StateName").ToString(); NotifyFlagtoggleSwitch.IsOn = Convert.ToBoolean(view.GetListSourceRowCellValue(ex.FocusedRowHandle, "NotifyFlag")); StateFlagcomboBoxEdit.SelectedIndex = Convert.ToInt32(view.GetListSourceRowCellValue(ex.FocusedRowHandle, "StateFlag")); StateHightextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "StateHigh").ToString(); StateLowtextEdit.Text = view.GetListSourceRowCellValue(ex.FocusedRowHandle, "StateLow").ToString(); } } else { if (ex.FocusedRowHandle > -1) { if (FilterStateSetting.Count > 0 && FilterStateSetting.Count > ex.FocusedRowHandle) { CaseNotextEdit.Text = FilterStateSetting[ex.FocusedRowHandle].CaseNo; StateNotextEdit.Text = FilterStateSetting[ex.FocusedRowHandle].StateNo.ToString(); StateNametextEdit.Text = FilterStateSetting[ex.FocusedRowHandle].StateName; NotifyFlagtoggleSwitch.IsOn = FilterStateSetting[ex.FocusedRowHandle].NotifyFlag; StateFlagcomboBoxEdit.SelectedIndex = FilterStateSetting[ex.FocusedRowHandle].StateFlag; StateHightextEdit.Text = FilterStateSetting[ex.FocusedRowHandle].StateHigh; StateLowtextEdit.Text = FilterStateSetting[ex.FocusedRowHandle].StateLow; } } } }; #endregion #region 報表行刪除 gridView1.RowDeleting += (s, ex) => { ColumnView view = (ColumnView)s; string CaseNo = CaseNotextEdit.Text; int StateNo = Convert.ToInt32(StateNotextEdit.Text); Ewatch_MySqlMethod.Delete_StateSetting(CaseNo, StateNo); }; #endregion #region 關鍵字搜尋 gridView1.ColumnFilterChanged += (s, e) => { GridView view = s as GridView; if (view.FindFilterText != "" || view.ActiveFilterString != "") { FilterStateSetting = new List <StateSetting>(); for (int i = 0; i < view.RowCount; i++) { if (view.IsGroupRow(i)) { continue; } var entity = view.GetRow(i) as StateSetting; if (entity == null) { continue; } FilterStateSetting.Add(entity); } } if (FilterStateSetting.Count > 0) { CaseNotextEdit.Text = FilterStateSetting[0].CaseNo; StateNotextEdit.Text = FilterStateSetting[0].StateNo.ToString(); StateNametextEdit.Text = FilterStateSetting[0].StateName; NotifyFlagtoggleSwitch.IsOn = FilterStateSetting[0].NotifyFlag; StateFlagcomboBoxEdit.SelectedIndex = FilterStateSetting[0].StateFlag; StateHightextEdit.Text = FilterStateSetting[0].StateHigh; StateLowtextEdit.Text = FilterStateSetting[0].StateLow; } }; #endregion #region 表頭篩選 gridView1.EndSorting += (s, e) => { GridView view = s as GridView; FilterStateSetting = new List <StateSetting>(); for (int i = 0; i < view.RowCount; i++) { if (view.IsGroupRow(i)) { continue; } var entity = view.GetRow(i) as StateSetting; if (entity == null) { continue; } FilterStateSetting.Add(entity); } SortGlyphFlag = true; gridView1.FocusedRowHandle = 0; }; #endregion gridView1.FocusedRowHandle = 1; Flag = true; } else { gridControl1.Refresh(); } }
private void Connection_Mysql() { while (myWorkState) { TimeSpan timeSpan = DateTime.Now.Subtract(ConnectionTime); if (timeSpan.TotalMilliseconds > 5000) { CaseSettings = Ewatch_MySqlMethod.CaseLoad(); #region AI上下限 var Alarmdata = Ewatch_MySqlMethod.AiConfig_Compare_Load(); foreach (var item in Alarmdata) { var caseSetting = CaseSettings.Where(g => g.CaseNo == item.CaseNo).ToList()[0]; var value = Ewatch_MySqlMethod.Ai64web(item); if (value != null) { var nowdata = Ewatch_MySqlMethod.Alarm_Procedure(item, value); var Adata = AiConfigs.Where(g => g.PK == item.PK).ToList(); if (Adata.Count > 0) { if (item.CompareType != Adata[0].CompareType) { NotifyTypeEnum notifyTypeEnum = (NotifyTypeEnum)caseSetting.NotifyTypeEnum; switch (notifyTypeEnum) { case NotifyTypeEnum.None: break; case NotifyTypeEnum.Line: { switch (item.CompareType) { case 0: //上限 { LineNotifyClass lineNotifyClass = new LineNotifyClass(); lineNotifyClass.LineNotifyFunction(caseSetting.NotifyToken, $"\r案場名稱: {caseSetting.TitleName}\r點位名稱: {item.AiName}\r超過上限值: {item.AiMax}\r目前數值為 {nowdata}"); } break; case 1: //正常 { LineNotifyClass lineNotifyClass = new LineNotifyClass(); lineNotifyClass.LineNotifyFunction(caseSetting.NotifyToken, $"\r案場名稱: {caseSetting.TitleName}\r點位名稱: {item.AiName}\r上限值: {item.AiMax}\r下限值: {item.AiMin}\r恢復正常,目前數值為 {nowdata}"); } break; case 2: //下限 { LineNotifyClass lineNotifyClass = new LineNotifyClass(); lineNotifyClass.LineNotifyFunction(caseSetting.NotifyToken, $"\r案場名稱: {caseSetting.TitleName}\r點位名稱: {item.AiName}\r低於下限值: {item.AiMin}\r目前數值為 {nowdata}"); } break; } } break; case NotifyTypeEnum.Telegram: { switch (item.CompareType) { case 0: //上限 { TelegramBotClass telegramBotClass = new TelegramBotClass(caseSetting.NotifyApi) { Chat_ID = caseSetting.NotifyToken }; telegramBotClass.Send_Message_Group($"\r案場名稱: {caseSetting.TitleName}\r點位名稱: {item.AiName}\r超過上限值: {item.AiMax}\r目前數值為 {nowdata}"); } break; case 1: //正常 { TelegramBotClass telegramBotClass = new TelegramBotClass(caseSetting.NotifyApi) { Chat_ID = caseSetting.NotifyToken }; telegramBotClass.Send_Message_Group($"\r案場名稱: {caseSetting.TitleName}\r點位名稱: {item.AiName}\r上限值: {item.AiMax}\r下限值: {item.AiMin}\r恢復正常,目前數值為 {nowdata}"); } break; case 2: //下限 { TelegramBotClass telegramBotClass = new TelegramBotClass(caseSetting.NotifyApi) { Chat_ID = caseSetting.NotifyToken }; telegramBotClass.Send_Message_Group($"\r案場名稱: {caseSetting.TitleName}\r點位名稱: {item.AiName}\r低於下限值: {item.AiMin}\r目前數值為 {nowdata}"); } break; } } break; } } } } } #endregion AiConfigs = Alarmdata; ConnectionTime = DateTime.Now; } else { Thread.Sleep(80); } } }
public Form1() { Log.Logger = new LoggerConfiguration() .WriteTo.Console() .WriteTo.File($"{AppDomain.CurrentDomain.BaseDirectory}\\log\\log-.txt", rollingInterval: RollingInterval.Day, outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}") .CreateLogger(); //宣告Serilog初始化 MySqlSetting = InitialMethod.MySqlLoad(); ButtonSetting = InitialMethod.InitialButtonLoad(); InitializeComponent(); NavigationFrame = new NavigationFrame() { Dock = DockStyle.Fill }; NavigationFrame.Parent = DisPlaypanelControl; ButtonMethod = new ButtonMethod() { Form1 = this, navigationFrame = NavigationFrame }; ButtonMethod.AccordionLoad(accordionControl1, ButtonSetting); #region Ewatch平台 Ewatch_MySqlMethod = new Ewatch_MySqlMethod(MySqlSetting); Ewatch_MySqlComponent = new Ewatch_MySqlComponent(Ewatch_MySqlMethod); Ewatch_MySqlComponent.MyWorkState = true; Ewatch_Field4Component.Add(Ewatch_MySqlComponent); Ewatch_AlarmComponent = new Ewatch_AlarmComponent(Ewatch_MySqlMethod); Ewatch_AlarmComponent.MyWorkState = true; Ewatch_Field4Component.Add(Ewatch_AlarmComponent); EwatchConnectionUserControl ewatchConnectionUserControl = new EwatchConnectionUserControl(Ewatch_MySqlComponent) { Dock = DockStyle.Fill }; NavigationFrame.AddPage(ewatchConnectionUserControl); Ewatch_Field4UserControl.Add(ewatchConnectionUserControl); CaseUserControl caseUserControl = new CaseUserControl(Ewatch_MySqlMethod) { Form1 = this, Dock = DockStyle.Fill }; NavigationFrame.AddPage(caseUserControl); Ewatch_Field4UserControl.Add(caseUserControl); AiSettingUserControl aiSettingUserControl = new AiSettingUserControl(Ewatch_MySqlMethod) { Form1 = this, Dock = DockStyle.Fill }; NavigationFrame.AddPage(aiSettingUserControl); Ewatch_Field4UserControl.Add(aiSettingUserControl); AiConfigUserControl aiConfigUserControl = new AiConfigUserControl(Ewatch_MySqlMethod) { Form1 = this, Dock = DockStyle.Fill }; NavigationFrame.AddPage(aiConfigUserControl); Ewatch_Field4UserControl.Add(aiConfigUserControl); ElectricSettingUserControl electricSettingUserControl = new ElectricSettingUserControl(Ewatch_MySqlMethod) { Form1 = this, Dock = DockStyle.Fill }; NavigationFrame.AddPage(electricSettingUserControl); Ewatch_Field4UserControl.Add(electricSettingUserControl); StateSettingUserControl stateSettingUserControl = new StateSettingUserControl(Ewatch_MySqlMethod) { Form1 = this, Dock = DockStyle.Fill }; NavigationFrame.AddPage(stateSettingUserControl); Ewatch_Field4UserControl.Add(stateSettingUserControl); #endregion #region ChungHsin平台 ChungHsin_MySqlMethod = new ChungHsin_MySqlMethod(MySqlSetting); ChungHsin_MySqlComponent = new ChungHsin_MySqlComponent(ChungHsin_MySqlMethod); ChungHsin_MySqlComponent.MyWorkState = true; ChungHsin_Field4Component.Add(ChungHsin_MySqlComponent); ChumgHsinConnectionUserControl chumgHsinConnectionUserControl = new ChumgHsinConnectionUserControl(ChungHsin_MySqlComponent) { Dock = DockStyle.Fill }; NavigationFrame.AddPage(chumgHsinConnectionUserControl); ChungHsin_Field4UserControl.Add(chumgHsinConnectionUserControl); DeviceConfigUserControl deviceConfigUserControl = new DeviceConfigUserControl(ChungHsin_MySqlMethod) { Dock = DockStyle.Fill }; NavigationFrame.AddPage(deviceConfigUserControl); ChungHsin_Field4UserControl.Add(deviceConfigUserControl); CH_CaseSettingUserControl cH_CaseSettingUserControl = new CH_CaseSettingUserControl(ChungHsin_MySqlMethod) { Dock = DockStyle.Fill }; NavigationFrame.AddPage(cH_CaseSettingUserControl); ChungHsin_Field4UserControl.Add(cH_CaseSettingUserControl); ReceiveSettingUserControl receiveSettingUserControl = new ReceiveSettingUserControl(ChungHsin_MySqlMethod) { Dock = DockStyle.Fill }; NavigationFrame.AddPage(receiveSettingUserControl); ChungHsin_Field4UserControl.Add(receiveSettingUserControl); #endregion timer1.Interval = 1000; timer1.Enabled = true; }