123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 |
- package nats_server
- import (
- "database/sql/driver"
- "encoding/json"
- "fmt"
- "time"
- )
- type JsonTime struct {
- time.Time
- }
- func (t JsonTime) MarshalJSON() ([]byte, error) {
- str := fmt.Sprintf("\"%s\"", t.Format("2006-01-02 15:04:05"))
- return []byte(str), nil
- }
- func (t JsonTime) Value() (driver.Value, error) {
- var zeroTime time.Time
- if t.Time.UnixNano() == zeroTime.UnixNano() {
- return nil, nil
- }
- return t.Time, nil
- }
- func (t *JsonTime) Scan(v interface{}) error {
- value, ok := v.(time.Time)
- if ok {
- *t = JsonTime{Time: value}
- return nil
- }
- return fmt.Errorf("error %v", v)
- }
- type DeviceSensor_R struct {
- T_sn string // 设备序列号 KF开头,环境监测主机。 YD开头,温途监测主机
- T_id int // 传感器编号
- T_name string // 标题
- //T_pid int // 公司id
- //T_pid_name string // 公司名称
- //
- //T_3dview string // 3D 视图ID
- //T_sort int // 排序
- //T_Dattery int // 电量
- //T_Site string // GPS
- //T_monitor int // 记录状态
- //T_online int // 在线状态 1 在线 0 离线
- //T_online_s int // 在线状态-备用 0 未启用 1 在线 2 离线
- //T_datashow int // 0 屏蔽数据展示 1 正常数据展示
- //T_type int // 类型
- //T_link int // 0:断开/故障 1连接 实时数据
- //T_State int // 0 屏蔽 1 正常 (屏蔽后 只有内部管理员才能看到,用户 输入SN\名称 搜索时 也能看到)
- T_DeviceSensorData DeviceData_R2 // 传感器最新数据
- T_DeviceSensorParameter DeviceSensorParameter_R // 设备参数
- }
- type DeviceData_R2 struct {
- T_t float32 // 温度
- T_rh float32 // 湿度
- T_site string // GPS
- T_time string // 采集时间
- }
- type DeviceData_ struct {
- T_id int // 传感器id
- T_sp int // 传感器参数id
- T_t float32 // 温度
- T_rh float32 // 湿度
- T_site string // GPS
- T_time time.Time // 采集时间
- }
- func (ab *DeviceData_) MarshalJSON() ([]byte, error) {
- loc, _ := time.LoadLocation("Asia/Shanghai")
- type Alias DeviceData_
- return json.Marshal(&struct {
- T_time string `json:"T_time,omitempty"`
- *Alias
- }{
- T_time: ab.T_time.In(loc).Format("2006-01-02 15:04:05"),
- Alias: (*Alias)(ab),
- })
- }
- type DeviceSensor struct {
- Id int `orm:"column(ID);size(11);auto;pk"`
- T_sn string `orm:"index;size(256);null"` // 设备序列号 KF开头,环境监测主机。 YD开头,温途监测主机
- T_id int `orm:"index;size(11);null"` // 传感器编号
- T_sp int `orm:"size(11);null"` // 传感器参数id
- T_name string `orm:"size(256);null"` // 标题
- T_pid int `orm:"index;size(256);null"` // Account.Company 绑定公司
- T_Class string `orm:"size(256);null"` // Device.DeviceClass.Id 设备分类 C1|C2|
- T_Notice string `orm:"size(256);null"` // 通知绑定
- T_datashow int `orm:"size(2);default(1)"` // 0 屏蔽数据展示 1 正常数据展示 (屏蔽后 数据展示无法看到,设备管理中 不受影响)
- T_sort int `orm:"size(200);default(1)"` // 排序
- T_3dview string `orm:"size(256);null"` // 3D 视图ID
- T_type int `orm:"size(4);null"` // Device.DeviceSensorType 1库房 2移动
- T_link int `orm:"size(4);default(1)"` // 0:断开/故障 1连接 实时数据
- T_State int `orm:"index;size(2);default(1)"` // 0 屏蔽 1 正常 (屏蔽后 只有内部管理员才能看到,用户 输入SN\名称 搜索时 也能看到)
- // 设备同步参数
- T_Dattery int `orm:"size(4);null"` // 电量
- T_Site string `orm:"size(200);null"` // GPS
- T_monitor int `orm:"size(2);null"` // 监控状态 0 未监控 1 监控
- T_online int `orm:"size(2);default(1)"` // 在线状态 0 未启用 1 在线 2 离线
- T_online_s int `orm:"size(2);default(0)"` // 在线状态-备用 0 未启用 1 在线 2 离线
- CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now_add 第一次保存时才设置时间
- UpdateTime time.Time `orm:"column(update_time);type(timestamp);null;auto_now"` //auto_now 每次 model 保存时都会对时间自动更新
- }
- type DeviceData_R struct {
- T_sn string // sn
- T_id int // 传感器id
- T_name string // 传感器名称
- T_t float32 // 温度
- T_rh float32 // 湿度
- T_site string // GPS
- T_tl float32 // 温度下限
- T_tu float32 // 温度上限
- T_rhl float32 // 湿度下限
- T_rhu float32 // 湿度上限
- T_time string // 采集时间
- //T_sp int // 传感器参数id
- //T_ist int // 温度 1开启 2关闭
- //T_ish int // 湿度 1开启 2关闭
- //T_remark string // 备注
- }
- type DeviceSensorParameter_R struct {
- Id int
- T_name string
- // 报警
- T_Tlower float32 // 温度下限
- T_Tupper float32 // 温度上限
- T_RHlower float32 // 湿度下限
- T_RHupper float32 // 湿度上限
- // 预警
- //T_enprel int // 是否启用预警
- //T_tprel float32 // 温度预警下限
- //T_tpreu float32 // 温度预警上限
- //T_hprel float32 // 湿度预警下限
- //T_hpreu float32 // 温度预警上限
- //T_enprelnote int // 预警记录数据
- //T_speed int // 传感器采样率 s(1~240) 默认:15 *
- //T_sense int // 传感器灵敏度 s(0~10) 默认:5
- //T_en int // en:是否启用传感器,
- //T_free int // free:监测点是否为闲置状态(空库,只监测不报警)
- T_time JsonTime
- }
- type Device_R struct {
- T_sn string // 设备序列号 KF开头,环境监测主机。 YD开头,温途监测主机
- T_devName string // 设备名称
- T_protocol int // 1 1.0协议 2 2.0协议
- T_VerifyTime string // 验证时间
- T_CalibrationTime string // 校准时间
- T_PatrolTime string // 巡检时间
- T_ist int // 温度 1开启 2关闭
- T_ish int // 湿度 1开启 2关闭
- T_Dattery int // 电量
- T_Site string // GPS
- T_monitor int // 监控状态 0 未监控 1 监控 停止记录
- T_online int // 在线状态 0 未启用 1 在线 2 离线
- T_online_s int // 在线状态-备用 0 未启用 1 在线 2 离线
- T_State int // 0 屏蔽 1 正常
- // 硬件信息
- T_model string // KF200BG 产品型号
- T_ProductTypeName string // 验证工具LoRa 产品统称 + 类型
- T_sver string // "1.0.0",//软件版本
- T_hver string // "1.0.0",//硬件版本
- T_imei string // "867387060327718",//模组imei
- T_iccid string // "89860477102170049750",//sim卡号
- T_rssi string // "80",//信号强度
- CreateTime string //auto_now_add 第一次保存时才设置时间
- UpdateTime string //auto_now 每次 model 保存时都会对时间自动更新
- T_DeviceSensor_Num int // 传感器数量
- }
- type Company_R struct {
- Id int
- T_mid int // 上一级 ID
- T_name string // 公司名称
- T_plan string // 平面图
- T_data string // 大数据
- T_v3d string // 3D 视图
- T_money float32 // 余额
- T_warning int // 报警统计
- T_key string
- T_type int // 公司类型 1-医药公司 2-运输企业
- T_Charging int
- Children []Company_R
- }
- type Device struct {
- T_sn string // 设备序列号
- T_pid int // Account.Company 绑定公司
- T_devName string // 设备名称 20字
- T_protocol int // 冷链通讯协议 1 :1.0协议 2 :2.0协议 3 :3.0协议
- T_mqttid string // MQTT 服务ID
- T_VerifyTime time.Time // 验证时间
- T_CalibrationTime time.Time // 校准时间
- T_PatrolTime time.Time // 巡检时间
- T_abandonTime time.Time // 弃用时间
- T_ist int // 温度 1开启 2关闭
- T_ish int // 湿度 1开启 2关闭
- T_State int // 0 屏蔽 1 正常 (屏蔽后 只有内部管理员才能看到,用户 输入SN\名称 搜索时 也能看到)
- // 设备同步参数
- T_Dattery int // 电量
- T_Site string // GPS
- T_monitor int // 监控状态 0 未监控 1 监控 停止记录
- T_online int // 在线状态 0 未启用 1 在线 2 离线
- T_online_s int // 在线状态-备用 0 未启用 1 在线 2 离线
- // 硬件信息
- T_model string // KF200BG 设备型号
- T_sver string // "1.0.0",//软件版本
- T_hver string // "1.0.0",//硬件版本
- T_imei string // "867387060327718",//模组imei
- T_iccid string // "89860477102170049750",//sim卡号
- T_rssi string // "80",//信号强度
- CreateTime time.Time //auto_now_add 第一次保存时才设置时间
- UpdateTime time.Time //auto_now 每次 model 保存时都会对时间自动更新
- }
- // 设备任务
- type DeviceTask struct {
- Id int `orm:"column(ID);size(11);auto;pk"`
- T_sn string `orm:"size(256);null"` // 设备序列号 KF开头,环境监测主机。 YD开头,温途监测主机
- T_Ut_start time.Time `orm:"type(timestamp);null;"` // 采集时间
- T_Ut_end time.Time `orm:"type(timestamp);null;"` // 采集时间
- T_Ut time.Time `orm:"type(timestamp);null;"` // 采集时间
- T_State int `orm:"size(2);default(1)"`
- // 1 start:开始监测任务,
- // 2 stop:结束监测任务,
- // 3 print:中途打印任务
- }
|