- fixed examples: all timestamp updates prior to corresponding value updates
This commit is contained in:
parent
38711a8843
commit
db6cf1ec28
11 changed files with 71 additions and 49 deletions
|
@ -17,7 +17,7 @@
|
||||||
#define DEBUG_COTP 0
|
#define DEBUG_COTP 0
|
||||||
#define DEBUG_ISO_SERVER 0
|
#define DEBUG_ISO_SERVER 0
|
||||||
#define DEBUG_ISO_CLIENT 0
|
#define DEBUG_ISO_CLIENT 0
|
||||||
#define DEBUG_IED_SERVER 0
|
#define DEBUG_IED_SERVER 1
|
||||||
#define DEBUG_IED_CLIENT 0
|
#define DEBUG_IED_CLIENT 0
|
||||||
#define DEBUG_MMS_CLIENT 0
|
#define DEBUG_MMS_CLIENT 0
|
||||||
#define DEBUG_MMS_SERVER 0
|
#define DEBUG_MMS_SERVER 0
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
*
|
*
|
||||||
* WARNING: If set to 1 normal single- and multi-threaded server are no longer working!
|
* WARNING: If set to 1 normal single- and multi-threaded server are no longer working!
|
||||||
*/
|
*/
|
||||||
#define CONFIG_MMS_THREADLESS_STACK 1
|
#define CONFIG_MMS_THREADLESS_STACK 0
|
||||||
|
|
||||||
/* number of concurrent MMS client connections the server accepts, -1 for no limit */
|
/* number of concurrent MMS client connections the server accepts, -1 for no limit */
|
||||||
#define CONFIG_MAXIMUM_TCP_CLIENT_CONNECTIONS 5
|
#define CONFIG_MAXIMUM_TCP_CLIENT_CONNECTIONS 5
|
||||||
|
|
|
@ -71,8 +71,8 @@ main(int argc, char** argv)
|
||||||
|
|
||||||
IedServer_lockDataModel(iedServer);
|
IedServer_lockDataModel(iedServer);
|
||||||
|
|
||||||
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_Inverter_MMXU1_TotW_mag_f, power);
|
|
||||||
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_Inverter_MMXU1_TotW_t, timeval);
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_Inverter_MMXU1_TotW_t, timeval);
|
||||||
|
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_Inverter_MMXU1_TotW_mag_f, power);
|
||||||
|
|
||||||
IedServer_unlockDataModel(iedServer);
|
IedServer_unlockDataModel(iedServer);
|
||||||
|
|
||||||
|
|
|
@ -44,23 +44,23 @@ controlHandlerForBinaryOutput(void* parameter, MmsValue* value, bool test)
|
||||||
uint64_t timeStamp = Hal_getTimeInMs();
|
uint64_t timeStamp = Hal_getTimeInMs();
|
||||||
|
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO1) {
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO1) {
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_stVal, value);
|
|
||||||
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_t, timeStamp);
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_t, timeStamp);
|
||||||
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_stVal, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO2) {
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO2) {
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_stVal, value);
|
|
||||||
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_t, timeStamp);
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_t, timeStamp);
|
||||||
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_stVal, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO3) {
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO3) {
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_stVal, value);
|
|
||||||
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_t, timeStamp);
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_t, timeStamp);
|
||||||
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_stVal, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO4) {
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO4) {
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_stVal, value);
|
|
||||||
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_t, timeStamp);
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_t, timeStamp);
|
||||||
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_stVal, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -138,17 +138,17 @@ main(int argc, char** argv)
|
||||||
if (((int) t % 2) == 0)
|
if (((int) t % 2) == 0)
|
||||||
Timestamp_setClockNotSynchronized(&iecTimestamp, true);
|
Timestamp_setClockNotSynchronized(&iecTimestamp, true);
|
||||||
|
|
||||||
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn1_mag_f, an1);
|
|
||||||
IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn1_t, &iecTimestamp);
|
IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn1_t, &iecTimestamp);
|
||||||
|
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn1_mag_f, an1);
|
||||||
|
|
||||||
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn2_mag_f, an2);
|
|
||||||
IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn2_t, &iecTimestamp);
|
IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn2_t, &iecTimestamp);
|
||||||
|
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn2_mag_f, an2);
|
||||||
|
|
||||||
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn3_mag_f, an3);
|
|
||||||
IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn3_t, &iecTimestamp);
|
IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn3_t, &iecTimestamp);
|
||||||
|
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn3_mag_f, an3);
|
||||||
|
|
||||||
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn4_mag_f, an4);
|
|
||||||
IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn4_t, &iecTimestamp);
|
IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn4_t, &iecTimestamp);
|
||||||
|
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn4_mag_f, an4);
|
||||||
|
|
||||||
IedServer_unlockDataModel(iedServer);
|
IedServer_unlockDataModel(iedServer);
|
||||||
|
|
||||||
|
|
|
@ -84,23 +84,23 @@ controlHandlerForBinaryOutput(void* parameter, MmsValue* value, bool test)
|
||||||
MmsValue* timeStamp = MmsValue_newUtcTimeByMsTime(Hal_getTimeInMs());
|
MmsValue* timeStamp = MmsValue_newUtcTimeByMsTime(Hal_getTimeInMs());
|
||||||
|
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO1) {
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO1) {
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_stVal, value);
|
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_t, timeStamp);
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_t, timeStamp);
|
||||||
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_stVal, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO2) {
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO2) {
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_stVal, value);
|
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_t, timeStamp);
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_t, timeStamp);
|
||||||
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_stVal, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO3) {
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO3) {
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_stVal, value);
|
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_t, timeStamp);
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_t, timeStamp);
|
||||||
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_stVal, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO4) {
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO4) {
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_stVal, value);
|
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_t, timeStamp);
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_t, timeStamp);
|
||||||
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_stVal, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
MmsValue_delete(timeStamp);
|
MmsValue_delete(timeStamp);
|
||||||
|
|
|
@ -53,8 +53,8 @@ controlHandlerForIntegerOutput(void* parameter, MmsValue* value, bool test)
|
||||||
uint64_t timeStamp = Hal_getTimeInMs();
|
uint64_t timeStamp = Hal_getTimeInMs();
|
||||||
|
|
||||||
if (parameter == IEDMODEL_WTG_WTUR1_SetTurOp_actSt) {
|
if (parameter == IEDMODEL_WTG_WTUR1_SetTurOp_actSt) {
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_WTG_WTUR1_SetTurOp_actSt_stVal, value);
|
|
||||||
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_WTG_WTUR1_SetTurOp_actSt_t, timeStamp);
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_WTG_WTUR1_SetTurOp_actSt_t, timeStamp);
|
||||||
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_WTG_WTUR1_SetTurOp_actSt_stVal, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -53,18 +53,27 @@ checkHandler(void* parameter, MmsValue* ctlVal, bool test, bool interlockCheck,
|
||||||
static ControlHandlerResult
|
static ControlHandlerResult
|
||||||
controlHandlerForBinaryOutput(void* parameter, MmsValue* value, bool test)
|
controlHandlerForBinaryOutput(void* parameter, MmsValue* value, bool test)
|
||||||
{
|
{
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO1)
|
uint64_t timestamp = Hal_getTimeInMs();
|
||||||
|
|
||||||
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO1) {
|
||||||
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_t, timestamp);
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_stVal, value);
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_stVal, value);
|
||||||
|
}
|
||||||
|
|
||||||
else if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO2)
|
else if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO2) {
|
||||||
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_t, timestamp);
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_stVal, value);
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_stVal, value);
|
||||||
|
}
|
||||||
|
|
||||||
else if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO3)
|
else if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO3) {
|
||||||
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_t, timestamp);
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_stVal, value);
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_stVal, value);
|
||||||
|
}
|
||||||
|
|
||||||
else if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO4)
|
else if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO4) {
|
||||||
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_t, timestamp);
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_stVal, value);
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_stVal, value);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return CONTROL_RESULT_FAILED;
|
return CONTROL_RESULT_FAILED;
|
||||||
|
|
||||||
|
|
|
@ -28,17 +28,27 @@ void sigint_handler(int signalId)
|
||||||
void
|
void
|
||||||
controlHandlerForBinaryOutput(void* parameter, MmsValue* value)
|
controlHandlerForBinaryOutput(void* parameter, MmsValue* value)
|
||||||
{
|
{
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO1)
|
uint64_t timestamp = Hal_getTimeInMs();
|
||||||
|
|
||||||
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO1) {
|
||||||
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_t, timestamp);
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_stVal, value);
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_stVal, value);
|
||||||
|
}
|
||||||
|
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO2)
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO2) {
|
||||||
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_t, timestamp);
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_stVal, value);
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_stVal, value);
|
||||||
|
}
|
||||||
|
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO3)
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO3) {
|
||||||
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_t, timestamp);
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_stVal, value);
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_stVal, value);
|
||||||
|
}
|
||||||
|
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO4)
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO4) {
|
||||||
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_t, timestamp);
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_stVal, value);
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_stVal, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
|
@ -78,8 +88,10 @@ int main(int argc, char** argv) {
|
||||||
while (running) {
|
while (running) {
|
||||||
|
|
||||||
IedServer_lockDataModel(iedServer);
|
IedServer_lockDataModel(iedServer);
|
||||||
|
|
||||||
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn1_t, Hal_getTimeInMs());
|
||||||
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn1_mag_f, anIn1);
|
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn1_mag_f, anIn1);
|
||||||
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn1_t, Hal_getTimeInMs());
|
|
||||||
IedServer_unlockDataModel(iedServer);
|
IedServer_unlockDataModel(iedServer);
|
||||||
|
|
||||||
anIn1 += 0.1;
|
anIn1 += 0.1;
|
||||||
|
|
|
@ -132,7 +132,6 @@ main(int argc, char** argv)
|
||||||
|
|
||||||
IedServer_lockDataModel(iedServer);
|
IedServer_lockDataModel(iedServer);
|
||||||
|
|
||||||
|
|
||||||
IedServer_unlockDataModel(iedServer);
|
IedServer_unlockDataModel(iedServer);
|
||||||
|
|
||||||
power += 0.1f;
|
power += 0.1f;
|
||||||
|
|
|
@ -43,23 +43,23 @@ controlHandlerForBinaryOutput(void* parameter, MmsValue* value, bool test)
|
||||||
uint64_t timeStamp = Hal_getTimeInMs();
|
uint64_t timeStamp = Hal_getTimeInMs();
|
||||||
|
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO1) {
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO1) {
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_stVal, value);
|
|
||||||
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_t, timeStamp);
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_t, timeStamp);
|
||||||
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_stVal, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO2) {
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO2) {
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_stVal, value);
|
|
||||||
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_t, timeStamp);
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_t, timeStamp);
|
||||||
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_stVal, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO3) {
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO3) {
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_stVal, value);
|
|
||||||
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_t, timeStamp);
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_t, timeStamp);
|
||||||
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_stVal, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO4) {
|
if (parameter == IEDMODEL_GenericIO_GGIO1_SPCSO4) {
|
||||||
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_stVal, value);
|
|
||||||
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_t, timeStamp);
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_t, timeStamp);
|
||||||
|
IedServer_updateAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO4_stVal, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
return CONTROL_RESULT_OK;
|
return CONTROL_RESULT_OK;
|
||||||
|
@ -119,14 +119,17 @@ main(int argc, char** argv)
|
||||||
|
|
||||||
IedServer_lockDataModel(iedServer);
|
IedServer_lockDataModel(iedServer);
|
||||||
|
|
||||||
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn1_mag_f, an1);
|
|
||||||
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn1_t, timestamp);
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn1_t, timestamp);
|
||||||
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn2_mag_f, an2);
|
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn1_mag_f, an1);
|
||||||
|
|
||||||
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn2_t, timestamp);
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn2_t, timestamp);
|
||||||
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn3_mag_f, an3);
|
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn2_mag_f, an2);
|
||||||
|
|
||||||
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn3_t, timestamp);
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn3_t, timestamp);
|
||||||
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn4_mag_f, an4);
|
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn3_mag_f, an3);
|
||||||
|
|
||||||
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn4_t, timestamp);
|
IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn4_t, timestamp);
|
||||||
|
IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_AnIn4_mag_f, an4);
|
||||||
|
|
||||||
IedServer_unlockDataModel(iedServer);
|
IedServer_unlockDataModel(iedServer);
|
||||||
|
|
||||||
|
|
|
@ -2315,8 +2315,7 @@ ReportControl_valueUpdated(ReportControl* self, int dataSetEntryIndex, ReportInc
|
||||||
if (self->triggered == false) {
|
if (self->triggered == false) {
|
||||||
uint64_t currentTime = Hal_getTimeInMs();
|
uint64_t currentTime = Hal_getTimeInMs();
|
||||||
|
|
||||||
MmsValue* timeOfEntry = self->timeOfEntry;
|
MmsValue_setBinaryTime(self->timeOfEntry, currentTime);
|
||||||
MmsValue_setBinaryTime(timeOfEntry, currentTime);
|
|
||||||
|
|
||||||
self->reportTime = currentTime + self->bufTm;
|
self->reportTime = currentTime + self->bufTm;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1607,11 +1607,11 @@ MmsValue_setBinaryTime(MmsValue* self, uint64_t timestamp)
|
||||||
uint8_t* daysDiffBuf = (uint8_t*) &daysDiff;
|
uint8_t* daysDiffBuf = (uint8_t*) &daysDiff;
|
||||||
|
|
||||||
#if (ORDER_LITTLE_ENDIAN == 1)
|
#if (ORDER_LITTLE_ENDIAN == 1)
|
||||||
binaryTimeBuf[4] = daysDiffBuf[1];
|
binaryTimeBuf[4] = daysDiffBuf[1];
|
||||||
binaryTimeBuf[5] = daysDiffBuf[0];
|
binaryTimeBuf[5] = daysDiffBuf[0];
|
||||||
#else
|
#else
|
||||||
binaryTimeBuf[4] = daysDiffBuf[0];
|
binaryTimeBuf[4] = daysDiffBuf[0];
|
||||||
binaryTimeBuf[5] = daysDiffBuf[1];
|
binaryTimeBuf[5] = daysDiffBuf[1];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1620,15 +1620,15 @@ MmsValue_setBinaryTime(MmsValue* self, uint64_t timestamp)
|
||||||
uint8_t* msSinceMidnightBuf = (uint8_t*) &msSinceMidnight;
|
uint8_t* msSinceMidnightBuf = (uint8_t*) &msSinceMidnight;
|
||||||
|
|
||||||
#if (ORDER_LITTLE_ENDIAN == 1)
|
#if (ORDER_LITTLE_ENDIAN == 1)
|
||||||
binaryTimeBuf[0] = msSinceMidnightBuf[3];
|
binaryTimeBuf[0] = msSinceMidnightBuf[3];
|
||||||
binaryTimeBuf[1] = msSinceMidnightBuf[2];
|
binaryTimeBuf[1] = msSinceMidnightBuf[2];
|
||||||
binaryTimeBuf[2] = msSinceMidnightBuf[1];
|
binaryTimeBuf[2] = msSinceMidnightBuf[1];
|
||||||
binaryTimeBuf[3] = msSinceMidnightBuf[0];
|
binaryTimeBuf[3] = msSinceMidnightBuf[0];
|
||||||
#else
|
#else
|
||||||
binaryTimeBuf[0] = msSinceMidnightBuf[0];
|
binaryTimeBuf[0] = msSinceMidnightBuf[0];
|
||||||
binaryTimeBuf[1] = msSinceMidnightBuf[1];
|
binaryTimeBuf[1] = msSinceMidnightBuf[1];
|
||||||
binaryTimeBuf[2] = msSinceMidnightBuf[2];
|
binaryTimeBuf[2] = msSinceMidnightBuf[2];
|
||||||
binaryTimeBuf[3] = msSinceMidnightBuf[3];
|
binaryTimeBuf[3] = msSinceMidnightBuf[3];
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue