github.com/enbility/spine-go@v0.7.0/spine/device.go (about) 1 package spine 2 3 import "github.com/enbility/spine-go/model" 4 5 type Device struct { 6 address *model.AddressDeviceType 7 dType *model.DeviceTypeType 8 featureSet *model.NetworkManagementFeatureSetType 9 } 10 11 // Initialize a new device 12 // Both values are required for a local device but provided as empty strings for a remote device 13 // as the address is only provided via detailed discovery response 14 func NewDevice(address *model.AddressDeviceType, dType *model.DeviceTypeType, featureSet *model.NetworkManagementFeatureSetType) *Device { 15 device := &Device{} 16 17 if dType != nil { 18 device.dType = dType 19 } 20 21 if address != nil { 22 device.address = address 23 } 24 25 if featureSet != nil { 26 device.featureSet = featureSet 27 } 28 29 return device 30 } 31 32 func (r *Device) Address() *model.AddressDeviceType { 33 return r.address 34 } 35 36 func (r *Device) DeviceType() *model.DeviceTypeType { 37 return r.dType 38 } 39 40 func (r *Device) FeatureSet() *model.NetworkManagementFeatureSetType { 41 return r.featureSet 42 } 43 44 func (r *Device) DestinationData() model.NodeManagementDestinationDataType { 45 return model.NodeManagementDestinationDataType{ 46 DeviceDescription: &model.NetworkManagementDeviceDescriptionDataType{ 47 DeviceAddress: &model.DeviceAddressType{ 48 Device: r.Address(), 49 }, 50 DeviceType: r.DeviceType(), 51 NetworkFeatureSet: r.FeatureSet(), 52 }, 53 } 54 }