为什么:并入宿主项目后须与宿主日志体系一致——宿主统一用 pkg/logger 初始化 logrus 全局实例并直接 logrus.Xxx 包级调用;包一层 Logger 接口会让 logrus 的 caller 定位(报告调用文件:行号)失准。 改动: - 删除 logger 包(Logger 接口 / Default / SetDefault,默认本就是 logrus.StandardLogger) - 11 个结构体移除 lgr logger.Logger 字段、SetLogger 方法及构造中的 lgr 初始化 - 192 处 lgr.Xxxf 调用改为 logrus.Xxxf,日志消息文本保持不变 - xiaomi.Client 移除 Logger() 访问器,air_conditioner 回读日志去掉判空调用直连 logrus - miot_i18n.go 两处标准库 log.Printf 改为 logrus.Errorf,统一日志出口 - go.mod:logrus 从 indirect 提升为直接依赖 - goimports/goformat 全树规范化:此前部分文件未 gofmt(单行 if、对齐),本次顺带 格式化,纯空白/换行变化,无逻辑改动 验证:go build / go vet / go test ./... 全部通过(bridge、miot、xiaomi、devices、specs)
143 lines
7.6 KiB
Go
143 lines
7.6 KiB
Go
package miot
|
|
|
|
// MIoT 云端错误码
|
|
// 来源: https://iot.mi.com/v2/new/doc/help-support/faq/spec/error-code
|
|
const (
|
|
ErrCodeOK = -702000000 // OK
|
|
ErrCodeAccept = -702010000 // accept
|
|
ErrCodeProcessing = -702022036 // 操作正在处理中
|
|
ErrCodeBadRequest = -704000000 // 错误的请求
|
|
ErrCodeBadBody = -704000001 // 错误的请求体
|
|
ErrCodeScheduleOnlyMi = -704001000 // 定时只支持小米设备
|
|
ErrCodeDeviceError = -704002000 // 设备错误(通用)
|
|
ErrCodeUnauthenticated = -704010000 // 未认证
|
|
ErrCodeTokenExpired = -704012901 // token 不存在或过期
|
|
ErrCodeTokenInvalid = -704012902 // token 非法
|
|
ErrCodeAuthExpired = -704012903 // 授权过期
|
|
ErrCodeNotAuthToXiaoAi = -704012904 // 设备未授权控制能力给小爱
|
|
ErrCodeDeviceUnbound = -704012905 // 设备未绑定
|
|
ErrCodeAuthFailed = -704012906 // 认证失败
|
|
ErrCodeIRNotSupported = -704013101 // 红外设备不支持此操作
|
|
ErrCodePropertyNotRead = -704030013 // 属性不可读
|
|
ErrCodePropertyNotWrite = -704030023 // 属性不可写
|
|
ErrCodePropertyNotNotify = -704030033 // 属性不可上报
|
|
ErrCodeTooFrequent = -704030992 // 请求过于频繁
|
|
ErrCodeServiceNotFound = -704040002 // 服务不存在
|
|
ErrCodePropertyNotFound = -704040003 // 属性不存在
|
|
ErrCodeEventNotFound = -704040004 // 事件不存在
|
|
ErrCodeMethodNotFound = -704040005 // 方法不存在
|
|
ErrCodeFeatureOffline = -704040999 // 功能未上线
|
|
ErrCodeCloudNotFound = -704041007 // cloud not found
|
|
ErrCodeDeviceNotFound2 = -704042001 // 未找到设备
|
|
ErrCodeSceneNotFound = -704042009 // 未找到场景
|
|
ErrCodeSceneError = -704042010 // 触发场景异常
|
|
ErrCodeDeviceOffline = -704042011 // 设备离线
|
|
ErrCodeSceneNoPermission = -704042012 // 场景无权限
|
|
ErrCodeSpecNotFound = -704044006 // 未找到功能定义
|
|
ErrCodeCannotExecute = -704053100 // 无法执行此操作
|
|
ErrCodeCameraSleeping = -704053101 // 摄像机休眠中
|
|
ErrCodeTimeout = -704083036 // 操作超时
|
|
ErrCodeDeviceNotFound = -704090001 // 未找到设备
|
|
ErrCodeInvalidID = -704220008 // 非法的 ID
|
|
ErrCodeInvalidUID = -704220009 // 非法的 uid
|
|
ErrCodeInvalidSubID = -704220010 // 非法的订阅 ID
|
|
ErrCodeActionParamCount = -704220025 // 方法输入参数数量不匹配
|
|
ErrCodeActionParamError = -704220035 // 方法输入参数错误
|
|
ErrCodeInvalidPropValue = -704220043 // 属性值不正确
|
|
ErrCodeEventParamCount = -704222034 // 事件参数数量不匹配
|
|
ErrCodeActionOutParamError = -704222035 // 方法输出参数错误
|
|
ErrCodeOpenPlatformError = -705001000 // 开放平台服务器内部错误
|
|
ErrCodeSpecServerError = -705004000 // MIoT Spec 服务器内部错误
|
|
ErrCodeSubIDEncodeError = -705005000 // 订阅 ID 编码错误
|
|
ErrCodeNotifyError = -705006000 // notify error
|
|
ErrCodeReadPropFailed = -705201013 // 读属性失败
|
|
ErrCodeActionFailed = -705201015 // 方法执行失败
|
|
ErrCodeWritePropFailed = -705201023 // 写属性失败
|
|
ErrCodeReportPropFailed = -705201033 // 上报属性失败
|
|
ErrCodeInvalidSpec = -705204006 // 非法的功能定义
|
|
ErrCodeInstanceNotLoaded = -705204007 // 实例未加载
|
|
ErrCodeRemoteServiceError = -706010002 // 远程服务异常
|
|
ErrCodeMIoTError = -706010004 // MIoT 错误
|
|
ErrCodePropCacheFailed = -706010005 // 属性缓存失败
|
|
ErrCodeThirdPartyError = -706012000 // 三方云服务器内部错误
|
|
ErrCodeThirdReadPropFailed = -706012013 // 三方云读属性失败
|
|
ErrCodeThirdActionFailed = -706012015 // 三方云方法执行失败
|
|
ErrCodeThirdWritePropFailed = -706012023 // 三方云写属性失败
|
|
ErrCodeThirdReportPropFailed = -706012033 // 三方云上报属性失败
|
|
ErrCodeThirdSubFailed = -706012043 // 三方云订阅失败
|
|
)
|
|
|
|
// errDescriptions 错误码说明
|
|
var errDescriptions = map[int]string{
|
|
ErrCodeOK: "OK",
|
|
ErrCodeAccept: "accept",
|
|
ErrCodeProcessing: "操作正在处理中",
|
|
ErrCodeBadRequest: "错误的请求",
|
|
ErrCodeBadBody: "错误的请求体",
|
|
ErrCodeScheduleOnlyMi: "定时只支持小米设备",
|
|
ErrCodeDeviceError: "设备错误(通用)",
|
|
ErrCodeUnauthenticated: "未认证",
|
|
ErrCodeTokenExpired: "token 不存在或过期",
|
|
ErrCodeTokenInvalid: "token 非法",
|
|
ErrCodeAuthExpired: "授权过期",
|
|
ErrCodeNotAuthToXiaoAi: "设备未授权控制能力给小爱",
|
|
ErrCodeDeviceUnbound: "设备未绑定",
|
|
ErrCodeAuthFailed: "认证失败",
|
|
ErrCodeIRNotSupported: "红外设备不支持此操作",
|
|
ErrCodePropertyNotRead: "属性不可读",
|
|
ErrCodePropertyNotWrite: "属性不可写",
|
|
ErrCodePropertyNotNotify: "属性不可上报",
|
|
ErrCodeTooFrequent: "请求过于频繁",
|
|
ErrCodeServiceNotFound: "服务不存在",
|
|
ErrCodePropertyNotFound: "属性不存在",
|
|
ErrCodeEventNotFound: "事件不存在",
|
|
ErrCodeMethodNotFound: "方法不存在",
|
|
ErrCodeFeatureOffline: "功能未上线",
|
|
ErrCodeCloudNotFound: "cloud not found",
|
|
ErrCodeDeviceNotFound2: "未找到设备",
|
|
ErrCodeSceneNotFound: "未找到场景",
|
|
ErrCodeSceneError: "触发场景异常",
|
|
ErrCodeDeviceOffline: "设备离线",
|
|
ErrCodeSceneNoPermission: "场景无权限",
|
|
ErrCodeSpecNotFound: "未找到功能定义",
|
|
ErrCodeCannotExecute: "无法执行此操作",
|
|
ErrCodeCameraSleeping: "摄像机休眠中",
|
|
ErrCodeTimeout: "操作超时",
|
|
ErrCodeDeviceNotFound: "未找到设备",
|
|
ErrCodeInvalidID: "非法的 ID",
|
|
ErrCodeInvalidUID: "非法的 uid",
|
|
ErrCodeInvalidSubID: "非法的订阅 ID",
|
|
ErrCodeActionParamCount: "方法输入参数数量不匹配",
|
|
ErrCodeActionParamError: "方法输入参数错误",
|
|
ErrCodeInvalidPropValue: "属性值不正确",
|
|
ErrCodeEventParamCount: "事件参数数量不匹配",
|
|
ErrCodeActionOutParamError: "方法输出参数错误",
|
|
ErrCodeOpenPlatformError: "开放平台服务器内部错误",
|
|
ErrCodeSpecServerError: "MIoT Spec 服务器内部错误",
|
|
ErrCodeSubIDEncodeError: "订阅 ID 编码错误",
|
|
ErrCodeNotifyError: "notify error",
|
|
ErrCodeReadPropFailed: "读属性失败",
|
|
ErrCodeActionFailed: "方法执行失败",
|
|
ErrCodeWritePropFailed: "写属性失败",
|
|
ErrCodeReportPropFailed: "上报属性失败",
|
|
ErrCodeInvalidSpec: "非法的功能定义",
|
|
ErrCodeInstanceNotLoaded: "实例未加载",
|
|
ErrCodeRemoteServiceError: "远程服务异常",
|
|
ErrCodeMIoTError: "MIoT 错误",
|
|
ErrCodePropCacheFailed: "属性缓存失败",
|
|
ErrCodeThirdPartyError: "三方云服务器内部错误",
|
|
ErrCodeThirdReadPropFailed: "三方云读属性失败",
|
|
ErrCodeThirdActionFailed: "三方云方法执行失败",
|
|
ErrCodeThirdWritePropFailed: "三方云写属性失败",
|
|
ErrCodeThirdReportPropFailed: "三方云上报属性失败",
|
|
ErrCodeThirdSubFailed: "三方云订阅失败",
|
|
}
|
|
|
|
// ErrDesc 返回错误码的中文说明。
|
|
func ErrDesc(code int) string {
|
|
if s, ok := errDescriptions[code]; ok {
|
|
return s
|
|
}
|
|
return "未知错误"
|
|
}
|