iOS AILinkBleSDK - 蓝牙SDK
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

BroadcastHeightGuage.m 3.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. //
  2. // BroadcastHeightGuage.m
  3. // AILinkBleSDK_Example
  4. //
  5. // Created by LarryZhang on 2023/6/26.
  6. // Copyright © 2023 zhengzida. All rights reserved.
  7. //
  8. #import "BroadcastHeightGuage.h"
  9. #import <AILinkBleSDK/ELBroadcastHeightGaugeBleManager.h>
  10. @interface BroadcastHeightGuage ()
  11. @property (weak, nonatomic) IBOutlet UILabel *bleStatusLabel;
  12. @property (weak, nonatomic) IBOutlet UITextView *logTextView;
  13. @end
  14. @interface BroadcastHeightGuage () <ELBroadcastHeightGaugeBleDelegate>
  15. @end
  16. @implementation BroadcastHeightGuage
  17. - (void)viewDidLoad {
  18. [super viewDidLoad];
  19. // Do any additional setup after loading the view from its nib.
  20. [self initBle];
  21. [self scanBle];
  22. }
  23. - (void)dealloc {
  24. [self deinitBle];
  25. }
  26. #pragma mark - Action
  27. - (IBAction)clearAction:(id)sender {
  28. self.logTextView.text = @"";
  29. }
  30. - (IBAction)shareLogAction:(id)sender {
  31. }
  32. #pragma mark - BLE
  33. - (void)initBle {
  34. [ELBroadcastHeightGaugeBleManager shareManager].heightGaugeDelegate = self;
  35. }
  36. - (void)scanBle {
  37. [[ELBroadcastHeightGaugeBleManager shareManager] startScanAll];
  38. }
  39. - (void)deinitBle {
  40. [[ELBroadcastHeightGaugeBleManager shareManager] stopScan];
  41. [ELBroadcastHeightGaugeBleManager shareManager].heightGaugeDelegate = nil;
  42. }
  43. /**Callback Bluetooth status(回调蓝牙状态) */
  44. - (void)broadcastHeightGaugeUpdateState:(ELBluetoothState)state {
  45. if (state == ELBluetoothStateAvailable) {
  46. self.bleStatusLabel.text = @"Connecting";
  47. } else if (state == ELBluetoothStateUnavailable) {
  48. self.bleStatusLabel.text = @"Bluetooth is disconnected";
  49. }
  50. }
  51. /** 回调身高数据 */
  52. - (void)broadcastHeightGaugeDeviceDataModel:(ELBroadcastHeightGaugeBleDataModel *)model {
  53. static NSInteger serialNumber = 0;
  54. if (model.testState == BroadcastHeightGuage_TestState_Stable &&
  55. serialNumber != model.serialNumber) {
  56. NSString *log = [NSString stringWithFormat:@"MAC:%@ \nCID:0x%04X(%d) VID:0x%04X(%d) PID:0x%04X(%d)\n Height: %@ weightPoint: %@ heightUnit: %@", model.mac, model.cid - 0xFFFF, model.cid - 0xFFFF, model.vid, model.vid, model.pid, model.pid, @(model.height), @(model.heightPoint), AiLinkBleHeightUnitDic[@(model.heightUnit)]];
  57. [self addLog:log];
  58. serialNumber = model.serialNumber;
  59. } else if (model.testState == BroadcastHeightGuage_TestState_Failed && serialNumber != model.serialNumber) {
  60. NSString *log = @"测量出错啦";
  61. [self addLog:log];
  62. serialNumber = model.serialNumber;
  63. } else {
  64. }
  65. switch (model.testState) {
  66. case BroadcastHeightGuage_TestState_Measuring: {
  67. self.bleStatusLabel.text = @"Measuring";
  68. break;
  69. }
  70. case BroadcastHeightGuage_TestState_Stable: {
  71. self.bleStatusLabel.text = @"Stable";
  72. break;
  73. }
  74. case BroadcastHeightGuage_TestState_Failed: {
  75. self.bleStatusLabel.text = @"Failed";
  76. break;
  77. }
  78. }
  79. }
  80. #pragma mark - Log
  81. - (void)addLog:(NSString *)log {
  82. [self addLog:log newline:YES];
  83. }
  84. - (void)addWithoutNewlineLog:(NSString *)log {
  85. [self addLog:log newline:NO];
  86. }
  87. - (void)addLog:(NSString *)log newline:(BOOL)newline {
  88. NSDateFormatter *format = [[NSDateFormatter alloc] init];
  89. format.dateFormat = @"HH:mm:ss.SSS";
  90. NSString *time = [format stringFromDate:[NSDate date]];
  91. if (newline) {
  92. self.logTextView.text = [self.logTextView.text stringByAppendingFormat:@"%@ %@\n", time, log];
  93. } else {
  94. self.logTextView.text = [self.logTextView.text stringByAppendingFormat:@"%@ %@", time, log];
  95. }
  96. [self.logTextView scrollRangeToVisible:NSMakeRange(self.logTextView.text.length, 1)];
  97. }
  98. @end