Hello,
I’m trying to use the CSAFE_SETUSERCFG1_CMD with the tkcmdsetCSAFE_command function as a wrapper for three other PM commands; namely: CSAFE_GETHORIZONTAL_CMD, CSAFE_GETCADENCE_CMD and CSAFE_GETPACE_CMD; but have not been successful. My call to the above CSAFE method returns without any error but I never get any results back.
I’ve had no problems calling the commands individually (see here: https://www.youtube.com/watch?v=9wshu_TufRs) but now I would like to bundle them together for efficiency reasons.
I got the idea to do so from the documentation: “Command Example #2 – Get PM3Worktime and Get PM3Workdistance Command” but now believe that I may have misunderstood something.
My code without the initialization looks as follows:
/----------------------------------------------------------------------------------------------/
void pollpm4()
{
UINT16_T unit_address = 0;
UINT16_T cmd_data_size = 0;
UINT32_T cmd_data[64] = {0x00};
UINT16_T rsp_data_size = 100;
UINT32_T rsp_data[64] = {0x00};
ERRCODE_T ecode;
unit_address = 0;
cmd_data[0] = (UINT32_T) 0x1A;
cmd_data[1] = (UINT32_T) 3;
cmd_data[2] = (UINT32_T) 0xA1; //CSAFE_GETHORIZONTAL_CMD
cmd_data[3] = (UINT32_T) 0xA7; //CSAFE_GETCADENCE_CMD
cmd_data[4] = (UINT32_T) 0xA6; //CSAFE_GETPACE_CMD 0xA6
cmd_data_size = 5;
int cnt = 1;
while(1){
rsp_data_size = 100;
memset(rsp_data, 0x00, sizeof(rsp_data));
ecode = tkcmdsetCSAFE_command(unit_address, cmd_data_size, cmd_data, &rsp_data_size, rsp_data);
printf("%04d -> %d %d : %X %u : %X %u %u %u : %X %u %u %u : %X %u %u %u \n",
cnt, ecode, rsp_data_size,
rsp_data[0], rsp_data[1],
rsp_data[2], rsp_data[3], rsp_data[4], rsp_data[5],
rsp_data[6], rsp_data[7], rsp_data[8], rsp_data[9],
rsp_data[10], rsp_data[11], rsp_data[12], rsp_data[13]);
cnt++;
if(ecode){
printError(ecode);
}
//
Sleep(500);
}
}
/----------------------------------------------------------------------------------------------/
And the output as follows:
intialization successful
COMMAND_DISCOVER successful: message is: PM's discovered: 1
COMMAND_GET_SERIAL_NUM successful: message is: 4XXXXXXXX
COMMAND_INIT_PROTOCOL successful: message is:
0001 -> 0 2 : 1A 0 : 0 0 0 0 : 0 0 0 0 : 0 0 0 0
0002 -> 0 2 : 1A 0 : 0 0 0 0 : 0 0 0 0 : 0 0 0 0
0003 -> 0 2 : 1A 0 : 0 0 0 0 : 0 0 0 0 : 0 0 0 0
0004 -> 0 2 : 1A 0 : 0 0 0 0 : 0 0 0 0 : 0 0 0 0
0005 -> 0 2 : 1A 0 : 0 0 0 0 : 0 0 0 0 : 0 0 0 0
Many thanks for your help,
William