|
|
|
@ -54,8 +54,15 @@ int main(int argc, char** argv) {
|
|
|
|
|
MmsValue* value = IedConnection_readObject(con, &error, "simpleIOGenericIO/GGIO1.AnIn1.mag.f", IEC61850_FC_MX);
|
|
|
|
|
|
|
|
|
|
if (value != NULL) {
|
|
|
|
|
|
|
|
|
|
if (MmsValue_getType(value) == MMS_FLOAT) {
|
|
|
|
|
float fval = MmsValue_toFloat(value);
|
|
|
|
|
printf("read float value: %f\n", fval);
|
|
|
|
|
}
|
|
|
|
|
else if (MmsValue_getType(value) == MMS_DATA_ACCESS_ERROR) {
|
|
|
|
|
printf("Failed to read value (error code: %i)\n", MmsValue_getDataAccessError(value));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MmsValue_delete(value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -64,22 +71,23 @@ int main(int argc, char** argv) {
|
|
|
|
|
IedConnection_writeObject(con, &error, "simpleIOGenericIO/GGIO1.NamPlt.vendor", IEC61850_FC_DC, value);
|
|
|
|
|
|
|
|
|
|
if (error != IED_ERROR_OK)
|
|
|
|
|
printf("failed to write simpleIOGenericIO/GGIO1.NamPlt.vendor!\n");
|
|
|
|
|
printf("failed to write simpleIOGenericIO/GGIO1.NamPlt.vendor! (error code: %i)\n", error);
|
|
|
|
|
|
|
|
|
|
MmsValue_delete(value);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* read data set */
|
|
|
|
|
ClientDataSet clientDataSet = IedConnection_readDataSetValues(con, &error, "simpleIOGenericIO/LLN0.Events", NULL);
|
|
|
|
|
|
|
|
|
|
if (clientDataSet == NULL)
|
|
|
|
|
if (clientDataSet == NULL) {
|
|
|
|
|
printf("failed to read dataset\n");
|
|
|
|
|
goto close_connection;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Read RCB values */
|
|
|
|
|
ClientReportControlBlock rcb =
|
|
|
|
|
IedConnection_getRCBValues(con, &error, "simpleIOGenericIO/LLN0.RP.EventsRCB01", NULL);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (rcb) {
|
|
|
|
|
bool rptEna = ClientReportControlBlock_getRptEna(rcb);
|
|
|
|
|
|
|
|
|
|
printf("RptEna = %i\n", rptEna);
|
|
|
|
@ -118,6 +126,7 @@ int main(int argc, char** argv) {
|
|
|
|
|
ClientDataSet_destroy(clientDataSet);
|
|
|
|
|
|
|
|
|
|
ClientReportControlBlock_destroy(rcb);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
close_connection:
|
|
|
|
|
|
|
|
|
|