コード例 #1
0
        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);
        }
コード例 #2
0
 public DeviceDiscoveredEventArgs(DeviceDiscoveredEvent discoveredEvent)
 {
     DiscoveredEvent = discoveredEvent;
 }
コード例 #3
0
 /// <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);
 }