156 lines
6.2 KiB
Go
156 lines
6.2 KiB
Go
package rpc
|
|
|
|
// 结果Code
|
|
type ResultCode uint16
|
|
|
|
const (
|
|
// 响应Code 正常
|
|
ResultCodeSuccess ResultCode = 0
|
|
// 响应Code 失败
|
|
ResultCodeError ResultCode = 10000
|
|
// 响应Code 参数异常
|
|
ResultCodeParamError ResultCode = 10001
|
|
// 响应Code 操作失败
|
|
ResultCodeActionFail ResultCode = 10002
|
|
// 响应Code 数据不存在
|
|
ResultCodeDataNotExist ResultCode = 10003
|
|
// 响应Code 签名错误
|
|
ResultCodeSignError ResultCode = 10105
|
|
|
|
// 服务通讯失败
|
|
ResultCodeServiceCommunicationFail ResultCode = 11000
|
|
// 数据解析失败
|
|
ResultCodeDataParseFail ResultCode = 11001
|
|
// 操作不存在
|
|
ResultCodeOperationNotExist ResultCode = 11002
|
|
// 设备不存在
|
|
ResultCodeDeviceNotExist ResultCode = 11003
|
|
// 设备信息不在线
|
|
ResultCodeDeviceOffline ResultCode = 11004
|
|
// 设备响应超时
|
|
ResultCodeDeviceResponseTimeout ResultCode = 11005
|
|
// 设备属性不可操作
|
|
ResultCodeDeviceAttributeCannotOperation ResultCode = 11006
|
|
// 设备属性不存在
|
|
ResultCodeDeviceAttributeNotExits ResultCode = 11007
|
|
)
|
|
|
|
// 响应结果
|
|
type Result[D any] struct {
|
|
Code ResultCode `json:"code"` // 状态码
|
|
Message string `json:"message"` // 消息
|
|
Data D `json:"data"` // 数据
|
|
}
|
|
|
|
// 设备详情
|
|
type DeviceDetail struct {
|
|
Type uint8 `json:"type"` // 设备类型
|
|
ConnectType uint8 `json:"connect_type"` // 连接类型
|
|
Secret string `json:"secret"` // 秘钥
|
|
PId uint32 `json:"p_id"` // 上层设备ID
|
|
DataId uint32 `json:"data_id"` // 参数数据ID
|
|
}
|
|
|
|
// 设备属性参数
|
|
type DeviceAttributeOption struct {
|
|
Type uint8 `json:"type"` // 设备类型
|
|
ConnectType uint8 `json:"connect_type"` // 连接类型
|
|
Attribute []struct {
|
|
Type uint8 `json:"type"` // 属性类型
|
|
Name string `json:"name"` // 属性名称
|
|
Flag uint8 `json:"flag"` // 属性标识
|
|
Field string `json:"field"` // 属性字段名
|
|
Readonly bool `json:"readonly"` // 是否只读
|
|
AllowItem *[]uint8 `json:"allow_item,omitempty"` // 可用选项列表
|
|
Min *uint32 `json:"min,omitempty"` // 最小值
|
|
Max *uint32 `json:"max,omitempty"` // 最大值
|
|
} `json:"attribute"` // 设备属性列表
|
|
}
|
|
|
|
// Websocket签名数据
|
|
type WebsocketSignData struct {
|
|
UserId uint32 `json:"user_id"` // 用户ID
|
|
Platform string `json:"platform"` // 平台
|
|
}
|
|
|
|
// 语音助手数据
|
|
type VoiceAssistant struct {
|
|
Id uint32 `json:"id"` // ID
|
|
Type uint8 `json:"type"` // 类型
|
|
OnlineStatus uint8 `json:"online_status"` // 在线状态
|
|
BemFaEnable uint8 `json:"bem_fa_enable"` // 是否启用巴法平台
|
|
BemFaName string `json:"bem_fa_name"` // 巴法平台名称
|
|
}
|
|
|
|
// 设备操作日志平台
|
|
type DeviceOperationLogPlatform uint8
|
|
|
|
const (
|
|
// 设备操作日志平台 - 管理后台
|
|
DeviceOperationLogPlatformBackstage DeviceOperationLogPlatform = iota + 1
|
|
// 设备操作日志平台 - 语音助手
|
|
DeviceOperationLogPlatformAssistant
|
|
// 设备操作日志平台 - 设备
|
|
DeviceOperationLogPlatformDevice
|
|
// 设备操作日志平台 - APP
|
|
DeviceOperationLogPlatformApp
|
|
// 设备操作日志平台 - 自动化
|
|
DeviceOperationLogPlatformAutomation
|
|
// 设备操作日志平台 - 桌面端
|
|
DeviceOperationLogPlatformDesktop
|
|
// 设备操作日志平台 - API
|
|
DeviceOperationLogPlatformAPI
|
|
)
|
|
|
|
// 设备操作日志结果
|
|
type DeviceOperationLogResult uint8
|
|
|
|
const (
|
|
// 设备操作日志结果 - 成功
|
|
DeviceOperationLogResultSuccess DeviceOperationLogResult = iota + 1
|
|
// 设备操作日志结果 - 失败
|
|
DeviceOperationLogResultFail
|
|
)
|
|
|
|
// 自动化条件
|
|
type AutomationCondition struct {
|
|
Id uint32 `json:"id"` // ID
|
|
ConditionType uint8 `json:"condition_type"` // 条件类型
|
|
TriggerType uint8 `json:"trigger_type"` // 触发类型
|
|
DeviceId *uint32 `json:"device_id,omitempty"` // 设备ID
|
|
DeviceAttribute *string `json:"device_attribute,omitempty"` // 设备属性
|
|
TargetValue *string `json:"target_value,omitempty"` // 目标值
|
|
TimeValue *string `json:"time_value,omitempty"` // 时间值
|
|
RepeatType *uint8 `json:"repeat_type,omitempty"` // 时间重复类型
|
|
CustomRepeatRange []uint8 `json:"custom_repeat_range"` // 自定义重复范围
|
|
LastExecuteTime *string `json:"last_execute_time,omitempty"` // 最后执行时间
|
|
}
|
|
|
|
// 自动化动作
|
|
|
|
type AutomationAction struct {
|
|
Id uint32 `json:"id"` // ID
|
|
Type uint8 `json:"type"` // 类型
|
|
DeviceId *uint32 `json:"device_id,omitempty"` // 设备ID
|
|
DeviceAttribute *string `json:"device_attribute,omitempty"` // 设备属性
|
|
TargetValue *string `json:"target_value,omitempty"` // 目标值
|
|
ValueType *uint8 `json:"value_type,omitempty"` // 值类型
|
|
DelayDuration *uint32 `json:"delay_duration,omitempty"` // 延时时长
|
|
NoticeContent *string `json:"notice_content,omitempty"` // 通知内容
|
|
}
|
|
|
|
// 自动化任务
|
|
type AutomationTask struct {
|
|
Id uint32 `json:"id"` // ID
|
|
Title string `json:"title"` // 标题
|
|
CreateUserId uint32 `json:"create_user_id"` // 创建用户ID
|
|
EffectivePeriod uint8 `json:"effective_period"` // 生效时段
|
|
PeriodBeginTime *string `json:"period_begin_time,omitempty"` // 时段开始时间
|
|
PeriodEndTime *string `json:"period_end_time,omitempty"` // 时段结束时间
|
|
RepeatType uint8 `json:"repeat_type"` // 重复类型
|
|
CustomRepeatRange *[]uint8 `json:"custom_repeat_range,omitempty"` // 自定义重复范围
|
|
IsSatisfyAll uint8 `json:"is_satisfy_all"` // 是否要满足所有条件
|
|
ConditionList []AutomationCondition `json:"condition_list"` // 条件列表
|
|
ActionList []AutomationAction `json:"action_list"` // 动作列表
|
|
}
|