using DevExpress.XtraEditors.Controls; using Yw; using Yw.WinFrmUI; namespace IBox.WinFrmUI { public partial class IBoxFormParams : DocumentPage { private string startCode = "[&start&]"; private string endCode = "[&end&]"; private string paramCode = "[¶m&]"; private string getparamsCode = "getparams"; private string saveparamsCode = "saveparams"; private string restartserviceCode = "restartservice";//重启服务 private string clearupdataCode = "clearupdata"; private void EboxFormParams_Load(object sender, EventArgs e) { //BluetoothHelper.GetInstance().SMR -= null; //BluetoothHelper.GetInstance().SMR += new BluetoothHelper.ShowMessReturn(GetReceive); //BluetoothHelper.GetInstance().ListenerData(); Thread.Sleep(500); SendText(startCode + getparamsCode + paramCode + endCode); } public IBoxFormParams() { this.PageTitle.Caption = "参数配置"; InitializeComponent(); WaitFormHelper.ShowWaitForm(); } public void GetReceive(string msg) { if (!this.IsHandleCreated || this.IsDisposed || string.IsNullOrEmpty(msg)) return; if (msg.StartsWith("error:") && msg.Contains("目标主机坏了")) { MessageBoxHelper.ShowWarning("p 蓝牙设备连接失败,请重试!"); return; } if (!string.IsNullOrEmpty(msg) && msg.Contains(startCode)) { var order = msg.Replace(endCode, "").Replace(startCode, "").Trim(); SetOrder(order); } else MessageBoxHelper.ShowWarning("p 蓝牙设备连接失败"); } public event EventHandler SendData; private void SendText(string content) { //BluetoothHelper.GetInstance().SendData(content); SendData?.Invoke(null, content); } private void simpleButton1_Click(object sender, EventArgs e) { //保存参数 var model = new IBoxConfigViewModel() { ControllFrequency = (int.Parse(textEditControllFrequency.Text) * 1000).ToString(), IsAnaly = checkEditIsAnaly.Checked.ToString(), IsControll = checkEditIsControll.Checked.ToString(), IsDataDocking = checkEditIsDataDocking.Checked.ToString(), IsPostData = checkEditIsPostData.Checked.ToString(), PostCount = textEditPostCount.Text, PostTime = (int.Parse(textEditPostTime.Text) * 60 * 1000).ToString(), ControlType = ((ImageComboBoxItem)textEditControlType.SelectedItem).Value.ToString(), DelayGetRealData = textEditDelay.Text, IsWrite = checkEditIsWrite.Checked.ToString(), DataDockingFrequency = (int.Parse(textEditDataDockingFrequency.Text) * 1000).ToString(), IsNoFlowControl = checkEditIsNoFlowControl.Checked.ToString(), ControlCoefficient = textEditControlCoefficient.Text, MinFlow = textEditMinFlow.Text, MinFlowPumpHz = textEditMinFlowPumpHz.Text, //PumpChangeHours = textEditPumpChangeHours.Text, WaterLevel = textEditWaterLevel.Text, PressYu = textEdit1.Text, PostDataConfig = new MqttViewModel() { IP = textEditIP.Text, Password = textEditPassword.Text, Topic = textEditTopic.Text, User = textEditUser.Text, Port = textEditPort.Text, } }; SendText(startCode + saveparamsCode + paramCode + JsonHelper.Object2Json(model) + endCode); MessageBoxHelper.ShowInfo("保存成功"); } private void SetOrder(string order) { var smsg = order.Split(new string[] { paramCode }, StringSplitOptions.RemoveEmptyEntries); if (smsg.Length < 2) { return; } switch (smsg[0].Trim()) { case "getparams": var model = JsonHelper.Json2Object(smsg[1].Trim()); BindData(model); break; case "saveparams": break; } } public void BindData(IBoxConfigViewModel model, bool isBlue = true) { if (model != null) { if (isBlue) { this.Invoke(new Action(() => { textEditControllFrequency.Text = (int.Parse(model.ControllFrequency) / 1000).ToString(); ; checkEditIsAnaly.Checked = model.IsAnaly == "True" ? true : false; checkEditIsControll.Checked = model.IsControll == "True" ? true : false; checkEditIsDataDocking.Checked = model.IsDataDocking == "True" ? true : false; checkEditIsPostData.Checked = model.IsPostData == "True" ? true : false; textEditPostCount.Text = model.PostCount; textEditPostTime.Text = (int.Parse(model.PostTime) / 60 / 1000).ToString(); //textEditPostLastTime.Text = model.PostLastTime; textEditControlType.SelectedIndex = model.ControlType == "1" ? 0 : 1; textEditIP.Text = model.PostDataConfig.IP; textEditPassword.Text = model.PostDataConfig.Password; textEditTopic.Text = model.PostDataConfig.Topic; textEditUser.Text = model.PostDataConfig.User; textEditPort.Text = model.PostDataConfig.Port; textEditDelay.Text = model.DelayGetRealData; checkEditIsNoFlowControl.Checked = model.IsNoFlowControl == "True" ? true : false; textEditControlCoefficient.Text = model.ControlCoefficient; textEditDataDockingFrequency.Text = (int.Parse(model.DataDockingFrequency) / 1000).ToString(); checkEditIsWrite.Checked = model.IsWrite == "True" ? true : false; textEditMinFlow.Text = model.MinFlow; textEditMinFlowPumpHz.Text = model.MinFlowPumpHz; textEditWaterLevel.Text = model.WaterLevel; //textEditPumpChangeHours.Text = model.PumpChangeHours; textEdit1.Text = model.PressYu; })); } else { textEditControllFrequency.Text = (int.Parse(model.ControllFrequency) / 1000).ToString(); checkEditIsAnaly.Checked = model.IsAnaly == "True" ? true : false; checkEditIsControll.Checked = model.IsControll == "True" ? true : false; checkEditIsDataDocking.Checked = model.IsDataDocking == "True" ? true : false; checkEditIsPostData.Checked = model.IsPostData == "True" ? true : false; textEditPostCount.Text = model.PostCount; //textEditPumpChangeHours.Text = model.InitUseWater; textEditPostTime.Text = (int.Parse(model.PostTime) / 60 / 1000).ToString(); checkEditIsNoFlowControl.Checked = model.IsNoFlowControl == "True" ? true : false; textEditControlCoefficient.Text = model.ControlCoefficient; //textEditPostLastTime.Text = model.PostLastTime; textEditControlType.SelectedIndex = model.ControlType == "1" ? 0 : 1; textEditIP.Text = model.PostDataConfig.IP; textEditPassword.Text = model.PostDataConfig.Password; textEditTopic.Text = model.PostDataConfig.Topic; textEditUser.Text = model.PostDataConfig.User; textEditPort.Text = model.PostDataConfig.Port; textEditDelay.Text = model.DelayGetRealData; textEditDataDockingFrequency.Text = (int.Parse(model.DataDockingFrequency) / 1000).ToString(); checkEditIsWrite.Checked = model.IsWrite == "True" ? true : false; textEditMinFlow.Text = model.MinFlow; textEditMinFlowPumpHz.Text = model.MinFlowPumpHz; textEditWaterLevel.Text = model.WaterLevel; //textEditPumpChangeHours.Text = model.PumpChangeHours; textEdit1.Text = model.PressYu; } } WaitFormHelper.HideWaitForm(); } private void simpleButton5_Click(object sender, EventArgs e) { //重启通讯服务 SendText(startCode + restartserviceCode + paramCode + "WebServer" + endCode); MessageBoxHelper.ShowInfo("操作成功"); } private void simpleButton4_Click(object sender, EventArgs e) { //重启分析服务 SendText(startCode + restartserviceCode + paramCode + "AnalyConsole" + endCode); MessageBoxHelper.ShowInfo("操作成功"); } private void simpleButton3_Click(object sender, EventArgs e) { //重启推送服务 SendText(startCode + restartserviceCode + paramCode + "PostDataConsole" + endCode); MessageBoxHelper.ShowInfo("操作成功"); } private void simpleButton2_Click(object sender, EventArgs e) { //重启采集服务 SendText(startCode + restartserviceCode + paramCode + "DataDockingConsole" + endCode); MessageBoxHelper.ShowInfo("操作成功"); } private void simpleButton6_Click(object sender, EventArgs e) { //清理数据 SendText(startCode + clearupdataCode + paramCode + endCode); MessageBoxHelper.ShowInfo("操作成功"); } } }