private static void Sensor_MessageReceived(MrsMessage message, string marsName) { if (message is CommandMessage commandMessage) { string command = commandMessage.Command.Item.ToString(); Console.WriteLine($"{message.MrsMessageType} ({command}) received from {marsName}"); } else { Console.WriteLine($"{message.MrsMessageType} received from {marsName}"); } }
private void Sensor_MessageReceived(MrsMessage message, string marsName) { Console.WriteLine($"{message.MrsMessageType} received from {marsName}"); if (message.MrsMessageType == MrsMessageTypes.CommandMessage) { if (message is CommandMessage commandMessage && (SimpleCommandType)commandMessage.Command.Item != SimpleCommandType.KeepAlive) { // find the sensor the command is for var deviceSensor = _device.Sensors.FirstOrDefault(s => s.SensorIdentification.Equals(commandMessage.SensorIdentification)); _device.SendCommandMessage(commandMessage.Command, deviceSensor); } } }
private void Device_MessageReceived(object sender, MrsMessage e) { Device dvc = (Device)sender; Console.WriteLine($"{e.MrsMessageType} received from {dvc.DeviceIP}:{dvc.DevicePort}"); switch (e.MrsMessageType) { case MrsMessageTypes.DeviceConfiguration: // save config _deviceConfiguration = (DeviceConfiguration)e; // override ip and port _deviceConfiguration.NotificationServiceIPAddress = _configuration.ListenIP; _deviceConfiguration.NotificationServicePort = _configuration.ListenPort.ToString(); break; case MrsMessageTypes.DeviceStatusReport: // save status // if status contain already values - update _statusReport = (DeviceStatusReport)(_statusReport == null ? e : _statusReport.UpdateValues(e)); if (_sensor == null) { // now that we have config and status, start the sensor (listening side) _sensor = new Sensor(_deviceConfiguration, _statusReport) { ValidateMessages = false }; _sensor.MessageSent += Sensor_MessageSent; _sensor.MessageReceived += Sensor_MessageReceived; _sensor.ValidationErrorOccured += Sensor_ValidationErrorOccured; Console.WriteLine("Starting sensor..."); _sensor.Start(); Console.WriteLine($"Sensor started on {_sensor.IP}:{_sensor.Port}"); } break; case MrsMessageTypes.DeviceIndicationReport: var indicationReport = (DeviceIndicationReport)e; _sensor?.RegisterIndications(ExtractIndications(indicationReport)); break; } }
private static void Sensor_MessageSent(MrsMessage message, string marsName) { Console.WriteLine($"{message.MrsMessageType} sent to {marsName}"); }
/// <summary> /// Class Constructor /// </summary> /// <param name="message"></param> /// <param name="innerException"></param> public InvalidMessageException(MrsMessage message, Exception innerException) : base(innerException.Message, innerException) { MarsMessage = message; }
private void Device_MessageSent(object sender, MrsMessage e) { Device dvc = (Device)sender; Console.WriteLine($"{e.MrsMessageType} sent to {dvc.DeviceIP}:{dvc.DevicePort}"); }