In reply to cgales:
In reply to sruthikrapa:
Hi Cgales,
Please see my inline responses below.
It’s not clear what your requirements are. When you state that the sequence pattern should be ‘AABACBBBCABBA’, does this mean execute sequence A two times, then sequence B, then sequence A, then C? Or does it mean to send one sequence_item from the specified sequence?
Yes, I want sequence A to execute 2 times then sequence B and so on. But all sequences have to start in parallel. Sequence C is a power related sequence. The only condition is that A needs to be suspended when C executes and A needs to be resumed back when C starts again.
AABA (A is executing but C started) C (A is suspended here until C is executed again) BBBC (A resumed back here) ABBA
This is how C works:
power-on C power-off C power-on C power-off C power-on and so on…
If you want the entire sequence to run, then you should use a sequential series of start() calls in the order that you want the sequences executed.
If each sequence is a loop that sends out a number of sequence_items and you want to interleave the items, then you should fork() all three sequences and use a sequencer arbitration scheme which will meet your needs. You need to remember that the sequencer will re-arbitrate the active sequence when get_next_item() is called by the driver.
Yes, this is what I am trying to do in my above code. But I am not sure how exactly to use the fork join in this case with respect to sequence arbitration.
Thanks,
Sruthi.