| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- package protocol
- import "time"
- type Pack_ITSDev struct {
- Header
- Data ITSDevConfig `json:"data"`
- }
- func (o *Pack_ITSDev) EnCode(gid string, seq uint64, itsdevconfig *ITSDevConfig) (string, error) {
- o.SetHeaderData(gid, gid, seq)
- o.Data = *itsdevconfig
- return json.MarshalToString(o)
- }
- func (o *Pack_ITSDev) DeCode(message string) error {
- return json.UnmarshalFromString(message, o)
- }
- type VehicleSpeed struct {
- Plate string `json:"plate"`
- Time BJTime `json:"time"`
- Type int8 `json:"type"`
- Speed int `json:"speed"`
- Direction uint `json:"direction"`
- }
- type Pack_VehicleSpeed struct {
- Header
- Data VehicleSpeed `json:"data"`
- }
- func (o *Pack_VehicleSpeed) EnCode(id, gid string, seq uint64, vs *VehicleSpeed) (string, error) {
- o.SetHeaderData(id, gid, seq)
- o.Data = *vs
- return json.MarshalToString(o)
- }
- func (o *Pack_VehicleSpeed) DeCode(message string) error {
- return json.UnmarshalFromString(message, o)
- }
- //卡口行车统计信息
- type VehicleStatic struct {
- StaticTime time.Time `json:"statictime"`
- TollgateID string `json:"tollgateid"`
- SliceVehicleSpeed []*VehicleSpeed `json:"vehiclespeed"` //车速度
- MapDirection map[int8]uint `json:"direction"` //按照方向统计
- MapProvince map[string]uint `json:"province"` //按照省份统计,如湘
- MapProvinceCity map[string]uint `json:"provincecity"` //按照省市统计,如湘A
- MapVehicleType map[int8]uint `json:"vehicletype"` //按照车辆类型统计,如大客车、小客车等
- }
- func NewVehicleStatic() *VehicleStatic {
- obj := VehicleStatic{
- SliceVehicleSpeed: make([]*VehicleSpeed, 0, 1024),
- MapDirection: make(map[int8]uint),
- MapProvince: make(map[string]uint),
- MapProvinceCity: make(map[string]uint),
- MapVehicleType: make(map[int8]uint),
- }
- return &obj
- }
- func (o *VehicleStatic) Reset() {
- o.StaticTime = time.Time{}
- o.TollgateID = ""
- o.SliceVehicleSpeed = make([]*VehicleSpeed, 0, 1024)
- o.MapDirection = make(map[int8]uint)
- o.MapProvince = make(map[string]uint)
- o.MapProvinceCity = make(map[string]uint)
- o.MapVehicleType = make(map[int8]uint)
- }
- func (o *VehicleStatic) AddDirection(direction int8) {
- increInt8Key(o.MapDirection, direction)
- }
- func (o *VehicleStatic) AddProvince(province string) {
- increStringKey(o.MapProvince, province)
- }
- func (o *VehicleStatic) AddProvinceCity(provincecity string) {
- increStringKey(o.MapProvinceCity, provincecity)
- }
- func (o *VehicleStatic) AddVehicleSpeed(data *VehicleSpeed) {
- o.SliceVehicleSpeed = append(o.SliceVehicleSpeed, data)
- }
- func (o *VehicleStatic) AddVehicleType(vtype int8) {
- increInt8Key(o.MapVehicleType, vtype)
- }
- func increInt8Key(m map[int8]uint, k int8) {
- if a, ok := m[k]; ok {
- m[k] = a + 1
- } else {
- m[k] = 1
- }
- }
- func increStringKey(m map[string]uint, k string) {
- if a, ok := m[k]; ok {
- m[k] = a + 1
- } else {
- m[k] = 1
- }
- }
- type Pack_VehicleStatic struct {
- Header
- Data VehicleStatic `json:"data"`
- }
- func (o *Pack_VehicleStatic) EnCode(id, gid string, seq uint64, vs *VehicleStatic) (string, error) {
- o.SetHeaderData(id, gid, seq)
- o.Data = *vs
- return json.MarshalToString(o)
- }
- func (o *Pack_VehicleStatic) DeCode(message string) error {
- return json.UnmarshalFromString(message, o)
- }
- type ITSState struct {
- Time string `json:"time"`
- State uint8 `json:"state"` //0 在线,1离线
- }
- type Pack_ITSState struct {
- Header
- Data ITSState `json:"data"`
- }
- func (o *Pack_ITSState) EnCode(id, gid string, seq uint64, changetime time.Time, state uint8) (string, error) {
- o.SetHeaderData(id, gid, seq)
- o.Data.Time = changetime.Format("2006-01-02 15:04:05")
- o.Data.State = state
- return json.MarshalToString(o)
- }
- func (o *Pack_ITSState) DeCode(message string) error {
- return json.UnmarshalFromString(message, o)
- }
|