BTLEDeivceModel.m 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. //
  2. // BTLEDeivceModel.m
  3. // OneCable
  4. //
  5. // Created by KaRam Kim on 2017. 5. 17..
  6. // Copyright © 2017년 ntels. All rights reserved.
  7. //
  8. #import "BTLEDeivceModel.h"
  9. #import "CBUUID+String.h"
  10. @interface BTLEDeivceModel () {
  11. // CBPeripheral *peripheralRef;
  12. // NSDictionary *advertisementData;
  13. // CBCentralManager *manager;
  14. NSString *advServices;
  15. NSString *brcData;
  16. }
  17. @end
  18. @implementation BTLEDeivceModel
  19. - (int)txPower {
  20. if ([_advertisementData objectForKey:CBAdvertisementDataTxPowerLevelKey]) {
  21. return [[_advertisementData objectForKey:CBAdvertisementDataTxPowerLevelKey] intValue];
  22. }
  23. return -1;
  24. }
  25. - (NSString*)advertisedServices {
  26. if (advServices) return advServices;
  27. NSMutableString *str = [[NSMutableString alloc] init];
  28. if ([_advertisementData objectForKey:CBAdvertisementDataServiceUUIDsKey]) {
  29. [str appendString:@"Services: "];
  30. NSArray *services = [_advertisementData objectForKey:CBAdvertisementDataServiceUUIDsKey];
  31. if ([services count]) {
  32. for (CBUUID *serviceUUID in services) {
  33. [str appendFormat:@"%@, ", [serviceUUID representativeString]];
  34. }
  35. [str appendString:@"xxx"];
  36. [str replaceOccurrencesOfString:@", xxx" withString:@"" options:0 range:NSMakeRange(0, [str length])];
  37. advServices = str;
  38. } else {
  39. advServices = @"No advertised services";
  40. }
  41. } else {
  42. advServices = @"No advertised services";
  43. }
  44. return advServices;
  45. }
  46. - (int)channel {
  47. if ([_advertisementData objectForKey:@"kCBAdvDataChannel"])
  48. return [[_advertisementData objectForKey:@"kCBAdvDataChannel"] intValue];
  49. return -1;
  50. }
  51. - (BOOL)isConnectable {
  52. return [[_advertisementData objectForKey:CBAdvertisementDataIsConnectable] boolValue];
  53. }
  54. - (NSString*)name {
  55. NSString *deviceName = nil;
  56. if ((deviceName = [_peripheralRef name]) && [deviceName length]) {
  57. return deviceName;
  58. } else if ((deviceName = [_advertisementData objectForKey:CBAdvertisementDataLocalNameKey]) && [deviceName length]) {
  59. return deviceName;
  60. }
  61. return @"<no name>";
  62. }
  63. - (NSString*)broadcastData {
  64. if (brcData) return brcData;
  65. if ([_advertisementData objectForKey:CBAdvertisementDataManufacturerDataKey]) {
  66. NSString *raw = [[_advertisementData objectForKey:CBAdvertisementDataManufacturerDataKey] description];
  67. raw = [raw stringByReplacingOccurrencesOfString:@"<" withString:@""];
  68. raw = [raw stringByReplacingOccurrencesOfString:@">" withString:@""];
  69. brcData = [NSString stringWithFormat:@"Broadcasted data: 0x%@", raw];
  70. } else {
  71. brcData = @"No broadcasted data";
  72. }
  73. return brcData;
  74. }
  75. -(NSArray*)getServiceList
  76. {
  77. return _peripheralRef.services;
  78. }
  79. @end
  80. @implementation BLEWLanModel
  81. @end
  82. @implementation BLEWLanListModel
  83. @end