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"); } } }
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"); } } }