iOS AILinkBleSDK - 蓝牙SDK
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

ELThermometerBleManager.h 7.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. //
  2. // ELThermometerBleManager.h
  3. // Elink
  4. //
  5. // Created by cliCk on 2019/5/28.
  6. // Copyright © 2019 iot_iMac. All rights reserved.
  7. //
  8. #import "ELBluetoothManager.h"
  9. #import "ELThermometerDeviceModel.h"
  10. #import "ELThermometerBleModel.h"
  11. NS_ASSUME_NONNULL_BEGIN
  12. typedef NS_ENUM(NSInteger , ThermometerBleDataType) {
  13. /**Stable temperature( 稳定温度 )*/
  14. ThermometerBleDataType_StableData = 0x01 ,
  15. /** Real-time temperature(实时温度) */
  16. ThermometerBleDataType_RealtimeData = 0x02 ,
  17. /// 6.2.2读取历史数据
  18. ThermometerBleDataType_GetRecordData = 0x03 ,
  19. /// 6.2.3返回历史数据
  20. ThermometerBleDataType_BackRecordData = 0x04 ,
  21. /// APP获取历史记录
  22. ThermometerBleDataType_RequestHistoryRecord = 0x10,
  23. /// 返回历史记录
  24. ThermometerBleDataType_ReceiveHistoryRecord = 0x11,
  25. /// 6.2.4获取设备支持功能/返回支持功能
  26. ThermometerBleDataType_SupportFunction = 0x80 ,
  27. /** App release unit settings(app下发单位设置) */
  28. ThermometerBleDataType_AppSendUnit = 0x81 ,
  29. /** The MCU replies to the setting result(MCU回复设置结果) */
  30. ThermometerBleDataType_BackSendUnit = 0x82 ,
  31. /// App同步unix时间给MCU
  32. ThermometerBleDataType_AsyncUnixTime = 0x83 ,
  33. /// 6.2.7获取设备测温模式/返回测试模式
  34. ThermometerBleDataType_GetMeasureTemMode = 0x84 ,
  35. /// 6.2.8设置设备测温模式/返回设置结果
  36. ThermometerBleDataType_SetMeasureTemMode = 0x85 ,
  37. /// 6.2.9获取高温报警值/返回高温报警值
  38. ThermometerBleDataType_GetTemAlarmValue = 0x86 ,
  39. /// 6.2.10设置高温报警值/返回结果
  40. ThermometerBleDataType_SetTemAlarmValue = 0x87 ,
  41. /** Error code sent on the device(设备上发错误码) */
  42. ThermometerBleDataType_DeviceBackErrorCode = 0xFF ,
  43. };
  44. typedef NS_ENUM(NSInteger , ThermometerBleResultType) {
  45. /** success(设置成功 )*/
  46. ThermometerBleResultType_Succeed = 0x00 ,
  47. /** failure(设置失败) */
  48. ThermometerBleResultType_Failure ,
  49. /** unsupport(不支持设置) */
  50. ThermometerBleResultType_Unsupported ,
  51. };
  52. typedef NS_ENUM(NSInteger , ThermometerBleErrorCode) {
  53. /** Hyperthermia(体温过高) */
  54. ThermometerBleErrorCode_Hyperthemia = 0x00 ,
  55. /** Hypothermia(体温过低 )*/
  56. ThermometerBleErrorCode_Hypothermia ,
  57. /** error(测量出错) */
  58. ThermometerBleErrorCode_Failure ,
  59. };
  60. /// 设备类型
  61. typedef NS_ENUM(NSInteger, ThermometerBleDevType) {
  62. /// 体温贴等连续测温设备
  63. ThermometerBleDevType_Continuous = 0 ,
  64. /// 一般体温计
  65. ThermometerBleDevType_Normal = 1 ,
  66. /// 基础体温计
  67. ThermometerBleDevType_Base = 2 ,
  68. };
  69. /// 设备功能枚举定义
  70. typedef NS_ENUM(NSInteger, ThermometerBleSupportFunction) {
  71. /// 单次/连续 测温切换
  72. ThermometerBleSupportFunction_Once_Repeatedly = 0 ,
  73. /// 单位切换
  74. ThermometerBleSupportFunction_Unit = 1 ,
  75. /// 设置高温报警值
  76. ThermometerBleSupportFunction_TemAlarm = 2 ,
  77. /// 历史数据
  78. ThermometerBleSupportFunction_Record = 3 ,
  79. };
  80. /// 测温模式枚举定义
  81. typedef NS_ENUM(NSInteger, ThermometerBleMeasureTemMode) {
  82. /// 单次测量
  83. ThermometerBleMeasureTemMode_Once = 0x00 ,
  84. /// 连续测量
  85. ThermometerBleMeasureTemMode_Repeatedly = 0x01 ,
  86. };
  87. /// 获取历史记录状态定义
  88. typedef NS_ENUM(NSInteger, ThermometerBleRequestHistoryRecordStatus) {
  89. /// 开始获取历史数据
  90. ThermometerBleRequestHistoryRecordStatus_Start = 0x00 ,
  91. /// 接收到一帧,请发下一帧
  92. ThermometerBleRequestHistoryRecordStatus_Continous = 0x01 ,
  93. /// 数据接收完毕
  94. ThermometerBleRequestHistoryRecordStatus_End = 0x02 ,
  95. /// 删除历史记录
  96. ThermometerBleRequestHistoryRecordStatus_Delete = 0x03 ,
  97. };
  98. /// 体温计蓝牙代理方法
  99. @protocol ELThermometerBleDelegate <NSObject>
  100. @optional
  101. /** Callback Bluetooth status(回调蓝牙状态) */
  102. - (void)thermometerManagerUpdateState:(ELBluetoothState )state;
  103. /** Call back all thermometer devices(回调所有体温计设备) */
  104. - (void)thermometerManagerScanDevices:(NSArray<ELThermometerDeviceModel *> *)thermometerDevices;
  105. /** Callback temperature data(回调温度数据) */
  106. - (void)thermometerManagerReceiveModel:(ELThermometerBleModel *)model;
  107. /** Return unit setting result(返回单位设置结果) */
  108. - (void)thermometerManagerSetUnitResults:(ThermometerBleResultType )result;
  109. /** Error code sent on the device(设备上发错误码)*/
  110. - (void)thermometerManagerBackDeviceErrorCode:(ThermometerBleErrorCode )code;
  111. /// 返回历史记录数据
  112. /// @param all 历史数据总条数
  113. /// @param nowSend 此次发送的条数
  114. /// @param list 体温计模型列表
  115. - (void)thermometerManagerRecordDataListWithAllNum:(long long)all nowSendNum:(long long)nowSend recordList:(NSArray<ELThermometerBleModel *> *)list;
  116. /// 返回设备支持功能
  117. /// @param type 设备类型
  118. /// @param list 支持功能列表,内容为 ThermometerBleSupportFunction
  119. - (void)thermometerManagerSupportFunctionWithDevType:(enum ThermometerBleDevType)type supportList:(NSArray<NSNumber *> *)list;
  120. /// 返回设备当前单位
  121. /// @param unit 单位
  122. - (void)thermometerManagerDevUnit:(enum ELDeviceTemperatureUnit)unit;
  123. /// 返回当前测温模式
  124. - (void)thermometerManagerMeasureTemMode:(enum ThermometerBleMeasureTemMode)mode;
  125. /// 返回设置测温模式结果
  126. - (void)thermometerManagerSetMeasureTemModeResult:(enum ThermometerBleResultType)result;
  127. /// 返回高温报警值
  128. - (void)thermometerManagerHighTemAlarmValue:(ELThermometerBleModel *)model;
  129. /// 设置高温报警值结果
  130. - (void)thermometerManagerSetHighTemAlarmResult:(enum ThermometerBleResultType)result;
  131. @end
  132. @interface ELThermometerBleManager : ELBluetoothManager
  133. @property (nonatomic,weak) id<ELThermometerBleDelegate> thermometerDelegate;
  134. + (ELThermometerBleManager *)shareManager;
  135. /// 读取历史数据
  136. /// @param count 一次传输可以接收的记录条数,根据MTU大小及单条记录占用字节数合理配置
  137. /// @param time 已经同步过的最后一条历史数据的Unix时间戳(小端序),未同步过历史数据,发0
  138. - (void)getRecordDataWithMaxCount:(NSInteger)count timeStamp:(long long)time;
  139. /// 获取设备支持功能
  140. - (void)getSupportFunction;
  141. /** App release unit settings(app下发单位设置 )*/
  142. - (void)changeThermometerUnit:(ELDeviceTemperatureUnit)unit;
  143. /// 同步unix时间
  144. - (void)setUnixTime:(long long)unixTime;
  145. /// 同步北京时间
  146. - (void)setBeijingTimeWithYear:(UInt8)year month:(UInt8)month day:(UInt8)day hour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second weekday:(UInt8)weakday;
  147. /// 获取设备当前单位
  148. - (void)getNowUnit;
  149. /// 获取设备测温模式
  150. - (void)getMeasureTemMode;
  151. /// 设置设备测温模式
  152. /// @param mode 模式
  153. - (void)setMeasureTemMode:(enum ThermometerBleMeasureTemMode)mode;
  154. /// 获取高温报警值
  155. - (void)getHighTemAlarmValue;
  156. /// 设置高温报警值
  157. /// @param model 不需要设置时间字段和dataType
  158. - (void)setHighTemAlarmValue:(ELThermometerBleModel *)model;
  159. /// APP 获取历史记录
  160. - (void)getHistoryRecordWithStatus:(ThermometerBleRequestHistoryRecordStatus)status;
  161. @end
  162. NS_ASSUME_NONNULL_END