Ejemplo n.º 1
0
        public Result WriteSingleRegister(ModBusSingleWriteRequest req)
        {
            if (HardwareInterface.PacketsInSendingList > _maxSendCapacity)
            {
                return(Result.FullBuffer);
            }

            if (Mode == ModBusMode.RTU)
            {
                byte[] message = RtuMakeFunction5(req, ModbusFunctions.WriteSingleRegister);
                return(HardwareInterface.SendOverSerialPort(Port, message));
            }

            return(Result.NotImplemented);
        }
Ejemplo n.º 2
0
        public ModBus(ModBusMode mode, int port, int baudrate, SerialPortMode serialPortMode)
        {
            Mode           = mode;
            Port           = port;
            Baudrate       = baudrate;
            SerialPortMode = serialPortMode;

            HardwareInterface = new HardwareInterface(port, baudrate, new Commands[] { Commands.SendOverSerialPort, Commands.InitSerialPort });

            PendingReadRequestList = new SyncList <ModBusReadRequest>();

            _maxSendCapacity = SettingManager.Instance.Settings.MaxSendListCapacity;

            HardwareInterface.OnReceiceNewPacket += HardwareInterface_OnReceiceNewPacket;
        }
Ejemplo n.º 3
0
        public Result Connect(string hostSerialPort)
        {
            if (string.IsNullOrEmpty(hostSerialPort))
            {
                hostSerialPort = SettingManager.Instance.Settings.ComPort;
            }

            Result openingPcSerialPortResult = HardwareInterface.OpenHostSerialPort(hostSerialPort);

            if (openingPcSerialPortResult.Success == false)
            {
                return(openingPcSerialPortResult);
            }

            return(HardwareInterface.InitSerialPort(Port, Baudrate, SerialPortMode));
        }
Ejemplo n.º 4
0
        public Result ReadInputRegisters(ModBusReadRequest req)
        {
            if (HardwareInterface.PacketsInSendingList > _maxSendCapacity)
            {
                return(Result.FullBuffer);
            }

            if (Mode == ModBusMode.RTU)
            {
                AddToReadPending(req);

                byte[] message = RtuMakeFunction4(req, ModbusFunctions.ReadInputRegisters);
                return(HardwareInterface.SendOverSerialPort(Port, _seqNum, message));
            }

            return(Result.NotImplemented);
        }
Ejemplo n.º 5
0
        public GeneralCommands()
        {
            HardwareInterface = new HardwareInterface(0, 0, new Commands[] { Commands.GetVersion, Commands.Reset, Commands.Shutdown, Commands.RunBootloader });

            HardwareInterface.OnReceiceNewPacket += HardwareInterface_OnReceiceNewPacket;
        }