lixiaojun
2025-03-31 b0a694ccba71736f9092f30e45be94689ce92416
WinFrmUI/IBox.WinFrmUI/Form/IBoxFormProtocol.cs
@@ -1,7 +1,8 @@
//using CodeProvider;
using DevExpress.Utils.Extensions;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using System.Data;
using DevExpress.XtraLayout;
using Yw;
using Yw.WinFrmUI;
@@ -9,30 +10,70 @@
{
    public partial class IBoxFormProtocol : DocumentPage
    {
        private string startCode = "[&start&]";
        private string endCode = "[&end&]";
        private string paramCode = "[&param&]";
        private string getprotocolCode = "getprotocol";
        private string saveprotocolCode = "saveprotocol";
        public IBoxFormProtocol()
        {
            this.PageTitle.Caption = "协议配置";
            InitializeComponent();
            SetData();
        }
        public event EventHandler<string> SendData;
        private void SendText(string content)
        {
            SendData?.Invoke(null, content);
            if (SendData != null)
            {
                SendData?.Invoke(null, content);
            }
            else
            {
                if (IBoxHelper.Ping())
                {
                    var smsg = content.Split(new string[] { IBoxHelper.paramCode, IBoxHelper.startCode }, StringSplitOptions.RemoveEmptyEntries);
                    if (smsg.Length < 2)
                    {
                        return;
                    }
                    switch (smsg[0].Trim())
                    {
                        case IBoxHelper.getprotocolCode:
                            {
                                var order = IBoxHelper.HttpGet(content);
                                var result = IBoxHelper.GetContent(order);
                                if (!string.IsNullOrEmpty(result))
                                {
                                    var model = JsonHelper.Json2Object<IBoxProtocolViewModel>(result);
                                    BindData(model, false);
                                }
                                break;
                            }
                        case IBoxHelper.saveprotocolCode:
                            {
                                IBoxHelper.HttpPost(content);
                                break;
                            }
                        default:
                            IBoxHelper.HttpGet(content);
                            break;
                    }
                }
                else
                {
                    MessageBoxHelper.ShowWarning("网络连接失败,请检查网络");
                }
            }
        }
        public void HideButton()
        {
            //simpleButton1.Visible  = false;
            layoutControlItem4.Visibility =  DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
        }
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            Save();
            MessageBoxHelper.ShowInfo("数据保存成功!");
        }
        /// <summary>
@@ -40,10 +81,10 @@
        /// </summary>
        public void Save()
        {
            SendText(startCode + saveprotocolCode + paramCode + JsonHelper.Object2Json(GetData()) + endCode);
            SendText(IBoxHelper.startCode + IBoxHelper.saveprotocolCode + IBoxHelper.paramCode + JsonHelper.Object2Json(GetData()) + IBoxHelper.endCode);
            MessageBoxHelper.ShowInfo("数据保存成功!");
        }
        public void SetData()
        {
@@ -204,7 +245,7 @@
        private void EboxFormProtocol_Load(object sender, EventArgs e)
        {
            Thread.Sleep(500);
            SendText(startCode + getprotocolCode + paramCode + endCode);
            SendText(IBoxHelper.startCode + IBoxHelper.getprotocolCode + IBoxHelper.paramCode + IBoxHelper.endCode);
        }
        /// <summary>
@@ -226,14 +267,15 @@
                    stopBits = System.IO.Ports.StopBits.One
                };
            }
            if (isBlue) {
            this.Invoke(new Action(() =>
            if (isBlue)
            {
                var protocols = new dModbus().ProtocolType();
                var des = protocols.FirstOrDefault(x => x.Value == model.ProtocolType).Key;
                imageComboBoxEditType.SelectItemByDescription(des);
                ChangeType(model.ProtocolType, model);
            }));
                this.Invoke(new Action(() =>
                {
                    var protocols = new dModbus().ProtocolType();
                    var des = protocols.FirstOrDefault(x => x.Value == model.ProtocolType).Key;
                    imageComboBoxEditType.SelectItemByDescription(des);
                    ChangeType(model.ProtocolType, model);
                }));
            }
            else
            {