iOS AILinkBleSDK - 蓝牙SDK
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

ViewController.m 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. //
  2. // ViewController.m
  3. // AILinkBleSDKSourceCode
  4. //
  5. // Created by iot_user on 2020/4/7.
  6. // Copyright © 2020 IOT. All rights reserved.
  7. //
  8. #import "ViewController.h"
  9. #import "Masonry.h"
  10. #import <AILinkBleSDK/ELAILinkBleManager.h>
  11. #import <AILinkBleSDK/ELBluetoothManager.h>
  12. #import "ELDemoDeviceModel.h"
  13. #import "ELDeviceTypeCell.h"
  14. #import "ELDemoScanVC.h"
  15. #import "AiLinkSuperViewController.h"
  16. #import "InheritScanViewController.h"
  17. #import "BabyScaleViewController.h"
  18. #import "BloodScanViewController.h"
  19. #import "ELWIFIBloodPressureVC.h"
  20. #import "HeightGuageScanViewController.h"
  21. #import "BroadcastHeightGuage.h"
  22. #import "RemoteControlScanViewController.h"
  23. #import "ForeheadScanViewController.h"
  24. #import "ThermometerScanViewController.h"
  25. #import "WheelMonitorScanViewController.h"
  26. #import "BodyFatScaleScanViewController.h"
  27. #import "BodyScaleVC.h"
  28. #import "BroadcastScaleViewController.h"
  29. #import "EightScaleScanViewController.h"
  30. #import "ToothbrushScanViewController.h"
  31. #import "ELBfsWifiScanVC.h"
  32. #import "OximeterScanViewController.h"
  33. #import "BloodSugarScanViewController.h"
  34. #import "CoffeeScaleScanViewController.h"
  35. #import "FoodThermometerScanViewController.h"
  36. #import "BroadcastNutritionScaleViewController.h"
  37. #import "NutritionScaleScanViewController.h"
  38. #import "AiFreshNutritionScaleScanViewController.h"
  39. #import "FaceMaskScanViewController.h"
  40. #import "SkipScanViewController.h"
  41. #import "HeightBodyFatScaleVC.h"
  42. #import "MeatProbeVC.h"
  43. #import "MeatProbeBoxVC.h"
  44. #import "HygrothermographVC.h"
  45. #import "MeatProbeScreenBoxVC.h"
  46. #import "MultipleMeatProbeBoxVC.h"
  47. @interface ViewController ()<UITableViewDelegate,UITableViewDataSource>
  48. @property (weak, nonatomic) IBOutlet UITableView *tableView;
  49. @property (weak, nonatomic) IBOutlet UILabel *versionLabel;
  50. @property (nonatomic, strong) NSArray<ELDemoDeviceModel *> *deviceArray;
  51. @end
  52. @implementation ViewController
  53. - (void)viewDidLoad {
  54. [super viewDidLoad];
  55. self.title = [NSString stringWithFormat:@"%@", self.class.appName];
  56. self.versionLabel.text = [NSString stringWithFormat:@"SDK ver: %@ \nDemo ver: %@", ELAILinkBleManager.sdkVersion, self.class.appVersion];
  57. self.deviceArray = @[
  58. [ELDemoDeviceModel modelWithIndex:@"-" imageName:@"ailink_connected_ic" title:@"Parse data yourself" subtitle:@"有AILink协议自己解析数据" entryVCName:NSStringFromClass(InheritScanViewController.class)],
  59. [ELDemoDeviceModel modelWithIndex:@"04" imageName:@"type_baby_scale_ic" title:@"Baby Scale" subtitle:@"婴儿秤" entryVCName:NSStringFromClass(BabyScaleViewController.class)],
  60. [ELDemoDeviceModel modelWithIndex:@"05" imageName:@"type_sphygmomanometer_ic" title:@"Sphygmomanometer" subtitle:@"血压计" entryVCName:NSStringFromClass(BloodScanViewController.class)],
  61. [ELDemoDeviceModel modelWithIndex:@"05B" imageName:@"type_sphygmomanometer_ic" title:@"WIFI_BLE Sphygmomanometer" subtitle:@"血压计_WIFI_BLE" entryVCName:NSStringFromClass(ELWIFIBloodPressureVC.class) cids:@[@(ELSupportDeviceTypeBLE_WIFIBlood)]],
  62. [ELDemoDeviceModel modelWithIndex:@"06" imageName:@"type_height_measuring_instrument" title:@"Height Guage" subtitle:@"身高仪" entryVCName:NSStringFromClass(HeightGuageScanViewController.class)],
  63. [ELDemoDeviceModel modelWithIndex:@"06B" imageName:@"type_height_measuring_instrument" title:@"Broadcast Height Guage" subtitle:@"广播身高仪" entryVCName:NSStringFromClass(BroadcastHeightGuage.class)],
  64. [ELDemoDeviceModel modelWithIndex:@"07" imageName:@"type_control_vision_ic" title:@"Remote Control" subtitle:@"遥控器" entryVCName:NSStringFromClass(RemoteControlScanViewController.class)],
  65. [ELDemoDeviceModel modelWithIndex:@"08" imageName:@"type_temperature_gun_ic" title:@"Forehead thermometer" subtitle:@"额温枪" entryVCName:NSStringFromClass(ForeheadScanViewController.class)],
  66. [ELDemoDeviceModel modelWithIndex:@"09" imageName:@"type_thermometer_ic" title:@"Digital thermometer" subtitle:@"温度计" entryVCName:NSStringFromClass(ThermometerScanViewController.class)],
  67. [ELDemoDeviceModel modelWithIndex:@"10" imageName:@"type_tpms_ic" title:@"TPMS" subtitle:@"胎压监测" entryVCName:NSStringFromClass(WheelMonitorScanViewController.class)],
  68. [ELDemoDeviceModel modelWithIndex:@"11" imageName:@"type_body_fat_ic" title:@"Bluetooth BodyfatScale" subtitle:@"体脂秤" entryVCName:NSStringFromClass(BodyFatScaleScanViewController.class)],
  69. [ELDemoDeviceModel modelWithIndex:@"11B" imageName:@"type_body_fat_ic" title:@"Bluetooth BodyScale (without body fat)" subtitle:@"体重秤" entryVCName:NSStringFromClass(BodyScaleVC.class) cids:@[@(ELSupportDeviceTypeBodyScale)]],
  70. [ELDemoDeviceModel modelWithIndex:@"12" imageName:@"type_body_fat_ic" title:@"Bluetooth BroadcastScale" subtitle:@"广播秤" entryVCName:NSStringFromClass(BroadcastScaleViewController.class)],
  71. [ELDemoDeviceModel modelWithIndex:@"13" imageName:@"8_electrode_measurement_type" title:@"Eight-electrode scale" subtitle:@"八电极体脂秤" entryVCName:NSStringFromClass(EightScaleScanViewController.class)],
  72. [ELDemoDeviceModel modelWithIndex:@"14" imageName:@"type_brush" title:@"wifi-ble toothbrush" subtitle:@"WiFi-ble牙刷" entryVCName:NSStringFromClass(ToothbrushScanViewController.class)],
  73. [ELDemoDeviceModel modelWithIndex:@"15" imageName:@"type_body_fat_ic" title:@"wifi-ble bodyfatScale" subtitle:@"WiFi-ble体脂秤" entryVCName:NSStringFromClass(ELBfsWifiScanVC.class)],
  74. [ELDemoDeviceModel modelWithIndex:@"16" imageName:@"oximeter_search_icon1" title:@"Bluetooth Oximeter" subtitle:@"血氧仪" entryVCName:NSStringFromClass(OximeterScanViewController.class)],
  75. [ELDemoDeviceModel modelWithIndex:@"17" imageName:@"type_blood_sugar" title:@"Bluetooth BloodGlucoseMeter" subtitle:@"血糖仪" entryVCName:NSStringFromClass(BloodSugarScanViewController.class)],
  76. [ELDemoDeviceModel modelWithIndex:@"18" imageName:@"type_coffee_scale_ic" title:@"CoffeeScale" subtitle:@"咖啡秤" entryVCName:NSStringFromClass(CoffeeScaleScanViewController.class)],
  77. [ELDemoDeviceModel modelWithIndex:@"19" imageName:@"foodtem_icon_100" title:@"FoodThermometer" subtitle:@"食物温度计" entryVCName:NSStringFromClass(FoodThermometerScanViewController.class)],
  78. [ELDemoDeviceModel modelWithIndex:@"20" imageName:@"ailink_nutrition_scale_scale_connect" title:@"BrodcastNutritionScale" subtitle:@"广播营养秤" entryVCName:NSStringFromClass(BroadcastNutritionScaleViewController.class)],
  79. [ELDemoDeviceModel modelWithIndex:@"21" imageName:@"ailink_nutrition_scale_scale_connect" title:@"NutritionScale" subtitle:@"连接营养秤" entryVCName:NSStringFromClass(NutritionScaleScanViewController.class)],
  80. [ELDemoDeviceModel modelWithIndex:@"22" imageName:@"ailink_nutrition_scale_scale_connect" title:@"AiFreshNutritionScale" subtitle:@"好营养营养秤" entryVCName:NSStringFromClass(AiFreshNutritionScaleScanViewController.class)],
  81. [ELDemoDeviceModel modelWithIndex:@"23" imageName:@"type_smart_mask" title:@"FaceMask" subtitle:@"智能口罩" entryVCName:NSStringFromClass(FaceMaskScanViewController.class)],
  82. [ELDemoDeviceModel modelWithIndex:@"24" imageName:@"ailink_smart_skip_rope_device_ic" title:@"SkippingRope" subtitle:@"跳绳" entryVCName:NSStringFromClass(SkipScanViewController.class)],
  83. [ELDemoDeviceModel modelWithIndex:@"25" imageName:@"height_body_fat_scale_type_ic" title:@"HeightBodyFatScale" subtitle:@"身高体脂秤" entryVCName:NSStringFromClass(HeightBodyFatScaleVC.class) cids:@[@(ELSupportDeviceTypeHeightBodyFatScale)]],
  84. [ELDemoDeviceModel modelWithIndex:@"26" imageName:@"meat_probe_type_ic" title:@"MeatProbe" subtitle:@"食物探针" entryVCName:NSStringFromClass(MeatProbeVC.class) cids:@[@(ELSupportDeviceTypeMeatProbe)]],
  85. [ELDemoDeviceModel modelWithIndex:@"27" imageName:@"ailink_cid85_type_ic" title:@"MeatProbeBox" subtitle:@"食物探针盒子" entryVCName:NSStringFromClass(MeatProbeBoxVC.class) cids:@[@(ELSupportDeviceTypeMeatProbeBox)]],
  86. [ELDemoDeviceModel modelWithIndex:@"27B" imageName:@"ailink_cid85_banding_cid_0062_100_ic" title:@"MeatProbeScreenBox" subtitle:@"食物探针带屏盒子" entryVCName:NSStringFromClass(MeatProbeScreenBoxVC.class) cids:@[@(0x0062)]],
  87. [ELDemoDeviceModel modelWithIndex:@"27C" imageName:@"aibbq_add_equipment_probe_100_ic" title:@"MultipleMeatProbeBox" subtitle:@"多食物探针盒子" entryVCName:NSStringFromClass(MultipleMeatProbeBoxVC.class) cids:@[@(0x006B)]],
  88. [ELDemoDeviceModel modelWithIndex:@"28" imageName:@"Hygrothermograph_add_icon2_100" title:@"Hygrothermograph" subtitle:@"温湿度计" entryVCName:NSStringFromClass(HygrothermographVC.class) cids:@[@(ELSupportDeviceTypeHygrothermograph)]],
  89. ];
  90. }
  91. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  92. return self.deviceArray.count;
  93. }
  94. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
  95. return 88;
  96. }
  97. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  98. ELDemoDeviceModel *device = self.deviceArray[indexPath.row];
  99. ELDeviceTypeCell *cell = [ELDeviceTypeCell subsribeCell:tableView];
  100. cell.indexLabel.text = device.index;
  101. cell.titleLabel.text = device.titleText;
  102. cell.subtitleLabel.text = device.subtitleText;
  103. cell.iconImageView.image = [UIImage imageNamed:device.imageName];
  104. return cell;
  105. }
  106. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  107. ELDemoDeviceModel *device = self.deviceArray[indexPath.row];
  108. if (device.newType) {
  109. ELDemoScanVC *vc = [[ELDemoScanVC alloc] init];
  110. vc.cids = device.cids;
  111. vc.demoDeviceModel = device;
  112. // vc.modalPresentationStyle = UIModalPresentationFullScreen;
  113. [self.navigationController presentViewController:vc animated:YES completion:^{
  114. NSLog(@"");
  115. }];
  116. __weak typeof(self) weakSelf = self;
  117. vc.selectedBlock = ^(ELAILinkPeripheral * _Nonnull per) {
  118. UIViewController *vc = [[NSClassFromString(device.entryVCName) alloc] init];
  119. vc.title = [NSString stringWithFormat:@"%@_%@", device.titleText, device.subtitleText];
  120. [vc setValue:per forKey:@"per"];
  121. [weakSelf.navigationController pushViewController:vc animated:YES];
  122. };
  123. } else {
  124. UIViewController *vc = [[NSClassFromString(device.entryVCName) alloc] init];
  125. vc.title = [NSString stringWithFormat:@"%@_%@", device.titleText, device.subtitleText];
  126. [self.navigationController pushViewController:vc animated:YES];
  127. }
  128. }
  129. + (NSString *)appName {
  130. NSDictionary *dic = [[NSBundle mainBundle] infoDictionary];
  131. NSString *appName = [dic objectForKey:@"CFBundleDisplayName"];
  132. return appName;
  133. }
  134. + (NSString *)appVersion {
  135. NSDictionary *dic = [[NSBundle mainBundle] infoDictionary];
  136. NSString * version = [dic objectForKey:@"CFBundleShortVersionString"];
  137. return version;
  138. }
  139. @end