|
|
|
@ -169,6 +169,7 @@ getCancelParameterTest(MmsValue* operParameters)
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* access the MmsValue of Oper.T or SBOw.T */
|
|
|
|
|
static MmsValue*
|
|
|
|
|
getOperParameterTime(MmsValue* operParameters)
|
|
|
|
|
{
|
|
|
|
@ -182,7 +183,7 @@ getOperParameterTime(MmsValue* operParameters)
|
|
|
|
|
timeParameter = MmsValue_getElement(operParameters, 3);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (timeParameter != NULL)
|
|
|
|
|
if (timeParameter)
|
|
|
|
|
if ((MmsValue_getType(timeParameter) == MMS_UTC_TIME) || (MmsValue_getType(timeParameter) == MMS_BINARY_TIME))
|
|
|
|
|
return timeParameter;
|
|
|
|
|
|
|
|
|
@ -2125,6 +2126,7 @@ Control_writeAccessControlObject(MmsMapping* self, MmsDomain* domain, const char
|
|
|
|
|
MmsValue* origin = getOperParameterOrigin(value);
|
|
|
|
|
MmsValue* check = getOperParameterCheck(value);
|
|
|
|
|
MmsValue* test = getOperParameterTest(value);
|
|
|
|
|
MmsValue* t = getOperParameterTime(value);
|
|
|
|
|
|
|
|
|
|
if (checkValidityOfOriginParameter(origin) == false)
|
|
|
|
|
{
|
|
|
|
@ -2139,6 +2141,11 @@ Control_writeAccessControlObject(MmsMapping* self, MmsDomain* domain, const char
|
|
|
|
|
goto free_and_return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (t)
|
|
|
|
|
{
|
|
|
|
|
Timestamp_fromMmsValue(&(controlObject->T), t);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int state = getState(controlObject);
|
|
|
|
|
|
|
|
|
|
uint64_t currentTime = Hal_getTimeInMs();
|
|
|
|
@ -2270,6 +2277,8 @@ Control_writeAccessControlObject(MmsMapping* self, MmsDomain* domain, const char
|
|
|
|
|
goto free_and_return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Timestamp_fromMmsValue(&(controlObject->T), timeParameter);
|
|
|
|
|
|
|
|
|
|
if (checkValidityOfOriginParameter(origin) == false)
|
|
|
|
|
{
|
|
|
|
|
indication = DATA_ACCESS_ERROR_OBJECT_ACCESS_DENIED;
|
|
|
|
@ -2690,4 +2699,12 @@ ControlAction_getControlTime(ControlAction self)
|
|
|
|
|
return controlObject->operateTime;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Timestamp*
|
|
|
|
|
ControlAction_getT(ControlAction self)
|
|
|
|
|
{
|
|
|
|
|
ControlObject* controlObject = (ControlObject*) self;
|
|
|
|
|
|
|
|
|
|
return &(controlObject->T);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif /* (CONFIG_IEC61850_CONTROL_SERVICE == 1) */
|
|
|
|
|