/// <summary> /// Adds a raw scanner. /// The AdvertisementPacket event will be raised on the scanner for each advertisement packet received. /// The scanner must not already be added. /// </summary> /// <param name="buttonScanner">A ButtonScanner</param> public void AddScanner(ButtonScanner buttonScanner) { if (buttonScanner == null) { throw new ArgumentNullException(nameof(buttonScanner)); } if (!_scanners.TryAdd(buttonScanner.ScanId, buttonScanner)) { throw new ArgumentException("Button scanner already added", nameof(buttonScanner)); } SendPacket(new CmdCreateScanner { ScanId = buttonScanner.ScanId }); }
/// <summary> /// Removes a raw scanner. /// No further AdvertisementPacket events will be raised. /// The scanner must be currently added. /// </summary> /// <param name="buttonScanner">A ButtonScanner that was previously added</param> public void RemoveScanner(ButtonScanner buttonScanner) { if (buttonScanner == null) { throw new ArgumentNullException(nameof(buttonScanner)); } ButtonScanner buttonScannerPrev; if (!_scanners.TryRemove(buttonScanner.ScanId, out buttonScannerPrev)) { throw new ArgumentException("Button scanner was not added", nameof(buttonScanner)); } SendPacket(new CmdRemoveScanner { ScanId = buttonScanner.ScanId }); }