Merge pull request #39 from Cloud-Automation/master

Fixed grouping problem.
Intermediate solution
pull/40/head
ArthurKetels 2016-05-26 09:02:21 +02:00
commit 43e4493346
1 changed files with 15 additions and 5 deletions

View File

@ -1623,6 +1623,18 @@ static int ecx_pullindex(ecx_contextt *context)
return rval;
}
/**
* Clear the idx stack.
*
* @param context = context struct
*/
static void ecx_clearindex(ecx_contextt *context) {
context->idxstack->pushed = 0;
context->idxstack->pulled = 0;
}
/** Transmit processdata to slaves.
* Uses LRW, or LRD/LWR if LRW is not allowed (blockLRW).
* Both the input and output processdata are transmitted.
@ -1655,11 +1667,7 @@ int ecx_send_processdata_group(ecx_contextt *context, uint8 group)
LogAdr = context->grouplist[group].logstartaddr;
if (length)
{
if(!group)
{
context->idxstack->pushed = 0;
context->idxstack->pulled = 0;
}
wkc = 1;
/* LRW blocked by one or more slaves ? */
if (context->grouplist[group].blockLRW)
@ -1863,6 +1871,8 @@ int ecx_receive_processdata_group(ecx_contextt *context, uint8 group, int timeou
pos = ecx_pullindex(context);
}
ecx_clearindex(context);
/* if no frames has arrived */
if (valid_wkc == 0)
{