/// <summary> /// Event handler to receive notice that the device has disconnected /// </summary> /// <param name="sender">Sender</param> /// <param name="e">Event args including the device info</param> private void _bleManager_DeviceDisconnectedEvent(object sender, DeviceEventArgs e) { DeviceInfo device = FindDeviceInfo(e.Device); Log(string.Format("Device {0} [{1}] disconnected", device != null ? device.Name : e.Device.Name, e.Device.Address)); if (device != null) { DeviceDisconnectEvent?.Invoke(this, new DeviceInfoEventArgs(device)); _localDisconnectionSuccess?.Invoke(this, new DeviceInfoEventArgs(device)); _localDisconnectionSuccess = null; } }
public async Task Handle(MqttClientDisconnectedEvent message, IMessageHandlerContext context) { _logger.Info($"ClientDisconnectedMessage recived. DETAILS:\n{message.ToString()}"); var devices = await this._mqttClientManager.GetDevicesByMqttClientAsync(message.client_id); foreach (var device in devices) { var @event = new DeviceDisconnectEvent { mqtt_client_id = device.mqtt_client_id, serial_number = device.serial_number, type_text = device.type_text }; await context.Publish(@event); } //await this._mqttClientManager.ChangeDevicesStatusAsync(false, message.client_id); }
public override DeviceEvent ParseDeviceEvent(MqttApplicationMessageReceivedEventArgs eventArgs) { var payload = eventArgs.ApplicationMessage.Payload; if (payload == null || payload.Length == 0) { return(null); } var payloadStr = Encoding.UTF8.GetString(eventArgs.ApplicationMessage.Payload); if (this.IsValidJson(payloadStr)) { DeviceDisconnectEvent message = JsonConvert.DeserializeObject <DeviceDisconnectEvent>(payloadStr); if (string.IsNullOrEmpty(message.mqtt_client_id)) { message.mqtt_client_id = eventArgs.ClientId; } return(message); } return(null); }
protected virtual void OnDeviceDisconnectEvent(BleGattDevice dev) { DeviceDisconnectEvent?.Invoke(dev); }
public virtual void OnDeviceDisconnectEvent(bool status) { DeviceDisconnectEvent?.Invoke(status); }