Hi Martin .
First of all Happy new Year
1) We have implemented LFO functionality into Opener and now we are testing it.
It seems that it is working fine with our Noname Scanner.
If you would like we can share our code in order to be able do a deeper testing (using cpputest).
Unfortunately our Noname scanner seems to have some incompatibilities and we have modified a little bit your code.
I am in your disposal for a possible contribution.
2) In CMakelists file you have define the constant OPENER_CONSUMED_DATA_HAS_RUN_IDLE_HEADER
I assume that some scanners shall not remove the overhead of 4 bytes RUN/IDLE header in case of non heartbeat O->T packet. This is the reason that
you provide the ability to set this variable before compilation.
Is this correct?
In case of heartbeat we assume that size in parameters does not contain these 4 bytes. Where is this definition on CIP spec?
See file cipioconnection.c line 146. In our Noname scanner we got in Forward open parameters content size 4 more bytes.
In order to be able to play with it we change the code as you see bellow
#ifdef OPENER_CONSUMED_DATA_HAS_RUN_IDLE_HEADER
if ( (data_size > 0)){// && (!is_heartbeat) ) { iarv CIP incompatibility?
/* we only have an run idle header if it is not an heartbeat connection */
data_size -= 4; /* remove the 4 bytes needed for run/idle header */
diff_size += 4;
}
#endif
//Best Regards
//J.A.