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.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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 (serialNumber == model.serialNumber) {
  55. return;
  56. }
  57. serialNumber = model.serialNumber;
  58. switch (model.testState) {
  59. case BroadcastHeightGuage_TestState_Measuring: {
  60. self.bleStatusLabel.text = @"Measuring";
  61. break;
  62. }
  63. case BroadcastHeightGuage_TestState_Stable: {
  64. self.bleStatusLabel.text = @"Stabl";
  65. break;
  66. }
  67. case BroadcastHeightGuage_TestState_Failed: {
  68. self.bleStatusLabel.text = @"Failed";
  69. break;
  70. }
  71. }
  72. NSString *log = [NSString stringWithFormat:@"MAC:%@ cid = %d--vid=%d--pid=%d\n Height = %@%@", model.mac, model.cid - 0xFFFF, model.vid, model.pid, @(model.height), AiLinkBleHeightUnitDic[@(model.heightUnit)]];
  73. [self addLog:log];
  74. }
  75. #pragma mark - Log
  76. - (void)addLog:(NSString *)log {
  77. [self addLog:log newline:YES];
  78. }
  79. - (void)addWithoutNewlineLog:(NSString *)log {
  80. [self addLog:log newline:NO];
  81. }
  82. - (void)addLog:(NSString *)log newline:(BOOL)newline {
  83. NSDateFormatter *format = [[NSDateFormatter alloc] init];
  84. format.dateFormat = @"HH:mm:ss.SSS";
  85. NSString *time = [format stringFromDate:[NSDate date]];
  86. if (newline) {
  87. self.logTextView.text = [self.logTextView.text stringByAppendingFormat:@"%@ %@\n", time, log];
  88. } else {
  89. self.logTextView.text = [self.logTextView.text stringByAppendingFormat:@"%@ %@", time, log];
  90. }
  91. [self.logTextView scrollRangeToVisible:NSMakeRange(self.logTextView.text.length, 1)];
  92. }
  93. @end