Advertisement
Guest User

Untitled

a guest
Jul 17th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. export interface DiscoveryService {
  2. scan(timeout: number): Observable<Peripheral>;
  3. stopScan(): Promise<void>;
  4. }
  5.  
  6. export const BLE_DISCOVERY = new InjectionToken<DiscoveryService>('ble.discovery');
  7.  
  8. @Injectable()
  9. export class BleDiscovery implements DiscoveryService {
  10. constructor(private decoder: BleDecoder, private ble: BLE, private platform: Platform) { }
  11.  
  12. scan(timeout: number): Observable<Peripheral> {
  13. return from(this.platform.ready()).pipe(
  14. mergeMap(_ => this.ble.scan([], timeout)),
  15. map(device => this.decoder.decodeDevice(device)),
  16. filter(isHickoryDevice),
  17. map(setDefaultName)
  18. );
  19. }
  20.  
  21. stopScan(): Promise<void> {
  22. return this.ble.stopScan();
  23. }
  24. }
  25.  
  26. import { NgModule } from '@angular/core';
  27. import { BLE } from '@ionic-native/ble/ngx';
  28. import { BleDecoder } from './ble-decoder';
  29. import { BleDiscovery, BLE_DISCOVERY } from './ble-discovery';
  30.  
  31. @NgModule({
  32. providers: [
  33. { provide: BLE_DISCOVERY, useValue: {} },
  34. BLE,
  35. BleDecoder,
  36. BleDiscovery
  37. ],
  38. imports: [
  39. ],
  40. exports: [
  41. ]
  42. })
  43. export class BleModule { }
  44.  
  45. constructor(
  46. private zone: NgZone,
  47. private router: Router,
  48. @Inject(BLE_DISCOVERY) private discovery: DiscoveryService) {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement