You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.3 KiB
78 lines
1.3 KiB
/* |
|
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 |
|
}
|
|
|