123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466 |
- //
- // YAKDeviceManager.h
- // MCKit
- //
- // Created by WengFei Wang on 21/05/2018
- // Copyright © 2018 WengFei Wang. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import <B3BLESDK/MCDeviceAddtion.h>
- NS_ASSUME_NONNULL_BEGIN
- /**
- MCErrorType
- - MCErrorNone: NO error
- - MCErrorBluetoothDisabled: Bluetooth is not prower on
- - MCErrorConnectDeviceFaild: connect device faild
- - MCErrorDisconnectDeviceFaild: disconnect device faild
- */
- typedef NS_ENUM(NSInteger, MCErrorType) {
- MCErrorNone = 0,
- MCErrorBluetoothDisabled,
- MCErrorConnectDeviceFaild,
- MCErrorDisconnectDeviceFaild,
- };
- @class YAKDevice;
- /**
- Response
- @param error error
- */
- typedef void (^MCBResponse)(NSError * _Nullable error);
- //连接成功Block
- typedef void(^W035ConnectedBlock)(NSInteger isConnected);
- @protocol YAKDeviceManagerDelegate <NSObject>
- @optional
- //Called when the manager state changed
- /**
- managerStateChanged
- @param available state Change
- */
- - (void)managerStateChanged:(BOOL)available;
- - (void)didDiscoverDevice:(nonnull __kindof YAKDevice *)device;
- //- (void)device:(nonnull __kindof MCDevice *)device didUpdateRSSI:(NSNumber *)RSSI;
- /**
- didDisconnectedDevice
- @param device device
- */
- - (void)didDisconnectedDevice:(nonnull __kindof YAKDevice *)device;
- @end
- typedef void(^W035BloodOxyDataBlock)(NSInteger oxy);
- typedef void(^W035SportTotalTimeDataBlock)(NSInteger totalTime);
- typedef void(^W035BloodPressureDataBlock)(NSInteger highPressure,NSInteger lowPressure);
- typedef void(^W035DialChangeBlock)(int index, int number);
- typedef void(^W035DialCheckSumBlock)(int number);
- typedef void(^W035DebugBlock)(NSData *__nullable data,NSString *__nullable string);
- typedef void(^W035BetarryLeval)(NSInteger betarry);
- typedef void(^W035StepCalDisBlock)(NSInteger steps,float Cal,float Dis);
- typedef void(^W035StepDetailBlock)(NSArray *stepDetail);
- typedef void(^W035HeartRateDetailBlock)(NSArray *heartRateDetail);
- typedef void (^W035DialSelectionCountBlock)(NSInteger count,NSInteger index);
- typedef void(^W035TurnWristBlock)(NSInteger isOn);
- typedef void(^W035ConstantHeartRateBlock)(NSDictionary *dict);
- typedef void(^W035DontDistributeBlock)(NSInteger isOn);
- typedef void(^W035NightOxygenBlock)(NSInteger isOn);
- typedef void(^W035CurrentLanguageBlock)(NSInteger currntLang);
- typedef void(^W035SleepDetailBlock)(NSArray *sleepDetail);
- typedef void(^W035TakeAPhotoBlock)(BOOL isTake);
- typedef void(^W035UnBandWatchBlock)(BOOL isBind);
- typedef void(^W035NotificationSwitchBlock)(NSArray *array);
- typedef void(^W035NotificationSetBlock)(BOOL isSet);
- typedef void(^W035AlarmClockZEROBlock)(BOOL isSet);
- typedef void(^W035LongSetRemindBlock)(NSDictionary *dict);
- typedef void(^W035LongSetSuccessBlock)(BOOL isSet);
- typedef void(^W035AlarmClockArrayBlock)(NSDictionary *alarmClockDic);
- typedef void(^W035AlarmClockFinishBlock)(BOOL isSet);
- typedef void(^W035AlarmClockSetSuccessBlock)(BOOL isSuccess);
- typedef void(^W035BloodPressureBlock)(NSArray *array);
- typedef void(^W035TemperatureBlock)(NSArray *array);
- typedef void(^W035BloodoxygenBlock)(NSArray *array);
- typedef void(^W035MonitorBloodSugarBlock)(BOOL isSuccess);
- typedef void(^W035Time2412Block)(BOOL is24);
- typedef void(^W035SYNCDataOverBlock)(BOOL isOver);
- typedef void(^B3GetDetailDataBlock)(NSDictionary *dict,NSArray *array);
- typedef void(^FindPhoneBlock)(BOOL isFind);
- typedef void(^W035SleepNoDataBlock)(BOOL isNoData);
- typedef void(^W035HeartRateNoDataBlock)(BOOL isNoData);
- typedef void(^W035BloodpressureNoDataBlock)(BOOL isNoData);
- typedef void(^W035TemperatureNoDataBlock)(BOOL isNoData);
- typedef void(^W035StepsNoDataBlock)(BOOL isNoData);
- typedef void(^W035UserInfomationBlock)(BOOL isSuccess);
- typedef void(^W035SoftWareVersionBlock)(NSInteger index0,NSInteger index1,NSInteger index2,NSInteger index3,NSInteger index4);
- typedef void(^W035DataTimeCountBlcok)(NSInteger count);
- typedef void(^W035SyncTimeBlock)(BOOL isSuccess);
- typedef void(^W035FunctionListBlock)(Byte byte0,Byte byte1,Byte byte2,Byte byte3,Byte byte4);
- //DFU 开始
- typedef void(^YAKDFUStartBlock)(BOOL isStart);
- //DUF 进行中的回馈
- typedef void (^YAKDFUProgressBlock)(NSString *msg,NSDictionary *content);
- //DFU进行中参数为进度
- typedef void (^YAKDFUONProgressBlock)(float progress);
- //DFU 结束
- typedef void(^YAKDFUFinishBlock)(BOOL isFinish);
- //系统类型
- typedef void (^W035SystemTypeBlock)(BOOL isiOS);
- //================V1.12===========
- //设置天气指令结果
- typedef void(^SetWeatherTypeBlock)(BOOL isSuccess);
- //设置女性健康指令结果
- typedef void(^SetFemaleFunctionBlock)(BOOL isSuccess);
- //================V1.13===========
- //全天心率增加阈值字段
- typedef void(^AllDayHeartRateFunctionBlock)(BOOL isSuccess);
- //控制皮肤测试Blcok
- typedef void(^ControlSkinTestBlock)(BOOL isSuccess);
- //控制运动开始/结束
- typedef void(^ControlSportStartOrStopBlock)(BOOL isSuccess,NSDictionary *dict);
- //皮肤数据上传
- typedef void(^SkinDataUpdateBlock)(NSDictionary *dict);
- //同步活动量数据(步数、距离、卡路里)
- typedef void(^ActivityVolumeDataBlock)(NSDictionary *dict,NSArray *array);
- //同步健康数据(睡眠、心率、血氧)
- typedef void(^SyncHealthyDataBlock)(NSDictionary *dict,NSArray *array);
- //同步运动数据(跑步、跳绳..)
- typedef void(^SyncSportDataBlock)(NSArray *array);
- //皮肤水分测试高电压
- typedef void(^SyncSkinWaterHeightDataBlock)(NSInteger voltage);
- //皮肤水分测试低电压
- typedef void(^SyncSkinWaterLowDataBlock)(NSInteger voltage);
- //皮肤水分测试高电压
- typedef void(^SyncOneTestBloodOxygenDataBlock)(NSInteger value);
- //皮肤水分测试低电压
- typedef void(^SyncOneTestHeartRateDataBlock)(NSInteger value);
- //设置转腕亮屏回调Block
- typedef void(^SetTurnWirstFunctionBlock)(BOOL isSuccess);
- typedef void (^SyncNightBloodOxgenDataBlock)(NSArray *array);
- typedef void (^SyncNightHeartRateDataBlock)(NSArray *array);
- typedef void (^SyncNightBloodPressureDataBlock)(NSArray *array);
- typedef void(^ChangeNewDialBlock)(BOOL isSuccess);
- typedef void(^StartChangeNewDialBlock)(BOOL isSuccess);
- typedef void(^PersonalBloodPressureBlock)(BOOL isSuccess);
- typedef void(^OriginalDataBlock)(NSString *string);
- typedef void(^DeviceControlSportStateChangeBlock)(NSInteger state, NSInteger sportType);
- //*************************新增属性**************************
- //PPG原始数据上传
- typedef void(^W035PPGOrginalDataDetailBlock)(NSArray *ppgDataDetail);
- @interface YAKDeviceManager : NSObject
- @property (nonatomic, strong) CBCentralManager *manager;
- @property (nonatomic, copy) W035BloodOxyDataBlock w035BloodOxyDataBlock;
- @property (nonatomic, copy) W035SportTotalTimeDataBlock w035SportTotalTimeDataBlock;
- @property (nonatomic, copy) W035BloodPressureDataBlock w035BloodPressureDataBlock;
- @property (nonatomic, copy) OriginalDataBlock originalDataBlock;
- @property (nonatomic, copy) PersonalBloodPressureBlock personalBloodPressureBlock;
- @property (nonatomic, copy) ChangeNewDialBlock changeNewDialBlock;
- @property (nonatomic, copy) StartChangeNewDialBlock startChangeNewDialBlock;
- @property (nonatomic, copy) SyncOneTestBloodOxygenDataBlock syncOneTestBloodOxygenDataBlock;
- @property (nonatomic, copy) SyncOneTestHeartRateDataBlock syncOneTestHeartRateDataBlock;
- @property (nonatomic, copy) SetTurnWirstFunctionBlock setTurnWirstFunctionBlock;
- @property (nonatomic, copy) SyncSkinWaterHeightDataBlock syncSkinWaterHeightDataBlock;
- @property (nonatomic, copy) SyncSkinWaterLowDataBlock syncSkinWaterLowDataBlock;
- @property (nonatomic, copy) SyncNightBloodOxgenDataBlock syncNightBloodOxgenDataBlock;
- @property (nonatomic, copy) SyncNightHeartRateDataBlock syncNightHeartRateDataBlock;
- @property (nonatomic, copy) SyncNightBloodPressureDataBlock syncNightBloodPressureDataBlock;
- @property (nonatomic, copy) ControlSkinTestBlock controlSkinTestBlock;
- @property (nonatomic, copy) ActivityVolumeDataBlock activityVolumeDataBlock;
- @property (nonatomic, copy) SyncHealthyDataBlock syncHealthyDataBlock;
- @property (nonatomic, copy) SyncSportDataBlock syncSportDataBlock;
- @property (nonatomic, copy) SkinDataUpdateBlock skinDataUpdateBlock;
- @property (nonatomic, copy) ControlSportStartOrStopBlock controlSportStartOrStopBlock;
- @property (nonatomic, copy) DeviceControlSportStateChangeBlock deviceControlSportStateChangeBlock;
- @property (nonatomic, copy) AllDayHeartRateFunctionBlock allDayHeartRateFunctionBlock;
- @property (nonatomic, copy) SetWeatherTypeBlock setWeatherTypeBlock;
- @property (nonatomic, copy) SetFemaleFunctionBlock setFemaleFunctionBlock;
- @property (nonatomic, copy) W035DialCheckSumBlock w035DialCheckSumBlock;
- @property (nonatomic, copy) W035DialChangeBlock w035DialChangeBlock;
- @property (nonatomic, copy) W035SystemTypeBlock w035SystemTypeBlock;
- @property (nonatomic, copy) W035FunctionListBlock w035FunctionListBlock;
- @property (nonatomic, copy) W035SyncTimeBlock w035SyncTimeBlock;
- @property (nonatomic, copy) W035DataTimeCountBlcok w035DataTimeCountBlcok;
- @property (nonatomic, copy)W035SoftWareVersionBlock w035SoftWareVersionBlock;
- @property (nonatomic, copy) W035UserInfomationBlock w035UserInfomationBlock;
- @property (nonatomic, copy) W035StepsNoDataBlock w035StepsNoDataBlock;
- @property (nonatomic, copy) W035TemperatureNoDataBlock w035TemperatureNoDataBlock;
- @property (nonatomic, copy) W035BloodpressureNoDataBlock w035BloodpressureNoDataBlock;
- @property (nonatomic, copy)W035HeartRateNoDataBlock W035HeartRateNoDataBlock;
- @property (nonatomic, copy) W035SleepNoDataBlock w035SleepNoDataBlock;
- @property (nonatomic, copy) FindPhoneBlock findPhoneBlock;
- @property (nonatomic, copy) B3GetDetailDataBlock b3GetDetailDataBlock;
- @property (nonatomic, copy) W035SYNCDataOverBlock w035SYNCDataOverBlock;
- @property (nonatomic, copy) W035TemperatureBlock w035TemperatureBlock;
- @property (nonatomic, copy) W035BloodoxygenBlock w035BloodoxygenBlock;
- @property (nonatomic, copy) W035MonitorBloodSugarBlock w035MonitorBloodSugarBlock;
- @property (nonatomic, copy) W035LongSetSuccessBlock w035LongSetSuccessBlock;
- //电池电量
- @property (nonatomic, copy) W035BetarryLeval w035betarryLeval;
- @property (nonatomic, copy) W035StepCalDisBlock w035StepCalDisBlock;
- @property (nonatomic, copy) W035StepDetailBlock w035StepDetailBlock;
- @property (nonatomic, copy) W035SleepDetailBlock w035SleepDetailBlock;
- @property (nonatomic, copy) W035Time2412Block w035Time2412Block;
- @property (nonatomic, copy) W035HeartRateDetailBlock w035HeartRateDetailBlock;
- @property (nonatomic, copy) W035DialSelectionCountBlock w035DialSelectionCountBlock;
- @property (nonatomic, copy) W035TurnWristBlock w035TurnWristBlock;
- @property (nonatomic, copy) W035ConstantHeartRateBlock w035ConstantHeartRateBlock;
- @property (nonatomic, copy) W035NightOxygenBlock w035NightOxygenBlock;
- @property (nonatomic, copy) W035CurrentLanguageBlock w035CurrentLangBlock;
- @property (nonatomic, copy) W035DontDistributeBlock w035DontDistributeBlock;
- @property (nonatomic, copy) W035TakeAPhotoBlock w035TakeAPhotoBlock;
- @property (nonatomic, copy) W035UnBandWatchBlock w035UnBandWatchBlock;
- @property (nonatomic, copy) W035NotificationSwitchBlock w035NotificationSwitchBlock;
- @property (nonatomic, copy) W035NotificationSetBlock w035NotificationSetBlock;
- @property (nonatomic, copy) W035AlarmClockZEROBlock w035AlarmClockZEROBlock;
- @property (nonatomic, copy) W035AlarmClockArrayBlock w035AlarmClockArrayBlock;
- @property (nonatomic, copy) W035AlarmClockFinishBlock w035AlarmClockFinishBlock;
- @property (nonatomic, copy) W035AlarmClockSetSuccessBlock w035AlarmClockSetSuccessBlock;
- @property (nonatomic, copy) W035LongSetRemindBlock w035LongSetRemindBlock;
- @property (nonatomic, copy) W035BloodPressureBlock w035BloodPressureBlock;
- @property (nonatomic, copy)YAKDFUStartBlock yakDFUStartBlock;
- @property (nonatomic, copy)YAKDFUProgressBlock yakDFUProgressBlock;
- @property (nonatomic, copy)YAKDFUONProgressBlock yakDFUONProgressBlock;
- @property (nonatomic, copy)YAKDFUFinishBlock yakDFUFinishBlock;
- @property (nonatomic, copy) W035DebugBlock w035DebugBlock;
- @property (nonatomic, copy) NSString *turnWirstString;
- @property (nonatomic, copy) NSString *continuityHeartString;
- @property (nonatomic, copy) NSString *doNotDisturb;
- //*************************新增属性**************************
- //PPG原始数据上传回调
- @property (nonatomic, copy) W035PPGOrginalDataDetailBlock w035PPGOrginalDataDetailBlock;
- /**
- YAKDeviceManagerDelegate
- */
- @property (nonatomic, weak, nullable) id<YAKDeviceManagerDelegate> delegate;
- /**
- currentDevice
- */
- @property (nonatomic, copy, readonly, nullable) __kindof YAKDevice *currentDevice;
- /**
- Description determine the system bluetooth is available to use
- */
- @property (nonatomic, assign, readonly, getter=isAvailable) BOOL available;
- @property (nonatomic, assign) BOOL deviceConnected;
- @property (nonatomic, copy) W035ConnectedBlock w035ConnectedBlock;
- + (instancetype)sharedInstance;
- - (NSDictionary *)sleepDataHandle:(NSArray *)array;
- //For these methods, device allways means @MCDevice
- /**
- scan device
- */
- - (void)scanForDevice;
- /**
- scanForDeviceWithDeviceTypes:
- @param deviceTypes deviceTypes
- */
- - (void)scanForDeviceWithDeviceTypes:(nullable NSArray<NSNumber *> *)deviceTypes;
- /**
- stop Scan
- */
- - (void)stopScan;
- /**
- connectDevice
- @param device device
- @param response response
- */
- - (void)connectDevice:(nonnull YAKDevice *)device response:(MCBResponse)response;
- /**
- connectDeviceForIdentifier
- @param identifier identifier
- @param response response
- */
- - (void)connectDeviceForIdentifier:(nonnull NSString *)identifier response:(MCBResponse)response;
- /**
- disconnectDeviceWithResponse
- @param response response
- */
- - (void)disconnectDeviceWithResponse:(MCBResponse)response;
- /**
- discoveredDevices
- @return NSArray contains MCDevice
- */
- - (nullable NSArray<__kindof YAKDevice *> *)discoveredDevices;
- - (void)updateNewFile:(NSString *)fileName;
- /// OTA文件
- /// @param data bin文件的二进制文件
- - (void)updateOTANewFile:(NSData *)data;
- @end
- NS_ASSUME_NONNULL_END
|