# 4. iOS-SDK 使用指南
# 4.1 接入MSmartSDK准备
(1)把MSmartSDK.framework和MSSecretSDK.framework拖入项目中。
(2)进入工程TARGETS->Build Settings
设置Other Linker Flags
为-all_load
或者-ObjC
或者 –fore_load
(sdk路径),如图

(3)为应用授权获取WiFi信息的能力

若使用的是xcode10
及以上版本,需对应用获取wifi信息的能力进行授权,如图所示,将开关打开,授权后,Xcode会自动在App ID和应用的权限列表中增加获取WiFi信息的权限。
(4)iOS13系统特殊配置
由于配网业务中使用了CNCopyCurrentNetworkInfo
相关API获取设备当前所连接的wifi的信息,iOS13 系统对此做了限制,APP需要符合下列三项条件中的至少一项才能正常使用
获得了定位服务权限的应用;
目前正处于启用状态的 VPN 应用;
使用 NEHotspotConfiguration (opens new window)配置过的Wi-Fi
以上三种条件满足其一即可,若均未实现,会导致配网功能异常,建议实现第一种,较容易实现。
# 4.2 SDK初始化
依赖服务器域名地址,云端分配申请到的客户ID和客户密钥。线下申请 client_id、 client_secret。集成配网SDK用到client_id, client_secret,server_host。
(1)新版本初始化MSInterface
/**
初始化MSmartSDK
@param config 配置模型
@param workMode 工作模式
@param extras 扩展字典
@return 初始化结果 YES/NO
*/
- (BOOL)initSDK:(MSConfig *__nullable)config workMode:(MSmartWorkMode)workMode extra:(NSDictionary *__nullable)extras{
......
}
(2)示例
- (void)init7xSDK{
MSConfig *config = [[MSConfig alloc] init];
///OPen赋值 clientId && clientSecret
config.clientId = Client_Id; //
config.clientSecret = Client_Secret; //
config.enableLog = YES;
config.serverHost = ServeHost_OPen; //
MSInterface * interface = [MSInterface shareInstance];
BOOL success = [interface initSDK:config workMode:MSmartWorkModeInlandOpen extra:nil];
[interface setTokenRefreshDelegate:self];//设置Token失效代理 如对象释放则代理失效,如多次设置该代理,则以最后设置的那次的代理为准
if (success) {
NSLog(@"初始化SDK成功");
}
}
(3)初始化支持可配置项说明MSConfig
变量名 | 类型 | 说明 |
---|---|---|
workmode | 枚举 | 工作模式。1:国内美居,国内布谷。2:国内OPEN版。3:国际美居,国际东芝。4:海外OEM版 |
appId | 字符串 | SDK的appId |
appKey | 字符串 | SDK的appKey |
clientId | 字符串 | 客户端ID clientId |
clientSecret | 字符串 | 客户端秘钥 clientSecret |
enableLog | 布尔 | 是否打印MSmartSDK日志 |
serverHost | 字符串 | SDK的serverHost 服务器域名 |
httpSignSecret | 字符串 | SDK的httpSignSecret |
httpSignKey | 字符串 | SDK的httpSignKey |
SSLPinningMode | 布尔 | SDK的https网络请求加密 |
tokenInvalidErrorCode | 整形 | 设置Token失效的错误码 |
extras | 字典 | SDK的扩展字典 |
setLogInfo | 方法 | 设置登录成功后的信息:accessToken,dataKey,dataIv |
setCertificates | 方法 | 设置https请求证书 |
enableSSIDFormatWithFormatArray | 方法 | 设置sdk支持的ssid格式 |
# 43. 登陆
依赖获取应用级令牌接口,响应结果返回access_token。具体调用以接口文档为准。access_token过期后重新调用本接口获取。
[[MSInterface shareInstance] setAccessToken:@""];//调用服务器获取令牌接口获取accessToken
//刷新token代理
- (void)refreshToken:(MSRefreshTokenBlock)competion{
[[MSInterface shareInstance] setAccessToken:@""];//调用服务器获取令牌接口获取accessToken
competion(YES);
}
# 4.4 配网
设置模块固件二合一相关参数示例。
信道列表/功能集类型/地区ID/模块域名/ 模块端口号/ 国家码/时区
//设置模块固件二合一相关参数
+ (NSDictionary *)createFunctionSetDic{
//功能集参数
NSArray *channelList = @[@{kMSSDKConfigFirstChannelNumber:@"1", //@"firstChannelNum";起始信道号
kMSSDKConfigChannelCount:@"13", //@"channelCount";信道个数
kMSSDKConfigChannelMaxPower:@"27", //@"channelMaxPower";信道最大传输功率
kMSSDKConfigChannelDFSEnable:@"0"}, //@"channelDFSEnable";信道DFS使能
@{kMSSDKConfigFirstChannelNumber:@"36",
kMSSDKConfigChannelCount:@"4",
kMSSDKConfigChannelMaxPower:@"23",
kMSSDKConfigChannelDFSEnable:@"0"},
@{kMSSDKConfigFirstChannelNumber:@"52",
kMSSDKConfigChannelCount:@"4",
kMSSDKConfigChannelMaxPower:@"23",
kMSSDKConfigChannelDFSEnable:@"1"},
@{kMSSDKConfigFirstChannelNumber:@"149",
kMSSDKConfigChannelCount:@"5",
kMSSDKConfigChannelMaxPower:@"27",
kMSSDKConfigChannelDFSEnable:@"0"},
];
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
dic[kMSSDKConfigFunctionType] = @"1";//@"functionType";功能集类型
dic[kMSSDKConfigRegionID] = @"1";//@"regionID";地区ID
dic[kMSSDKConfigModuleServerDomain] = @"iot1.midea.com.cn"; //@"moduleServerDomain";模块域名。具体以业务方云端获取为准
dic[kMSSDKConfigModuleServerPort] = @"28443"; //@"moduleServerPort";模块端口号。具体以业务云端获取为准
dic[kMSSDKConfigCountryCode] = @"CN"; //@"countryCode";国家码
dic[kMSSDKConfigTimeZone] = @"8"; //@"timeZone";时区
dic[kMSSDKConfigChannelList] = channelList; //@"channelList";信道列表,以用户当前国家向云端询问获取(配旧设备时可缺省)
return [NSDictionary dictionaryWithDictionary:dic];
}
# 4.4.1 AP配网
(1)配网操作管理类MSDeviceConfigManager
@note there is a 90 seconds timeout. tip:wifi module is appliance can not support 5G wifi network.
@brief 开始配网
@param params 配网参数模型
@param configType 配网类型
@param progresscallback 回调配网步骤.
- MSmartDeviceConfigStepType apStep AP配网步骤回调
- MSBleConnectStateType bleStep 蓝牙配网步骤回调
@param completioncallback 完成回调配网信息
*/
- (void)startConfigureDevice:(MSDeviceConfigParams *__nonnull)params
configType:(MSDeviceConfigType)configType
progressCallback:(MSProgressCallback)progresscallback
completioncallback:(MSCompletionCallback)completioncallback;
startConfigureDevice:
AP配网MSDeviceConfigAP
。
(2)示例
- (void)startAddDevice:(id)sender {
MSDeviceApConfigParams *configParams = [[MSDeviceApConfigParams alloc] init];
configParams.deviceSSID = self.codeResultParamDic[@"deviceSSID"]; // 设备热点"midea_fd_0008"
configParams.routerSSID = self.codeResultParamDic[@"routerSSID"]; // wifissid “APP_TEST2”
configParams.routerBSSID = self.codeResultParamDic[@"routerBSSID"]; //wifiBssid “5E:6E:0A:0F:E2:41"
configParams.routerPwd = self.codeResultParamDic[@"routerPwd"]; //wifi密码
NSDictionary *extraDic = [MideaConfigDeviceTool createFunctionSetDic];//示例见3.1
configParams.countryCode = extraDic[kMSSDKConfigCountryCode];//@"countryCode" 国家代码(配旧设备时可缺省)
configParams.channelList = extraDic[kMSSDKConfigChannelList];//@"channelList" 信道列表,以用户当前国家向云端询问获取(配旧设备时可缺省)
configParams.timeZone = extraDic[kMSSDKConfigTimeZone];//@"timeZone"当前时区(配旧设备时可缺省)
configParams.functionType = extraDic[kMSSDKConfigFunctionType];//@"functionType"功能集类型functionType
configParams.moduleServerPort = extraDic[kMSSDKConfigModuleServerPort]; //@"moduleServerPort"; 模块端口号
configParams.moduleServerDomain = extraDic[kMSSDKConfigModuleServerDomain];//@"moduleServerDomain";模块域名
configParams.regionId = extraDic[kMSSDKConfigRegionID];//@"regionID" 地区ID(配旧设备时可缺省)
configParams.adsClusterId = self.codeResultParamDic[@"clusterId"];//app传递平台集群ID
[self.configManager startConfigureDevice:configParams configType:MSDeviceConfigAP progressCallback:^(MSmartDeviceConfigStepType apStep, MSBleConnectStateType bleStep) {
if(apStep == MSmartDeviceConfigStepTypeConnectSuc) {
self.flowLabel.text = @"连接设备成功...";
} else if(apStep == MSmartDeviceConfigStepTypeConnectFailed){
self.flowLabel.text = @"连接设备失败...";
} else if(apStep == MSmartDeviceConfigStepTypeStartCheckCloud) {
self.flowLabel.text = @"设备联网,开始广域网扫描...";
}
} completioncallback:^(NSError *_Nullable error, MSDevice * _Nullable device) {
//高性能模组标识
if (error.code == MSmartErrorCode_Suc) {
self.flowLabel.text = @"设备联网成功...";
} else if (error.code == MSmartErrorCode_WriteWifiInfoBy70_WrongPassword
|| error.code == (MSmartErrorCode_WriteWifiInfoBy70_WrongPassword + 110000)) {//密码错误
self.flowLabel.text = @"wifi密码错误...";
} else if (error.code == 110000 + MSmartErrorCode_CurrentWifi_UnableAccessCloud){
self.flowLabel.text = @"当前wifi无法访问云端,需连接指定wifi...";
}else{
self.flowLabel.text = [NSString stringWithFormat:@"%@",error.userInfo[NSLocalizedDescriptionKey]];
}
[self.startAddDeviceBtn setTitle:@"开始配网" forState:UIControlStateNormal];
}];
}
(3)AP配网相关可配置项说明
变量名 | 类型 | 说明 |
---|---|---|
configType | 枚举MSDeviceConfigType | 配网类型 |
progresscallback | block回调MSProgressCallback | 回调配网步骤. |
completioncallback | block回调MSCompletionCallback | 回调配网结果信息 |
MSDeviceBleConfigParams.peripheral | 对象CBPeripheral | 蓝牙外设信息 |
MSDeviceBleConfigParams.routerSSID | 字符串 | 路由器ssid |
MSDeviceBleConfigParams.routerBSSID | 字符串 | 路由器bssid |
MSDeviceBleConfigParams.routerPwd | 字符串 | 路由器密码 |
MSDeviceBleConfigParams.bleSecondConfigType | 枚举 MSBLEConfigNetMode | 二代蓝牙相关.0:预连接,1:连接,2:连接未授权 |
MSDeviceBleConfigParams.countryCode | 字符串 | 国家码 |
MSDeviceBleConfigParams.timeZone | 字符串 | 时区 |
MSDeviceBleConfigParams.channelList | 数组 | 信道列表,以用户当前国家向云端询问获取(配旧设备时可缺省) |
MSDeviceBleConfigParams.regionId | 字符串 | 地区ID |
MSDeviceBleConfigParams.moduleServerDomain | 字符串 | 模块服务器域名 |
MSDeviceBleConfigParams.moduleServerPort | 字符串 | 模块服务器端口号 |
MSDeviceBleConfigParams.functionType | 字符串 | 功能集类型 |
MSDeviceBleConfigParams.adsClusterId | 字符串 | 平台集群ID |
MSDeviceApConfigParams.deviceType | 字符串 | 设备类型 |
MSDeviceApConfigParams.routerSSID | 字符串 | 路由器ssid |
MSDeviceApConfigParams.routerBSSID | 字符串 | 路由器bssid |
MSDeviceApConfigParams.routerPwd | 字符串 | 路由器密码 |
MSDeviceApConfigParams.adsClusterId | 字符串 | 平台集群ID |
# 4.4.2 蓝牙配网
依赖扫描到蓝牙外设
(1)蓝牙扫描 MSBLEDeviceManager
/**
开始蓝牙扫描
@param filters 设置过滤数组
@param timeout 超时时间 设置为-1 为持续扫描
@param scanback 回调蓝牙外设.
- peripheral 聚合了蓝牙外设的广播信息 详细信息参考CBPeripheral+MSExtensions.h
*/
- (void)startScanWithFilter:(NSArray *__nonnull)filters
timeout:(NSTimeInterval)timeout
scanback:(MSBleScanCallback)scanback;
filters: 需根据业务实际情况设置过滤数组。过滤的依据是广播里的"kCBAdvDataLocalName"字段值和蓝牙名称。
NSDictionary *options = @{
CBCentralManagerRestoredStateScanOptionsKey:@(YES),
CBCentralManagerScanOptionAllowDuplicatesKey:@(YES),
CBCentralManagerOptionShowPowerAlertKey:@(NO)
};
[[MSBLEDeviceManager shareInstance] setMSBluetoothOptionsWithScanForPeripheralsWithOptions:options connectPeripheralWithOptions:nil scanForPeripheralsWithServices:nil discoverWithServices:nil discoverWithCharacteristics:nil];
@weakify(self);
[[MSBLEDeviceManager shareInstance] startScanWithFilter:@[@"midea"] timeout:timeInterval scanback:^(CBPeripheral * _Nullable peripheral) {
@strongify(self);
[self dealFindBlePeripheral:peripheral error:nil];
}];
扫描到外设蓝牙数据解析
NSData *data = peripheral.msAdvertiDictonary[@"kCBAdvDataManufacturerData"];
NSString *ssid = peripheral.msAdvertiDictonary[@"kCBAdvDataLocalName"];
NSDictionary *bleInfo = [MSmartBleTool bleAdvDicWithPeripheral:data bleName:ssid];
bleInfo字典字段说明
key | value类型 | 说明 |
---|---|---|
bleProtcolVersion | 字符串 | 蓝牙协议版本 |
moduleType | NSNumber | 蓝牙模块类型(2:wifi+ble 0:一代单ble 1:二代单蓝牙 3:二代双模蓝牙 4:所有) |
isWifiConfiged | @(NO)/@(YES) | wifi配置状态 |
wifiConfigEnable | @(NO)/@(YES) | WiFi配置功能是否可用 |
transportEnable | @(NO)/@(YES) | 是否支持BLE数据透传 |
deviceSSID | 字符串 | 设备热点名称 |
deviceType | 字符串 | 设备类型 |
deviceName | 字符串 | 同deviceSSID |
deviceSubType | 字符串 | 设备子类型 |
deviceSN8 | 字符串 | 设备sn8 |
bindState | @(NO)/@(YES) | BLE APP绑定状态 |
isAuthority | @(NO)/@(YES) | BLE (二代单蓝牙用于app判断模组是否确权了,跳过配网指引)单蓝牙模组为前确权模组 |
affiliatedEnable | @(NO)/@(YES) | //是否支持网桥挂靠 |
otaEnable | @(NO)/@(YES) | 是否支持BLE OTA |
functionSetEnable | @(NO)/@(YES) | 是否海内外统一模组,0:非统一;1:统一 |
regionIDEnable | @(NO)/@(YES) | 是否支持地区ID |
supportBind | @(NO)/@(YES) | 是否支持绑定功能 |
deviceMac | 字符串 | 设备Mac |
errorCode | 字符串 | 错误码 |
referenceRSSI | NSNumber | RSSI |
(2)配网操作管理类MSDeviceConfigManager
@note there is a 90 seconds timeout. tip:wifi module is appliance can not support 5G wifi network.
@brief 开始配网
@param params 配网参数模型
@param configType 配网类型
@param progresscallback 回调配网步骤.
- MSmartDeviceConfigStepType apStep AP配网步骤回调
- MSBleConnectStateType bleStep 蓝牙配网步骤回调
@param completioncallback 完成回调配网信息
*/
- (void)startConfigureDevice:(MSDeviceConfigParams *__nonnull)params
configType:(MSDeviceConfigType)configType
progressCallback:(MSProgressCallback)progresscallback
completioncallback:(MSCompletionCallback)completioncallback;
startConfigureDevice:
AP配网MSDeviceConfigBluetooth
。
(3)示例
- (void)startBleConnect {
DDLogDeviceInfo(@"二代蓝牙配网参数 : deviceMac = %@, routerBSSID = %@, routerSSID = %@, routerPassword = %@, familyId = %@, connectMode = %lu, \n Peripheral = %@", self.deviceMac, self.wifiBssid, self.wifiSsid, self.wifiPassword, self.familyId, (unsigned long)self.mode, self.peripheral );
MSDeviceBleConfigParams *params = [[MSDeviceBleConfigParams alloc] init];
params.peripheral = self.peripheral; //
params.routerSSID = self.wifiSsid; // wifissid “APP_TEST2”
params.routerPwd =self.wifiPassword; //wifi密码
params.routerBSSID = self.wifiBssid;//wifiBssid “5E:6E:0A:0F:E2:41"
params.bleSecondConfigType = self.mode; // MSBLEConfigNetMode_Connection
NSDictionary *tmpDic = [MideaConfigDeviceTool createFunctionSetDic];//示例见3.1
//国家码,信道数据,地区ID
params.countryCode = tmpDic[kMSSDKConfigCountryCode]; //@"countryCode" 国家代码(配旧设备时可缺省)
params.timeZone = tmpDic[kMSSDKConfigTimeZone];//@"timeZone"当前时区(配旧设备时可缺省)
params.channelList = tmpDic[kMSSDKConfigChannelList];//@"channelList" 信道列表,以用户当前国家向云端询问获取(配旧设备时可缺省)
params.regionId = tmpDic[kMSSDKConfigRegionID];//@"regionID" 地区ID(配旧设备时可缺省)
params.moduleServerDomain = tmpDic[kMSSDKConfigModuleServerDomain];//@"moduleServerDomain";模块域名
params.moduleServerPort = tmpDic[kMSSDKConfigModuleServerPort];//@"moduleServerPort"; 模块端口号
params.functionType = tmpDic[kMSSDKConfigFunctionType];//@"functionType"功能集类型functionType
params.adsClusterId = [NSString stringWithFormat:@"%@",[MideaUserManager shareInstance].currentUser.clusterId];//app传递平台集群ID
@weakify(self);
[[MSDeviceConfigManager shareInstance] startConfigureDevice:params configType:MSDeviceConfigBluetooth progressCallback:^(MSmartDeviceConfigStepType apStep, MSBleConnectStateType bleStep) {
@strongify(self);
switch (self.bleStep) {
case MSBleConnectStepTypeStartConfig: // 6(联网准备)
break;
case MSBleConnectStepTypeFindingDeviceInCloud: //11(设备联网)
break;
case MSBleConnectStepTypeFindDeviceInCloudSuccess: //12
break;
default:
break;
}
} completioncallback:^(NSError * _Nullable error, MSDevice * _Nullable device) {
DDLogDeviceInfo(@"二代蓝牙配网结果--------------------------------------------------------------------------%@--%@", error, [device mj_JSONObject]);
if(error.userInfo){
}
if (error.code == 0) {
[self activeDevice:device];//激活设备
}
else{
if (error.code == MSmartErrorCode_Ble_WriteWifiInfo_WrongPassword
|| error.code == (MSmartErrorCode_Ble_WriteWifiInfo_WrongPassword + 110000)) {//密码错误
}
}
}];
}
(4)蓝牙配网相关可配置项说明
@interface MSDeviceBleConfigParams : MSDeviceConfigParams
///路由器ssid
@property(nonatomic, copy,nullable) NSString *routerSSID;
///路由器密码
@property(nonatomic, copy,nullable) NSString *routerPwd;
///路由器bssid
@property(nonatomic, copy,nullable) NSString *routerBSSID;
///设备sn
@property(nonatomic, copy,nullable) NSString *deviceSN;
///设备SSID
@property(nonatomic, copy,nullable) NSString *deviceSSID;
///设备密码
@property(nonatomic, copy,nullable) NSString *devicePassword;
///设备类型
@property(nonatomic, copy,nullable) NSString *deviceType;
///设备子类型
@property(nonatomic, copy,nullable) NSString *deviceSubtype;
///设备ID
@property(nonatomic, copy,nullable) NSString *deviceId;
///设备名称
@property(nonatomic, copy,nullable) NSString *deviceName;
///随机数
@property(nonatomic, copy,nullable) NSString *randomNum;
///1:非open模式,0:open模式
@property(nonatomic, copy,nullable) NSString *securityType;
#pragma mark 蓝牙相关
///蓝牙外设信息
@property(nonatomic, strong, nullable) CBPeripheral *peripheral;
///蓝牙直连控制绑定码
@property(nonatomic, copy,nullable) NSString *bindCode;
///蓝牙直连控制类型
@property(nonatomic, assign) MSBLEDirectConnectionType bleDirectConnectionType;
///二代蓝牙相关
@property(nonatomic, assign) MSBLEConfigNetMode bleSecondConfigType;
/// 蓝牙绑定绑定码下发动作类型
@property(nonatomic, assign) MSBLEBindActionType bleBindActionType;
///蓝牙配网模式
@property (nonatomic ,assign,readwrite) MSBLEType bleType;
///地区ID
@property(nonatomic, copy,nullable) NSString *regionId;
///模块服务器域名
@property(nonatomic, copy,nullable) NSString *moduleServerDomain;
///模块服务器端口号
@property(nonatomic, copy,nullable) NSString *moduleServerPort;
///国家码
@property(nonatomic, copy,nullable) NSString *countryCode;
///时区
@property(nonatomic, copy,nullable) NSString *timeZone;
///功能集类型
@property(nonatomic, copy,nullable) NSString *functionType;
///信道列表
@property(nonatomic, strong,nullable) NSArray *channelList;
///平台集群ID
@property (nonatomic, copy) NSString *adsClusterId;
///ads域名
@property (nonatomic, copy) NSString *adsDomain;
///ads端口号
@property (nonatomic, copy) NSString *adsPort;
///后确权使能
@property(nonatomic, assign) BOOL authEnable;
///固定信道使能
@property(nonatomic, assign) BOOL channelEnable;
///设置国家码使能
@property(nonatomic, assign) BOOL countryCodeEnable;
///功能集使能
@property(nonatomic, assign) BOOL functionSetEnable;
///地区ID使能
@property(nonatomic, assign) BOOL regionIdEnable;
///支持绑定功能
@property (nonatomic, assign) BOOL supportBind;
///恢复配网相关 恢复配网类型
@property(nonatomic, assign) MSConfigContinueType continueType;
///AP/蓝牙校验密码错误使能
@property(nonatomic, assign) BOOL checkPasswordEnable;
# 4.5 错误码
typedef NS_ENUM(NSInteger, MSmartErrorCode)
{
MSmartErrorCode_Suc = 0,//成功
MSmartErrorCode_FindDeviceInLANTimeOut = 4000,//局域网未发现设备 No device found
MSmartErrorCode_QRCodeInvalid = 4001,//二维码错误 Invalid QRCode
// MSmartErrorCode_HomeWifiNotChange = 4002,//手机未切换至配网的目标wifi Failed to change Wi-Fi network
MSmartErrorCode_DeviceSSIDInvalid = 4006,//待配网的设备热点不符合热点格式 Unknown Device, the Wi-Fi AP SSID must start with fixed format
MSmartErrorCode_APDisConnect = 4007,//未与设备AP热点建立起连接 Failed to connect to Midea Appliance
MSmartErrorCode_FindDeviceTimeOutInAPMode = 4011,//配网第一步在AP模式下超时时间内未发现设备 Failed to connect to Midea Appliance
MSmartErrorCode_HomeWifiBssidInvalid = 4012,//家庭路由wifi bssid不合法
MSmartErrorCode_FindDeviceTimeOutInSTAMode = 4013,//配网在STA模式下超时时间内未发现设备 Failed to connect to Midea Appliance
MSmartErrorCode_WriteTempId_TimeOut = 4014,//设置临时id应答超时
MSmartErrorCode_WriteTempId_ReturnFailed = 4015,//设置临时id返回值错误
MSmartErrorCode_GetWifiListFailed = 4019,//获取周边wifi列表失败
MSmartErrorCode_WriteWifiInfoBy70_WrongSSID = 4020,//新模块设置ssid密码环节ssid长度有误
MSmartErrorCode_WriteWifiInfoBy70_WrongPwdLength = 4021,//新模块设置ssid密码环节pwd长度有误
MSmartErrorCode_WriteWifiInfoBy70_WrongBSSID = 4022,//新模块设置ssid密码环节bssid长度有误
MSmartErrorCode_WriteWifiInfoBy70_TimeOut = 4023,//新模块设置ssid密码环节超时无应答
MSmartErrorCode_WriteWifiInfoBy68_ReturnFailed = 4024,//旧模块设置ssid密码环节失败
MSmartErrorCode_WriteWifiInfoBy68_TimeOut = 4025,//旧模块设置ssid密码环节超时无应答
MSmartErrorCode_SwitchSTAFailed = 4029,//旧模块由AP切换至STA模式失败
MSmartErrorCode_DisConnectHomeWifi = 4030,//快连模式当前连接的wifi不是家庭wifi
MSmartErrorCode_FastConnectFindDeviceTimeOut = 4031,//快连模式在超时时间内未发现设备(局域网或者云端发现)
MSmartErrorCode_ConfigVersionNonsupport = 4032,//当前不支持该模块版本的配网,需升级SDK
MSmartErrorCode_Ble_GetPublicKeyFailed = 4051,//蓝牙配网,秘钥协商获取公钥失败
MSmartErrorCode_Ble_CheckKeyFailed = 4052,//蓝牙配网,秘钥协商校验秘钥失败
MSmartErrorCode_Ble_WriteWifiInfoBy69_UnknownReply = 4053,//蓝牙配网,发送网络信息失败未知回复
MSmartErrorCode_Ble_WriteTokenFailed = 4055,//蓝牙配网,设置token失败
MSmartErrorCode_Ble_FindSSIDFailed = 4056,//蓝牙配网,找不到ssid
MSmartErrorCode_Ble_ConnectWifiFailed = 4057,//一代蓝牙,连接路由器失败
MSmartErrorCode_Ble_ParseDNSFailed = 4058,
MSmartErrorCode_Ble_ConnectCloudTCPFailed = 4059,
MSmartErrorCode_Ble_HeartbeatTimeOut = 4060,
MSmartErrorCode_Ble_ConnectCloudSSTFailed = 4061,
MSmartErrorCode_Ble_ModuleActiveRestart = 4062,
MSmartErrorCode_Ble_ModulePassiveRestart = 4063,
MSmartErrorCode_Ble_ConnectCloudSDKAuthFailed = 4064,
MSmartErrorCode_Ble_ConnectCloudClosed = 4065,
MSmartErrorCode_Ble_ConnectCloudSendDataFailed = 4066,
MSmartErrorCode_Ble_UnEnable = 4079,//蓝牙配网,蓝牙开关未开启(蓝牙不可用)
MSmartErrorCode_Ble_NotFindBLEDevice = 4080,//蓝牙配网,在超时时间内未发现目标蓝牙外设
MSmartErrorCode_Ble_NotScan = 4081,//蓝牙配网,未扫描获取蓝牙外设
MSmartErrorCode_Ble_Unknow_Error = 4082,//蓝牙未知错误
MSmartErrorCode_Ble_ConnectPeripheralFail = 4085,//蓝牙配网,连接外设失败
MSmartErrorCode_Ble_DiscoverServiceFail = 4086,//蓝牙配网,发现服务失败
MSmartErrorCode_Ble_DiscoverCharacteristicsFail = 4087,//蓝牙配网,发现特征失败
MSmartErrorCode_Ble_CheckStatusFail = 4088,//蓝牙配网,查询状态失败
MSmartErrorCode_Ble_Timeout = 4089,//蓝牙配网,超时
MSmartErrorCode_WriteWifiInfoBy70_WrongPassword = 4090,//新模块设置ssid密码环节路由器密码错误
//二代蓝牙新增错误码
MSmartErrorCode_Ble_WriteWifiInfo_WrongPassword = 4094,//二代蓝牙配网,模组返回路由密码错误
MSmartErrorCode_Ble_WriteWifiInfoBy69_ParamDif = 4096,//发送wifi信息,模组回复参数错误
MSmartErrorCode_Ble_WriteWifiInfoBy69_ParamWrong = 4097,//发送wifi信息,模组回复参数与已连接参数不一致
MSmartErrorCode_Ble_RouterRSSIWeak = 4098,//模块上报连接路由失败,信号弱
MSmartErrorCode_Ble_DHCPFailed = 4099,//模块上报DHCP失败
MSmartErrorCode_Ble_RouterAuthError = 4100,//模块上报路由器认证错误
MSmartErrorCode_Ble_RouterAssociationError = 4101,//模块上报路由器关联错误
MSmartErrorCode_Ble_LoginServerTimeOut = 4115,//模块上报服务器登录超时
MSmartErrorCode_Ble_Error0x11 = 4116,//APP发送的信道在1~13之间,且SSID包含有“5G/-5G/_5G”等有5G标识的相关字符集,WiFi模块扫描路由器AP失败。
MSmartErrorCode_Ble_Error0x12 = 4117,//APP发送的信道在1-13之间,且SSID没有包含“5G/-5G/_5G”相关字符集,wifi模块扫描路由器AP失败。
MSmartErrorCode_Ble_Error0x13 = 4118,//APP发送的信道是0,且SSID中没有包含“5G/-5G/_5G”相关字符集wifi模块扫描路由器AP失败。
MSmartErrorCode_Ble_Error0x14 = 4119,//APP发送的信道是>13,且SSID中没有包含“5G/-5G/_5G”相关字符集wifi模块扫描路由器AP失败
MSmartErrorCode_Ble_Error0x15 = 4120,//APP发送的信道>13,且SSID包含有“5G/-5G/_5G”等有5G标识的相关字符集,wifi模块扫描路由器AP失败
MSmartErrorCode_Ble_Error0x16 = 4121,//APP发送的信道是0,且SSID包含有“5G/-5G/_5G”等有5G标识的相关字符集,wifi模块扫描路由器AP失败。
MSmartErrorCode_Ble_FamilyId_Is_Null = 4170,//网桥子设备配网,业务层没有传家庭id
MSmartErrorCode_Ble_DeviceGetFail = 4171,//网桥子设备配网,云端获取deviceId失败
MSmartErrorCode_Ble_SendDeviceIdAndFamilyIdFail = 4172,//网桥子设备配网,发送deviceId给模组失败
MSmartErrorCode_CurrentWifi_UnableAccessCloud = 4122,//当前的wifi无法访问云端
MSmartErrorCode_Ble_CountryCodeError = 4123,//蓝牙配网国家码错误
MSmartErrorCode_Ble_TimezoneError = 4124,//蓝牙配网时区错误
MSmartErrorCode_Ble_ChannelListError = 4125,//蓝牙配网信道表错误
MSmartErrorCode_Ble_InvalidPeripheral = 4126,//蓝牙配网,当前蓝牙外设不支持
MSmartErrorCode_WriteWifiInfoBy70_CountryCodeError = 4127,//AP配网国家码错误
MSmartErrorCode_WriteWifiInfoBy70_TimezoneError = 4128,//AP配网时区错误
MSmartErrorCode_WriteWifiInfoBy70_ChannelListError = 4129,//AP配网信道表错误
MSmartErrorCode_WriteWifiInfoBy70_UnKnown = 4135,//AP配网模块应答未知错误
MSmartErrorCode_WriteWifiInfoBy70_ModuleServerDomainError = 4136,//AP配网,模块服务器域名错误
MSmartErrorCode_WriteWifiInfoBy70_ModuleServerPortError = 4137,//AP配网,模块服务器端口号错误
MSmartErrorCode_WriteWifiInfoBy70_RegionIDError = 4138,//AP配网,地区ID错误
MSmartErrorCode_WriteWifiInfoBy70_FunctionTypeError = 4139,//AP配网,功能集类型错误
MSmartErrorCode_Ble_ModuleServerDomainError = 4140,//蓝牙配网模块服务器域名错误
MSmartErrorCode_Ble_ModuleServerPortError = 4141,//蓝牙配网模块服务器端口号错误
MSmartErrorCode_Ble_RegionIDError = 4142,//蓝牙配网区域ID错误
MSmartErrorCode_Ble_FunctionTypeError = 4143,//蓝牙配网功能集类型错误
MSmartErrorCode_Ble_UnSupport5GWIFIError = 4144,//蓝牙配网模块回复不支持5G WiFi
MSmartErrorCode_Ble_AlreadyBind = 4145,//蓝牙配网模块回复设备已被绑定
MSmartErrorCode_Ble_ReceiveDataError = 4146,//蓝牙配网模块回复数据接收失败
MSmartErrorCode_Ble_BindAndVerifyCommondError = 4147,//蓝牙绑定校验失败
MSmartErrorCode_Ble_QueryAuthFailed= 4148,//蓝牙查询确权状态失败
MSmartErrorCode_Ble_SetAuthFailed = 4149,//蓝牙设置确权状态失败
MSmartErrorCode_Ble_ReportAuthFailed = 4150,//蓝牙上报设备确权状态失败
///ap ADS
MSmartErrorCode_NewSetPwdAndSSID_ADSClusterIdCodeError = 4160,//ADS集群ID错误
MSmartErrorCode_NewSetPwdAndSSID_ADSDNSAnalysisCodeError = 4161,//ADS DNS解析错误
MSmartErrorCode_NewSetPwdAndSSID_ADSTCPConnectError = 4162,//ADS Tcp连接失败
MSmartErrorCode_NewSetPwdAndSSID_ADSDomonError = 4163,//请求接入层域名错误
///蓝牙 ADS
MSmartErrorCode_NewSetPwdAndSSID_BLE_ADSClusterIdCodeError = 4164,//ADS集群ID错误
MSmartErrorCode_NewSetPwdAndSSID_BLE_ADSDNSAnalysisCodeError = 4165,//ADS DNS解析错误
MSmartErrorCode_NewSetPwdAndSSID_BLE_ADSTCPConnectError = 4166,//ADS Tcp连接失败
MSmartErrorCode_NewSetPwdAndSSID_BLE_ADSDomonError = 4167,//请求接入层域名错误(69)
MSmartErrorCode_BLE_ADSDomonError = 4174,//请求接入层域名错误(0D)
MSmartErrorCode_BLE_ADS_ID_Error = 4173,//模组ADS ID错误
MSmartErrorCode_BLE_Router_RSSI_Week = 4175,//模组反馈路由信号太弱
MSmartErrorCode_BLE_Domain_TimeOut = 4176,//模组连上路由器之后,登录云端失败
//OTA
// MSmartErrorCode_ModuleUpdateFailed = 5000,//待修复wifi模块升级失败,超时 Update module failed
// MSmartErrorCode_ModuleUpdate_Unknown = 5001,//升级模块失败,未知消息 Update module unknow message
// MSmartErrorCode_ModuleUpdate_UnfindFile = 5002,//升级模块失败,升级文件未找到 Do not find file
// MSmartErrorCode_ModuleUpdate_DownloadFailed = 5003,//升级模块失败,下载错误 Download failed
// MSmartErrorCode_ModuleUpdate_CheckSum = 5004,//升级模块失败,升级Image文件checksum错误 CheckSum failed
// MSmartErrorCode_ModuleUpdate_TFTPTimeout = 5005,//升级模块失败,TFTP server响应超时 Tftp server is time out
// MSmartErrorCode_ModuleUpdate_WrongName = 5006,//升级模块失败,错误的文件名 File's name is wrong
// MSmartErrorCode_ModuleUpdate_Protocol = 5007,//升级模块失败,协议不支持 The protocol is not supported
// MSmartErrorCode_ModuleUpdate_Index = 5008,//升级模块失败,无效的分区索引 Wrong index
// MSmartErrorCode_ModuleUpdate_ImageHDR = 5009,//升级模块失败,IMAGE_HDR错误 Image_hdr wrong
// MSmartErrorCode_ModuleUpdate_RestarFailed = 5010,//重启模块失败 Restart module failed
// MSmartErrorCode_DeviceModuleInfoFailed = 5011,//获取设备类型失败 Get module info failed
// MSmartErrorCode_ModuleUpdate_NotInLan = 5012,//修复有问题模块环节局域网中未找到设备
// MSmartErrorCode_ModuleUpdate_SetDeviceTempId = 5013,//修复有问题模块环节设置临时id失败
//蓝牙 OTA
MSmartErrorCode_Ble_OTA_GetModuleVersionFailed = 5014,//升级模块,获取模块版本失败
MSmartErrorCode_Ble_OTA_RestartFailed = 5101,//蓝牙重启失败
MSmartErrorCode_Ble_OTA_CheckBinFailed = 5102,//OTA检查bin文件失败
MSmartErrorCode_Ble_OTA_QueryStatusFailed = 5103,//OTA查询状态失败
MSmartErrorCode_Ble_OTA_QueryBootFailed = 5104,//OTA查询Boot版本号失败
MSmartErrorCode_Ble_OTA_EraseFlashFailed = 5105,//OTA擦除Flash失败
MSmartErrorCode_Ble_OTA_RequestFlashFailed = 5106,//OTA请求Flash失败
MSmartErrorCode_Ble_OTA_WriteFlashFailed = 5107,//OTA写入Flash失败
MSmartErrorCode_Ble_OTA_CheckFlashFailed = 5108,//OTA校验Flash失败
MSmartErrorCode_Ble_OTA_UpgradeFailed = 5109,//OTA升级失败
//透传相关
MSmartErrorCode_Transport_ResultIllegal = 6000,//透传返回数据解密失败,消息体不合法
MSmartErrorCode_DevProtocolCmdError = 6001,//lua脚本获取指令失败 Get command fail
MSmartErrorCode_Transport_TimeOut = 6002,//透传超时,即设备未应答
MSmartErrorCode_LuaFileEXEInternalFailed = 6003,//lua脚本解析指令异常(指令数据格式异常)
// MSmartErrorCode_DeviceUnAuthentication = 6004,//设备未确权
MSmartErrorCode_DeviceIdInvalid = 6006,//设备ID错误(家电不存在) DeviceId Error, Device not exists
MSmartErrorCode_LuaFileDecryptFailed = 6015,//lua脚本解密失败
MSmartErrorCode_LuaFileUrlNull = 6016,//云端lua版本管理接口返回url为空
MSmartErrorCode_LuaFileMD5Null = 6017,//云端lua版本管理接口返回md5为空
MSmartErrorCode_LuaFileMD5CheckFailed = 6018,//下载的lua脚本md5校验不通过
MSmartErrorCode_LuaByteToJsonFailed = 6019,//使用Lua将二进制转JSON失败
MSmartErrorCode_LuaJsonToByteFailed = 6020,//使用Lua将JSON转二进制失败
MSmartErrorCode_LuaGetInfoFailed = 6022,//获取Lua信息失败
MSmartErrorCode_LuaFileDownLoadFailed = 6023,//下载Lua失败
//设备状态查询错误
MSmartErrorCode_CloundRandomCodeFailed = 1321,//云端发现sn在线,但随机数未上报成功
MSmartErrorCode_CloundDeviceOffLine = 1307,//云端查询设备不在线
MSmartErrorCode_BLELANONLINE = 4168 ,//蓝牙配网,局域网在线,云端查找sn和随机数都没找到
MSmartErrorCode_FINDLANONLINE = 4169,//AP配网,局域网在线,云端查找sn和随机数都没找到
//内部错误
MSmartErrorCode_ParamsInvalid = 8000,//参数不合法
MSmartErrorCode_BLEOTAError = 8002,//蓝牙 OTA 升级中出错 BLE OTA error
//网络请求
MSmartErrorCode_ServerBackFormatWrong = 9000,//服务器返回数据格式异常
MSmartErrorCode_NetCancel = 9001,//网络请求取消
MSmartErrorCode_NetSysTemError = 9002,//网络请求异常
MSmartErrorCode_NetWorkError = 9003,//无法连接网络 Network is not available
};