radar.go 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package models
  2. import (
  3. "time"
  4. )
  5. // RadarData 网关上报 雷达数据
  6. type RadarData struct {
  7. ID int64 `gorm:"primary_key"` //主键
  8. DID string `gorm:"type:varchar(32)"` //设备编码 UDP发送端地址
  9. GID string `gorm:"type:varchar(32)"` //网关ID UDP接收端
  10. IP string `gorm:"type:varchar(32)"` //设备IP
  11. Port string `gorm:"type:varchar(32)"` //设备端口 0-65535
  12. Time time.Time `gorm:"type:datetime"` //日期
  13. UID uint16 `gorm:"type:smallint;default:0"` //序列号,16位连续,0-65535,溢出后归0
  14. RadarID uint64 `gorm:"type:bigint;default:0"` //雷达通讯包里的ID,区分不同的物体
  15. Type uint8 `gorm:"type:smallint;default:0"` // 类型 0点目标 1车目标
  16. Speed float64 `gorm:"type:float;default:0"` // 速度值,单位是KM/H
  17. Dist float64 `gorm:"type:float;default:0"` // 距离值,单位米
  18. CreatedAt time.Time
  19. }
  20. func (RadarData) TableName() string {
  21. return "t_radar_data"
  22. }
  23. func (o RadarData) Save() error {
  24. return G_db.Create(&o).Error
  25. }
  26. // RadarHourData 雷达数据小时统计
  27. type RadarHourData struct {
  28. DID string `gorm:"type:varchar(32);not null;primary_key"` //设备编码 UDP发送端地址
  29. GID string `gorm:"type:varchar(32);not null;primary_key"` //网关ID UDP接收端
  30. Type uint8 `gorm:"type:smallint;default:0;not null;primary_key"` // 类型 0点目标 1车目标
  31. Total int `gorm:"type:int;default:0;"` // 对应类型总数
  32. OverSpeedNumber int `gorm:"type:int;default:0"` // 超速数量
  33. SpeedMinNumber int `gorm:"type:int;default:0"` // <0 速度区间数量
  34. Speed20Number int `gorm:"type:int;default:0"` // 0-20 速度区间数量
  35. Speed40Number int `gorm:"type:int;default:0"` // 20-40 速度区间数量
  36. Speed60Number int `gorm:"type:int;default:0"` // 40-60 速度区间数量
  37. Speed80Number int `gorm:"type:int;default:0"` // 60-80 速度区间数量
  38. Speed100Number int `gorm:"type:int;default:0"` // 80-100 速度区间数量
  39. Speed120Number int `gorm:"type:int;default:0"` // 100-120 速度区间数量
  40. SpeedMaxNumber int `gorm:"type:int;default:0"` // >120 速度区间数量
  41. Time time.Time `gorm:"type:datetime;not null;primary_key"` //日期 2022-07-28 15:00:00
  42. }
  43. func (RadarHourData) TableName() string {
  44. return "t_radar_hour_data"
  45. }
  46. func (o RadarHourData) Save() error {
  47. return G_db.Create(&o).Error
  48. }
  49. // RadarDayData 雷达数据每日统计
  50. type RadarDayData struct {
  51. DID string `gorm:"type:varchar(32);not null;primary_key"` //设备编码 UDP发送端地址
  52. GID string `gorm:"type:varchar(32);not null;primary_key"` //网关ID UDP接收端
  53. Type uint8 `gorm:"type:smallint;default:0;not null;primary_key"` // 类型 0点目标 1车目标
  54. Total int `gorm:"type:int;default:0"` // 对应类型总数
  55. OverSpeedNumber int `gorm:"type:int;default:0"` // 超速数量
  56. SpeedMinNumber int `gorm:"type:int;default:0"` // <0 速度区间数量
  57. Speed20Number int `gorm:"type:int;default:0"` // 0-20 速度区间数量
  58. Speed40Number int `gorm:"type:int;default:0"` // 20-40 速度区间数量
  59. Speed60Number int `gorm:"type:int;default:0"` // 40-60 速度区间数量
  60. Speed80Number int `gorm:"type:int;default:0"` // 60-80 速度区间数量
  61. Speed100Number int `gorm:"type:int;default:0"` // 80-100 速度区间数量
  62. Speed120Number int `gorm:"type:int;default:0"` // 100-120 速度区间数量
  63. SpeedMaxNumber int `gorm:"type:int;default:0"` // >120 速度区间数量
  64. Date time.Time `gorm:"type:date;not null;primary_key"` //日期 2022-07-28
  65. }
  66. func (RadarDayData) TableName() string {
  67. return "t_radar_day_data"
  68. }
  69. func (o RadarDayData) Save() error {
  70. return G_db.Create(&o).Error
  71. }