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); }
public BeaconInfo(BeaconID beaconID, int txPower, int rssi, NSData telemetry) { BeaconID = beaconID; TxPower = txPower; Rssi = rssi; Telemetry = telemetry; }