Пример #1
0
        public override void OnMessageReceived(ModbusMessage message)
        {
            if (message.address == id && message.isFromMaster)
            {
                if (message.VerifyChecksum(out _))
                {
                    Logger.Log($"(Slave {id}) Received message from master: {message.PrettyPrint()}");

                    Task.Factory.StartNew(() => HandleMessage(message));
                }
                else
                {
                    Logger.Warn($"(Slave {id}) Message has invalid checksum, ignoring");
                }
            }
        }
Пример #2
0
        public override void OnMessageReceived(ModbusMessage message)
        {
            if (!message.isFromMaster)
            {
                if (message.VerifyChecksum(out _))
                {
                    Logger.Log($"Received response from slave {message.address}: {message.PrettyPrint()}");

                    waitingForResponse.TryUpdate(message.address, false, true);

                    if (message.function >= 0x80)
                    {
                        Logger.Warn($"Slave {message.address} threw an exception: {(ModbusExceptionType)message.data[0]}");
                    }
                }
                else
                {
                    Logger.Warn("Message has invalid checksum, ignoring");
                }
            }
        }