Exemplo n.º 1
0
        public static BeaconInfo BeaconInfoForUIDFrameData(NSDictionary advertisementFrameList, NSData telemetry, int rssi)
        {
            var frameData = advertisementFrameList.ObjectForKey(CBUUID.FromString("FEAA")) as NSData;

            if (frameData.Length > 1)
            {
                var frameBytes = frameData.ToArray();

                if (frameBytes[0] != EddystoneUIDFrameTypeID)
                {
                    System.Diagnostics.Debug.WriteLine("Unexpected non UID Frame passed to BeaconInfoForUIDFrameData.");
                    return(null);
                }
                else if (frameBytes.Length < 18)
                {
                    System.Diagnostics.Debug.WriteLine("Frame Data for UID Frame unexpectedly truncated in BeaconInfoForUIDFrameData.");
                }

                var txPower = Convert.ToInt32(frameBytes[1]);

                var beaconID = new byte [frameBytes.Length - 2];
                Array.Copy(frameBytes, 2, beaconID, 0, beaconID.Length);

                var bid = new BeaconID(BeaconType.Eddystone, beaconID);

                return(new BeaconInfo(bid, txPower, rssi, telemetry));
            }

            return(null);
        }
Exemplo n.º 2
0
 public BeaconInfo(BeaconID beaconID, int txPower, int rssi, NSData telemetry)
 {
     BeaconID  = beaconID;
     TxPower   = txPower;
     Rssi      = rssi;
     Telemetry = telemetry;
 }