12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- //
- // ELBluetoothManager.h
- // Elink
- //
- // Created by iot_user on 2019/4/22.
- // Copyright © 2019 iot_iMac. All rights reserved.
- //
-
- #import <Foundation/Foundation.h>
- #import "ELPeripheralModel.h"
- #import <AILinkSecretTool/ELSDKHeader.h>
-
- //MARK:蓝牙通用协议
- @protocol ELBluetoothManagerDelegate <NSObject>
- @optional
-
- //Callback Bluetooth status(回调蓝牙状态)
- -(void)bluetoothManagerUpdateBleState:(ELBluetoothState)state;
- //Callback to scanned device(回调扫描到的设备)
- -(void)bluetoothManagerScanedPeripherals:(NSArray<ELPeripheralModel *> *_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<ELBluetoothManagerDelegate> 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
|