Пример #1
0
 public override void InitDrive(IO_SERVER server, IO_COMMUNICATION Communication, IO_DEVICE device, IO_PARA para, DEVICE_DRIVER driver)
 {
     base.InitDrive(server, Communication, device, para, driver);
 }
Пример #2
0
        public override bool InitDrive(IO_SERVER server, IO_COMMUNICATION communication, IO_DEVICE device, IO_PARA para, DEVICE_DRIVER driver)
        {
            //必须调用此方法
            if (!base.InitDrive(server, communication, device, para, driver))
            {
                return(false);
            }
            ///初始化驱动控件
            if (IsCreateControl)
            {
                if (para != null)
                {
                    this.ParaCtrl = new ModbusControl();
                    ParaCtrl.Dock = DockStyle.Fill;
                    ParaCtrl.SetUIParameter(server, device, para);
                }

                if (device != null)
                {
                    this.DeviceCtrl = new ModbusDeviceControl();
                    DeviceCtrl.Dock = DockStyle.Fill;
                    DeviceCtrl.SetUIParameter(server, device);
                }
            }

            try
            {
                //设备参数格式
                //Modbus类型:ASCII,字节存储:高位字节在前,起开地址:0,寄存器数量:200
                string[] str = device.IO_DEVICE_PARASTRING.Split(new char[2] {
                    ':', ','
                });

                if (str.Length == 4)
                {
                    ModBusProtocol mbp = ModBusProtocol.RTU;
                    switch (str[1].Trim().ToUpper())
                    {
                    case "ASCII":
                        mbp = ModBusProtocol.ASCII;
                        break;

                    case "RTU":
                        mbp = ModBusProtocol.RTU;
                        break;

                    case "SERIAL":    //串口模式下的
                        mbp = ModBusProtocol.Serial;
                        break;
                    }
                    ModbusAnalysis = new ModbusAnalysis(mbp);
                }
                else
                {
                    ModbusAnalysis = new ModbusAnalysis(ModBusProtocol.RTU);
                }
            }
            catch (Exception emx)
            {
                this.DeviceException(emx.Message);
                return(false);
            }
            return(true);
        }