- IEC 61850/MMS Client: Handle MMS service error object-constraint-conflict and added IED_ERROR_OBJECT_CONSTRAINT_CONFLICT

pull/494/head
Michael Zillgith 2 years ago
parent e57dcc7214
commit b695192e56

@ -1,7 +1,7 @@
/*
* ied_connection.c
*
* Copyright 2013-2022 Michael Zillgith
* Copyright 2013-2023 Michael Zillgith
*
* This file is part of libIEC61850.
*
@ -108,6 +108,9 @@ iedConnection_mapMmsErrorToIedError(MmsError mmsError)
case MMS_ERROR_ACCESS_TEMPORARILY_UNAVAILABLE:
return IED_ERROR_TEMPORARILY_UNAVAILABLE;
case MMS_ERROR_SERVICE_OBJECT_CONSTRAINT_CONFLICT:
return IED_ERROR_OBJECT_CONSTRAINT_CONFLICT;
default:
return IED_ERROR_UNKNOWN;
}

@ -768,7 +768,6 @@ MmsMapping_ObjectReferenceToVariableAccessSpec(char* objectReference)
return accessSpec;
}
static int
getNumberOfDigits(int value)
{

@ -162,6 +162,9 @@ typedef enum {
/** Received an invalid response message from the server */
IED_ERROR_MALFORMED_MESSAGE = 34,
/** Service was not executed because required resource is still in use */
IED_ERROR_OBJECT_CONSTRAINT_CONFLICT = 35,
/** Service not implemented */
IED_ERROR_SERVICE_NOT_IMPLEMENTED = 98,

@ -436,8 +436,18 @@ convertServiceErrorToMmsError(MmsServiceError serviceError)
break;
case 4: /* class: service */
switch (serviceError.errorCode)
{
case 5:
mmsError = MMS_ERROR_SERVICE_OBJECT_CONSTRAINT_CONFLICT;
break;
default:
mmsError = MMS_ERROR_SERVICE_OTHER;
break;
}
break;
case 5: /* class: service-preempt */
mmsError = MMS_ERROR_SERVICE_PREEMPT_OTHER;

Loading…
Cancel
Save