Part Number: CC1352P
Hi!
I have a TDMA like network where I leave things listening for multiple slots instead of the rfSynchronizedPacket example.
it is important to not stop listening between slots. I had this working without chaining but the timing was not very tight.
Using chaining, I'm very close to what I want to see, other than the issue below.
I'm chaining 4 commands as follows
cmdFs[0] - channel for 'master' packet on one of many leading slots that synchronize the system
cmdRx[0] - listen for 'master' packet
cmdFs[1] - channel for 'non master' data we're listening for
cmdRx[1] - listen for 'non master' packet
- cmdRx[0] listens forever (endTrigger = TRIG_NEVER) until It receives a packet on frequency from cmdFs[0]
- CMD_TRIGGER cancels cmdRx[0] in the callback and the chain moves on to cmdFs[1]
Depending on WHEN cmdRx[0] receives a payload impacts either the start time or duration of cmdRx[1].
Is that possible to achieve with chained commands? Is there a way to modify triggers of an existing chain
For example -
- I have 4 possible slots where I want to wait for a packet on a frequency set by cmdFs[0].
- These slots are 'master' slots that 'non masters' may sync to
- These slots synchronize the whole system, and set the timing to listen on cmdFs[1]
- I have 6 possible slots where I want to wait for a packet on a frequency set by cmdFs[1].
- These slots are 'non master' slots that need to be listening
So if I get a packet on slot0, I either want to cmdRx[1] with cmdFs[1]
- on slots 4 thru 9
- on slots 1 thru 9 (don't care about slots 1-3 if I'm already synchronized)
So if I get a packet on slot1, I either want to cmdRx[1] with cmdFs[1]
- on slots 4 thru 9
- on slots 2 thru 9 (don't care about slots 1-3 if I'm already synchronized)
So if I get a packet on slot3, I want to cmdRx[1] with cmdFs[1]
- on slots 4 thru 9
Is this possible with chaining?
Can I use another trigger type such as TRIG_REL_EVT1?
If so are there examples or documentation for those?
My best idea is to use another TRIG_NEVER on cmdRx[1] invoked by a RAT timer event.
I hope there are better ideas.
Thanks!