コード例 #1
0
        /**
         * 复选框点击事件(通用)
         **/
        private void CheckBox_Click(object sender, EventArgs e)
        {
            String      cmd         = "00" + " " + ((CheckBox)sender).TabIndex.ToString("X2") + " " + (((CheckBox)sender).Checked ? "FF" : "00") + " " + "00";
            SerialPortX serialPortX = FT02RLConfigLoader.instance.Get("1234567890");

            if (serialPortX == null)
            {
                return;
            }
            serialPortX.EnqueueModbus(false, new FT02RLWriteCMDEventHandler(), "01", "05", cmd);
        }
コード例 #2
0
        /**
         * 窗口加载后事件
         **/
        private void FT02RLForm_Load(object sender, EventArgs e)
        {
            FT02RLConfigLoader.instance.Load(
                (sid, portName, readedHexString) =>
            {
                Log(false, "串口【" + portName + "】读取到数据:" + (readedHexString.Length > 18 ? "\n" : "") + "【" + readedHexString + "】");
            },
                (sid, portName) =>
            {
                Log(null, "尝试打开串口【" + portName + "】");
            },
                (sid, portName) =>
            {
                Log(null, "尝试打开串口【" + portName + "】 -> 成功");
            },
                (sid, portName) =>
            {
                Log(null, "尝试打开串口【" + portName + "】 -> 失败");
            },
                (sid, portName) =>
            {
                Log(false, "串口【" + portName + "】仍处于打开状态");
            },
                (sid, portName) =>
            {
                Log(null, "串口【" + portName + "】已经断开");
            },
                (sid, portName) =>
            {
                Log(null, "尝试重新打开串口【" + portName + "】");
            },
                (sid, portName) =>
            {
                Log(null, "尝试重新打开串口【" + portName + "】 -> 成功");
            },
                (sid, portName) =>
            {
                Log(null, "尝试重新打开串口【" + portName + "】 -> 失败");
            },
                (sid, portName) =>
            {
                SerialPortX serialPortX = FT02RLConfigLoader.instance.Get(sid);
                if (serialPortX == null)
                {
                    return;
                }
                serialPortX.EnqueueModbus(true,

                                          new FT02RLReadCMDEventHandler((SID, PortName, result) =>
                {
                    switch (result)
                    {
                    case 0:
                        // 所有路均未接通
                        {
                            Log(false, "串口【" + portName + "】,所有路均未接通。");
                            Checkbox_Checked(input01, false);
                            Checkbox_Checked(input02, false);
                        };
                        break;

                    case 1:
                        // 01路接通
                        {
                            Log(null, "串口【" + portName + "】,01路接通。");
                            Checkbox_Checked(input01, true);
                            Checkbox_Checked(input02, false);
                        };
                        break;

                    case 2:
                        // 02路接通
                        {
                            Log(null, "串口【" + portName + "】,02路接通。");
                            Checkbox_Checked(input01, false);
                            Checkbox_Checked(input02, true);
                        };
                        break;

                    case 3:
                        // 01路接通
                        // 02路接通
                        {
                            Log(null, "串口【" + portName + "】,01路接通。");
                            Log(null, "串口【" + portName + "】,02路接通。");
                            Checkbox_Checked(input01, true);
                            Checkbox_Checked(input02, true);
                        };
                        break;
                    }
                }),

                                          "01", "02", "00 00 00 02");
            }
                );
        }