diff -r 25ff2fadff89 -r 03f2b8b8cb0b src/emcy.c --- a/src/emcy.c Sun Sep 30 22:41:12 2007 +0200 +++ b/src/emcy.c Mon Oct 01 14:43:01 2007 +0200 @@ -123,7 +123,7 @@ ** @param errRegister Bits of Error register (1001h) to be set. ** @return 1 if error, 0 if successful */ -UNS8 EMCY_setError(CO_Data* d, UNS16 errCode, UNS8 errRegMask) +UNS8 EMCY_setError(CO_Data* d, UNS16 errCode, UNS8 errRegMask, UNS16 addInfo) { UNS8 index; UNS8 errRegister_tmp; @@ -151,7 +151,7 @@ } d->error_data[index].errCode = errCode; - d->error_data[index].errRegMask = 1; + d->error_data[index].errRegMask = errRegMask; d->error_data[index].active = 1; /* set the new state in the error state machine */ @@ -165,7 +165,7 @@ /* set Pre-defined Error Field (1003h) */ for (index = d->error_history_size - 1; index > 0; --index) *(d->error_first_element + index) = *(d->error_first_element + index - 1); - *(d->error_first_element) = (UNS32)errCode; + *(d->error_first_element) = errCode | ((UNS32)addInfo << 16); if(*d->error_number < d->error_history_size) ++(*d->error_number); /* send EMCY message */