static void ForwardScanEventToLoop(byte[] centralBluetoothAddress, DeviceDiscoveredEvent eventPdu) { // Serialize into Loop BLE RSSI packet var stream = new MemoryStream(); var writer = new BinaryWriter(stream); // ---[ Loop Local UDP Packet Format ]------------------------------------------------------------ writer.Write((UInt16)3); // Packet Type: BLE RSSI writer.Write(centralBluetoothAddress); // BLE Scanner MAC Address (Bluetooth Address) writer.Write(eventPdu.BluetoothAddress); // Remote Device Bluetooth Address writer.Write((byte)0x00); // *Reserved writer.Write(eventPdu.RSSI); // RSSI writer.Write((sbyte)-128); // Indicates to delegate parsing of Measured Power writer.Write((byte)0x00); // *Reserved writer.Write((byte)0x00); // *Reserved writer.Write((byte)0x00); // *Reserved writer.Write((byte)eventPdu.AdData.Length); // Payload Length writer.Write(eventPdu.AdData); // Payload Data // ---------------------------------------------------------------------------------------------- var loopPacket = stream.ToArray(); writer.Dispose(); stream.Dispose(); // Send over UDP var args = new SocketAsyncEventArgs(); args.RemoteEndPoint = Endpoint; args.SetBuffer(loopPacket, 0, loopPacket.Length); LoopSocket.SendToAsync(args); }
public DeviceDiscoveredEventArgs(DeviceDiscoveredEvent discoveredEvent) { DiscoveredEvent = discoveredEvent; }
/// <summary> /// Event invocation method for handling discovered devices /// </summary> /// <param name="e">Event arguments containing a <see cref="DeviceInfo"/> instance</param> private void OnRaiseDeviceDiscoveredEvent(DeviceInfoEventArgs e) { DeviceDiscoveredEvent?.Invoke(this, e); }