Documentation ¶
Overview ¶
Package device 这个文件提供基础信息的物模型定义
Package schema 这个文件定义和模板相关的接口及dto定义
Index ¶
- Constants
- Variables
- func CheckDefine(oldDef *Define, newDef *Define) bool
- func CheckModify(oldT *Model, newT *Model) error
- func DescValidate(desc string) error
- func IDValidate(id string) error
- func NameValidate(name string) error
- type Action
- type ActionMap
- type Actions
- type AffordanceType
- type BasicParam
- type DataType
- type Define
- func (d *Define) ValidateWithFmt() error
- func (d *Define) ValidateWithFmtArray() error
- func (d *Define) ValidateWithFmtBool() error
- func (d *Define) ValidateWithFmtEnum() error
- func (d *Define) ValidateWithFmtFloat() error
- func (d *Define) ValidateWithFmtInt() error
- func (d *Define) ValidateWithFmtString() error
- func (d *Define) ValidateWithFmtStruct() error
- func (d *Define) ValidateWithFmtTimeStamp() error
- type Event
- type EventMap
- type EventType
- type Events
- type GetSchemaModel
- type Info
- type Model
- type Param
- type ParamType
- type Params
- type Profile
- type Properties
- type Property
- type PropertyMap
- type PropertyMode
- type ReadRepo
- type Repo
- type Spec
- type Specs
- type Tag
Constants ¶
View Source
const ( IDFFormatCheck = true //是否检查ID是否以数字开头 IDLen = 128 //标识符的长度 NameLen = 128 //参数名称的长度 DescLen = 80 //描述的最大长度 DefineMappingLen = 20 DefineUnitLen = 12 DefineIntMax = 9999999999999 DefineIntMin = -9999999999999 DefineStringMax = 2048 DefineSpecsLen = 10 ParamsLen = 20 )
Variables ¶
View Source
var (
DefaultSchema string
)
Functions ¶
func CheckDefine ¶
func CheckModify ¶
func DescValidate ¶
func IDValidate ¶
func NameValidate ¶
Types ¶
type Action ¶
type Action struct { Identifier string `json:"identifier"` //标识符 Name string `json:"name"` //功能名称 Desc string `json:"desc"` //描述 Input Params `json:"input"` //调用参数 Output Params `json:"output"` //返回参数 Required bool `json:"required"` //是否必须 In map[string]*Param `json:"-"` //内部使用,使用map加速匹配,key为id Out map[string]*Param `json:"-"` //内部使用,使用map加速匹配,key为id }
行为
func (*Action) ValidateWithFmt ¶
type AffordanceType ¶
type AffordanceType int64
物模型功能类型 1:property属性 2:event事件 3:action行为
const ( AffordanceTypeProperty AffordanceType = 1 AffordanceTypeEvent AffordanceType = 2 AffordanceTypeAction AffordanceType = 3 )
func (AffordanceType) String ¶
func (m AffordanceType) String() string
type BasicParam ¶
type BasicParam struct { Name string `json:"name"` //设备名(是否保留待定) Imei string `json:"imei"` //设备的 IMEI 号信息,非必填项 FwVer string `json:"fwVer"` //mcu固件版本 ModuleHardInfo string `json:"moduleHardInfo"` //模组具体硬件型号 ModuleSoftInfo string `json:"moduleSoftInfo"` //模组软件版本 Mac string `json:"mac"` //设备的 MAC 信息,非必填项 DeviceLabel map[string]string `json:"deviceLabel"` //设备商自定义的产品基础信息,以 KV 方式上报 }
BasicParam 小程序或 App 展示设备详细信息时,一般会展示设备的 MAC 地址、IMEI 号、时区等基础信息。设备信息上报使用的 Topic: 上行请求 Topic: $thing/up/property/{ProductID}/{DeviceName} 下行响应 Topic: $thing/down/property/{ProductID}/{DeviceName}
type Define ¶
type Define struct { Type DataType `json:"type"` //参数类型:bool int string struct float timestamp array enum Maping map[string]string `json:"mapping,omitempty"` //枚举及bool类型:bool enum Min string `json:"min,omitempty"` //数值最小值:int float Max string `json:"max,omitempty"` //数值最大值:int string float Start string `json:"start,omitempty"` //初始值:int float Step string `json:"step,omitempty"` //步长:int float Unit string `json:"unit,omitempty"` //单位:int float Specs Specs `json:"specs,omitempty"` //结构体:struct ArrayInfo *Define `json:"arrayInfo,omitempty"` //数组:array Spec map[string]*Spec `json:"-"` //内部使用,使用map加速匹配,key为id }
数据类型定义
func (*Define) ValidateWithFmt ¶
func (*Define) ValidateWithFmtArray ¶
func (*Define) ValidateWithFmtBool ¶
func (*Define) ValidateWithFmtEnum ¶
func (*Define) ValidateWithFmtFloat ¶
func (*Define) ValidateWithFmtInt ¶
func (*Define) ValidateWithFmtString ¶
func (*Define) ValidateWithFmtStruct ¶
func (*Define) ValidateWithFmtTimeStamp ¶
type Event ¶
type Event struct { Identifier string `json:"identifier"` //标识符 Name string `json:"name"` //功能名称 Desc string `json:"desc"` //描述 Type EventType `json:"type"` //事件类型: 1:信息:info 2:告警alert 3:故障:fault Params Params `json:"params"` //事件参数 Required bool `json:"required"` //是否必须 Param map[string]*Param `json:"-"` //内部使用,使用map加速匹配,key为id }
事件
func (*Event) ValidateWithFmt ¶
type GetSchemaModel ¶
type Model ¶
type Model struct { Version string `json:"version"` //版本号 Properties Properties `json:"properties"` //属性 Events Events `json:"events"` //事件 Actions Actions `json:"actions"` //行为 Profile Profile `json:"profile"` //配置信息 Property PropertyMap `json:"-"` //内部使用,使用map加速匹配,key为id Event EventMap `json:"-"` //内部使用,使用map加速匹配,key为id Action ActionMap `json:"-"` //内部使用,使用map加速匹配,key为id }
Model 数据模板定义
func NewSchemaTsl ¶
func ValidateWithFmt ¶
func (*Model) ValidateWithFmt ¶
type Param ¶
type Param struct { Identifier string `json:"identifier"` //参数标识符 Name string `json:"name"` //参数名称 Define Define `json:"define,omitempty"` //参数定义 }
参数
func (*Param) ValidateWithFmt ¶
type Properties ¶
type Properties []Property
type Property ¶
type Property struct { Identifier string `json:"identifier"` //标识符 Name string `json:"name"` //功能名称 Desc string `json:"desc"` //描述 Mode PropertyMode `json:"mode"` //读写类型:rw(可读可写) r(只读) Define Define `json:"define"` //数据定义 Required bool `json:"required"` //是否必须 }
属性
func (*Property) ValidateWithFmt ¶
type PropertyMap ¶
func (*PropertyMap) GetIDs ¶
func (p *PropertyMap) GetIDs() []string
type PropertyMode ¶
type PropertyMode string
属性读写类型: r(只读) rw(可读可写)
const ( PropertyModeR PropertyMode = "r" PropertyModeRW PropertyMode = "rw" )
type Spec ¶
type Spec struct { Identifier string `json:"identifier"` //参数标识符 Name string `json:"name"` //参数名称 DataType Define `json:"dataType"` //参数定义 }
结构体说明
func (*Spec) ValidateWithFmt ¶
Click to show internal directories.
Click to hide internal directories.