models.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package nats_server
  2. import (
  3. "database/sql/driver"
  4. "fmt"
  5. "time"
  6. )
  7. type JsonTime struct {
  8. time.Time
  9. }
  10. func (t JsonTime) MarshalJSON() ([]byte, error) {
  11. str := fmt.Sprintf("\"%s\"", t.Format("2006-01-02 15:04:05"))
  12. return []byte(str), nil
  13. }
  14. func (t JsonTime) Value() (driver.Value, error) {
  15. var zeroTime time.Time
  16. if t.Time.UnixNano() == zeroTime.UnixNano() {
  17. return nil, nil
  18. }
  19. return t.Time, nil
  20. }
  21. func (t *JsonTime) Scan(v interface{}) error {
  22. value, ok := v.(time.Time)
  23. if ok {
  24. *t = JsonTime{Time: value}
  25. return nil
  26. }
  27. return fmt.Errorf("error %v", v)
  28. }
  29. type DeviceSensor_R struct {
  30. T_sn string // 设备序列号 KF开头,环境监测主机。 YD开头,温途监测主机
  31. T_id int // 传感器编号
  32. T_name string // 标题
  33. //T_pid int // 公司id
  34. //T_pid_name string // 公司名称
  35. //
  36. //T_3dview string // 3D 视图ID
  37. //T_sort int // 排序
  38. //T_Dattery int // 电量
  39. //T_Site string // GPS
  40. //T_monitor int // 记录状态
  41. //T_online int // 在线状态 1 在线 0 离线
  42. //T_online_s int // 在线状态-备用 0 未启用 1 在线 2 离线
  43. //T_datashow int // 0 屏蔽数据展示 1 正常数据展示
  44. //T_type int // 类型
  45. //T_link int // 0:断开/故障 1连接 实时数据
  46. //T_State int // 0 屏蔽 1 正常 (屏蔽后 只有内部管理员才能看到,用户 输入SN\名称 搜索时 也能看到)
  47. T_DeviceSensorData DeviceData_R2 // 传感器最新数据
  48. //T_DeviceSensorParameter DeviceSensorParameter_R // 设备参数
  49. }
  50. type DeviceData_R2 struct {
  51. T_t float32 // 温度
  52. T_rh float32 // 湿度
  53. T_site string // GPS
  54. T_time string // 采集时间
  55. }
  56. type DeviceData_R struct {
  57. T_sn string // sn
  58. T_id int // 传感器id
  59. T_name string // 传感器名称
  60. T_t float32 // 温度
  61. T_rh float32 // 湿度
  62. T_site string // GPS
  63. T_tl float32 // 温度下限
  64. T_tu float32 // 温度上限
  65. T_rhl float32 // 湿度下限
  66. T_rhu float32 // 湿度上限
  67. T_time string // 采集时间
  68. //T_sp int // 传感器参数id
  69. //T_ist int // 温度 1开启 2关闭
  70. //T_ish int // 湿度 1开启 2关闭
  71. //T_remark string // 备注
  72. }
  73. type DeviceSensorParameter_R struct {
  74. Id int
  75. T_name string
  76. // 报警
  77. T_Tlower float32 // 温度下限
  78. T_Tupper float32 // 温度上限
  79. T_RHlower float32 // 湿度下限
  80. T_RHupper float32 // 湿度上限
  81. // 预警
  82. //T_enprel int // 是否启用预警
  83. //T_tprel float32 // 温度预警下限
  84. //T_tpreu float32 // 温度预警上限
  85. //T_hprel float32 // 湿度预警下限
  86. //T_hpreu float32 // 温度预警上限
  87. //T_enprelnote int // 预警记录数据
  88. //T_speed int // 传感器采样率 s(1~240) 默认:15 *
  89. //T_sense int // 传感器灵敏度 s(0~10) 默认:5
  90. //T_en int // en:是否启用传感器,
  91. //T_free int // free:监测点是否为闲置状态(空库,只监测不报警)
  92. T_time JsonTime
  93. }