// // ELBluetoothManager.h // Elink // // Created by iot_user on 2019/4/22. // Copyright © 2019 iot_iMac. All rights reserved. // #import #import "ELPeripheralModel.h" #import //MARK:蓝牙通用协议 @protocol ELBluetoothManagerDelegate @optional //Callback Bluetooth status(回调蓝牙状态) -(void)bluetoothManagerUpdateBleState:(ELBluetoothState)state; //Callback to scanned device(回调扫描到的设备) -(void)bluetoothManagerScanedPeripherals:(NSArray *_Nonnull)peripherals; //Callback decrypted transparent data (A7 decrypted payload data)(回调解密后的数据(A7解密后payload数据)) -(void)bluetoothManagerReceiveData:(NSData *_Nonnull)data deviceType:(ELSupportDeviceType)type; /** Callback transparent transmission data(回调透传数据) @param data Transparent data transmission (this data cannot start with A6 or A7)(透传数据(此数据不能以A6或A7开头)) */ -(void)bluetoothManagerReceivePassData:(NSData *_Nullable)data; @end NS_ASSUME_NONNULL_BEGIN @interface ELBluetoothManager : NSObject @property (nonatomic, assign, readonly) BOOL isOn; //Bluetooth status(蓝牙状态) @property (nonatomic, assign, readonly) ELBluetoothState state; //version number(版本号) @property (nonatomic, copy, readonly) NSString *bmVersion; /** Save the model corresponding to the currently connected device 保存当前连接的设备对应的模型 */ @property (nonatomic, strong, readonly) ELPeripheralModel *peripheralModel; //Bluetooth proxy(蓝牙代理) @property (nonatomic, weak) id delegate; /** 需要搜索与系统绑定的蓝牙设备 */ @property (nonatomic, assign) BOOL needScanBindSysDevice; //设置appkey和secret +(void)setAppKey:(NSString *)key appSecret:(NSString *)secret; // +(__kindof ELBluetoothManager * _Nonnull)shareManager; //Start scanning(开始扫描) -(void)startScan; //Start scanning all (开始扫描附近所有设备) - (void)startScanAll; //Stop scanning(停止扫描) -(void)stopScan; //Connecting device(连接设备) -(void)connectPeripheral:(ELPeripheralModel *)peripheralModel; //Disconnect device(断开设备) -(void)disconnectPeripheral; #pragma mark ============ 发送指令的3种方法 ============== /** Shortcut method to send A6 data to BLE(发送A6数据给BLE的快捷方法) @param data The stitched payload part(拼接好的payload部分) */ -(void)sendCmdToMCUWithA6PayloadData:(NSData *)data; /** Shortcut method of sending A7 data to MCU(发送A7数据给MCU的快捷方法) @param data The stitched payload part(拼接好的payload部分) @param type Equipment type(设备类型) */ -(void)sendCmdToMCUWithA7PayloadData:(NSData *)data deviceType:(ELSupportDeviceType)type; /** General method of sending data (support data transparent transmission)(发送数据通用方法(支持数据透传)) @param data 数据 */ -(void)sendData:(NSData *)data; @end NS_ASSUME_NONNULL_END