To optimize the update rate I made several changes in the DecaRangeRTLS-ARM source code 2.10. Following are the changes which I have made,
main.c
sfConfig_t sfConfig[4] ={
//mode 1 - S1: 2 off, 3 off
{
(20), //ms - slot period
(4), //thus 4 slots - thus 80ms superframe means approx. 12Hz location rate (4 slots are needed as AtoA ranging takes 30+ ms)
(420), //superframe period
(420), //poll sleep delay
(19000)
},
//mode 2 - S1: 2 on, 3 off
{
(2), // slot period ms
(4), // number of slots (only 4 are used) - thus 8ms superframe means approx. 120Hz location rate
(42), // superframe period (8ms - gives 120Hz)
(42), // poll sleep delay (tag sleep time, usually = superframe period)
(1600)
},}
instance.h
#define MAX_TAG_LIST_SIZE (2)
#define MAX_ANCHOR_LIST_SIZE (4) //this is limited to 4 in this application
#define RX_RESPONSEX_TURNAROUND (80) //takes about 100 us for response to come back
#define RX_RESPONSE1_TURNAROUND (80) //takes about 200 us for the 1st response to come back (from A0)
#define RX_RESPONSE1_TURNAROUND_6M81 (80) //takes about 100 us for response to come back
#define RX_RESPONSE1_TURNAROUND_110K (80) //takes about 100 us for response to come back
After these changes, I tried to check the output on the PC application version 3.6. Anchors and tag are communicating but I didn’t see any xyz output. Then I run the PC application source code in the QT and got the xyz values. Unfortunately, the output is unstable. I don’t get the consistent result.
I have several questions;
- what is ‘replyDly’ of the structure ‘sfconfig_t’? How to calculate?
- Do I need to modify the low-level source code i.e decawave driver files?
- Where should be the possible reason to get the inconsistent result of xyz on PC application?
cheers,
-Hank