package device import ( "src.dualinventive.com/go/dinet/rpc" ) // Device contains the different class fields and device type type Device struct { Type string SensorFields map[uint16]*FieldInfo NotifyFields map[uint16]*FieldInfo // action // config } // FieldInfo returns the information about a specific device class field func (d *Device) FieldInfo(class rpc.Class, uid uint16) (*FieldInfo, error) { if d == nil { return nil, ErrNoDevice } var m map[uint16]*FieldInfo switch class { case rpc.ClassSensor: m = d.SensorFields case rpc.ClassNotify: m = d.NotifyFields default: return nil, ErrInvalidClass } if c, ok := m[uid]; ok { return c, nil } return nil, ErrNotFound }