//
//  EZIoTBaseInfoMgr.h
//  EZIoTBluetoothSDK
//
//  Created by yuqian on 2022/3/14.
//

#import <Foundation/Foundation.h>
#import "EZIoTBLECommonDefine.h"


NS_ASSUME_NONNULL_BEGIN

@class EZIoTPeripheral;

@interface EZIoTBaseInfoMgr : NSObject

- (void)getDevInfoData:(EZIoTPeripheral *)p completion:(EZIoTBLEUniversalSetResultBlock)completion;

- (void)getMcuDevInfoData:(EZIoTPeripheral *)p completion:(EZIoTBLEUniversalSetResultBlock)completion;

- (void)getCapabilityData:(EZIoTPeripheral *)p completion:(EZIoTBLEUniversalSetResultBlock)completion;

- (void)modifyDevTime:(EZIoTPeripheral *)p
                 time:(NSTimeInterval)timestamp
             timezone:(NSTimeZone *)timezone
       daylightSaving:(BOOL)daylightSaving
               completion:(EZIoTBLEUniversalSetResultBlock)completion;

- (void)setBindStatusData:(EZIoTPeripheral *)p
                     isBinded:(uint8_t)isBinded
                   completion:(EZIoTBLEUniversalSetResultBlock)completion;

- (void)setApnInfo:(EZIoTPeripheral *)p
               apn:(NSString *)apn
          userName:(NSString *)userName
          password:(NSString *)password
          authType:(NSString *)authType
        completion:(EZIoTBLEUniversalSetResultBlock)completion;

- (void)setApnInfoEncrypt:(EZIoTPeripheral *)p
                      apn:(NSString *)apn
                 userName:(NSString *)userName
                 password:(NSString *)password
                 authType:(NSString *)authType
               completion:(EZIoTBLEUniversalSetResultBlock)completion;
/// 设置4G开关
/// @param p 设备
/// @param enable YES 打开 NO 关闭
/// @param completion 完成回调
- (void)setMobileNetEnable:(EZIoTPeripheral *)p
                    enable:(BOOL)enable
                completion:(EZIoTBLEUniversalSetResultBlock)completion;

- (void)getQueryBindStatusData:(EZIoTPeripheral *)p completion:(EZIoTBLEUniversalSetResultBlock)completion;

- (void)getQueryNetStatusData:(EZIoTPeripheral *)p completion:(EZIoTBLEUniversalSetResultBlock)completion;

- (void)getPairedStatusData:(EZIoTPeripheral *)p completion:(EZIoTBLEUniversalSetResultBlock)completion;

- (void)registerPeripheralStateHandler:(EZIoTBLEPeripheralStateDidChangedBlock)handler;

- (int) baseInfoHanler:(EZIoTPeripheral *)p
               cmdType:(int)cmdType
                 value:(NSData *)value
           needPackage:(BOOL)needPackage;

@end

NS_ASSUME_NONNULL_END
