Other Parts Discussed in Thread: CC2340R5
Tool/software:
My customer is using the connection monitor example on CC2642R-Q1 for PEPS application, and found the connection monitor lost track of the connection when the cell phone moves away about 10 meters from the central node. When the issue happened, pCompleteEvt->status was read to be 0x2 in MicroCmApp_monitorCompleteEvt.
SDK: simplelink_cc13xx_cc26xx_sdk_7_41_00_17(implemented the changes from CC2340 CM)
Test environment: on vehicle, CC2642 as anchor nodes, monitoring the connection between a cell phone and the central node on the vehicle.
Detailed description of the issue:
1. Start the connection monitor close to the central node(<4 meters), the connection monitor works fine, pCompleteEvt->status = 0x0 for most of the times, occasionally pCompleteEvt->status = 0x2 happens:
2. Moving the cell phone away from the central node, pCompleteEvt->status = 0x2 becaomes more frequent:
3. When the cell phone is 8 to 9 meters away, most events returns pCompleteEvt->status = 0x2:
4. Keep moving the cell phone away, the CM node lost track of the connection:
5. After the connection is lost, connection monitor requests for CM information and start a session again, while pCompleteEvt->status still returns 0x2:
When CM node lost track of the connection, the cell phone was actually still connected to the central node, and the RSSI was not very low. The target range is 50 meters, so the tested range has a quite large gap from the design target.
From the connection monitor code, we found 2 sets of macros related to this status value:
#define MONITOR_SUCCESS 0
#define MONITOR_CONTINUE 1
#define MONITOR_UNSTABLE 2
#define MONITOR_INVALID 3
and
#define CM_SUCCESS 0
#define CM_FAILED_TO_START 1
#define CM_FAILED_NOT_FOUND 2
#define CM_FAILED_NOT_ACTIVE 3
#define CM_FAILED_OUT_OF_RANGE 4
The connection monitor code seems to use both of the macros so I am not sure which one does it use when pCompleteEvt->status = 0x2.
The questions are:
1. Which macro does pCompleteEvt->status use and what does the 0x2 value represent?
2. What is the possible cause of pCompleteEvt->status = 0x2?
3. Why does the status not recovered with a new session?
4. Any suggestion to improve the performance?
Best regards,
Shuyang