Skip to content

Commit 275c5be

Browse files
committed
Get common attribute values and UTC-time attributes
1 parent f91b93a commit 275c5be

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

server.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,24 @@ func (is *IedServer) UpdateQuality(node *ModelNode, quality uint16) {
112112
C.IedServer_updateQuality(is.server, (*C.DataAttribute)(node._modelNode), C.ushort(quality))
113113
}
114114

115+
// GetAttributeValue reads the value of the attribute in the server
116+
func (is *IedServer) GetAttributeValue(node *ModelNode) (*MmsValue, error) {
117+
mmsValue := C.IedServer_getAttributeValue(is.server, (*C.DataAttribute)(node._modelNode))
118+
mmsType := MmsType(C.MmsValue_getType(mmsValue))
119+
120+
value, err := toGoValue(mmsValue, mmsType)
121+
if err != nil {
122+
return nil, err
123+
}
124+
return &MmsValue{mmsType, value}, nil
125+
}
126+
127+
// GetUTCTimeAttributeValue reads the value of a time attribute in the server
128+
func (is *IedServer) GetUTCTimeAttributeValue(node *ModelNode) int64 {
129+
timestamp := C.IedServer_getUTCTimeAttributeValue(is.server, (*C.DataAttribute)(node._modelNode))
130+
return int64(timestamp)
131+
}
132+
115133
// SetServerIdentity updates the server identity of the IedServer
116134
func (is *IedServer) SetServerIdentity(vendor string, model string, version string) {
117135
cVendor := C.CString(vendor)

0 commit comments

Comments
 (0)