/* Package for server related model */ package model const ( SERVER_ZMQ = "zmq" SERVER_NET = "net" CMD_START = "start" CMD_RESTART = "restart" CMD_STOP = "stop" DEV_RUPTELA = "RUPTELA" DEV_TELTONIKA = "TELTONIKA" MAP_SHARD_COUNT = 32 ) /* REQ-REP pattern request. */ type Request struct { Origin string Token string Type string Data string } type IoMapResponse struct { Descriptor DeviceDescriptor DevTags []DevTag StdTags []StdTag } type ServerConfig struct { Id int IP string Port int MaxSocket int Mode string ChanLimit uint32 Device string TimeoutMilis int } /* Interface for service which provides several information. */ type ServiceProvider interface { IsRegistered(imei uint64) bool GetDeviceIoMapping(imei uint64) (iom *DeviceIoMapping, err error) } //Device server interface type DeviceServer interface { Start() Stop() } /* Get device io mapping */ func GetDeviceIoMapping(imei uint64) (iom *DeviceIoMapping, err error) { //------------------------------------- //TODO get mapping from server/cache iom = new(DeviceIoMapping) iom.Descriptor.Id = 10 iom.Descriptor.Model = "Pro3" iom.Descriptor.QoS = 1 iom.Descriptor.IMEI = imei if iom.IOMapping == nil { iom.IOMapping = make(IOMap) } return iom, nil }