Skip to content

Commit

Permalink
Added longer timeouts for new positioning algorithm
Browse files Browse the repository at this point in the history
  • Loading branch information
laurentva committed Aug 29, 2018
1 parent e7d0879 commit c188ce9
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 deletions.
4 changes: 4 additions & 0 deletions Pozyx_definitions.h
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,8 @@
#define POZYX_DELAY_REMOTE_WRITE 5
#define POZYX_DELAY_REMOTE_FUNCTION 10
#define POZYX_DELAY_INTERRUPT 100
#define POZYX_DELAY_POSITIONING 1000
#define POZYX_DELAY_REMOTE_POSITIONING 1000
#define POZYX_DELAY_CALIBRATION 1000
#define POZYX_FAILURE 0x0
#define POZYX_SUCCESS 0x1
Expand Down Expand Up @@ -259,6 +261,8 @@

// Division factors for converting the raw register values to meaningful physical quantities
#define POZYX_POS_DIV_MM 1.0f
#define POZYX_PRESS_DIVPOSITIONING 1000
#define POZYX_PRESS_DIVREMOTE_POSITIONING 1000
#define POZYX_PRESS_DIV_PA 1000.0f
#define POZYX_ACCEL_DIV_MG 1.0f
#define POZYX_GYRO_DIV_DPS 16.0f
Expand Down
8 changes: 4 additions & 4 deletions Pozyx_lib.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -805,7 +805,7 @@ int PozyxClass::doPositioning(coordinates_t *position, uint8_t dimension, int32_
return POZYX_FAILURE;

// now wait for the positioning to finish or generate an error
if (waitForFlag_safe(POZYX_INT_STATUS_POS | POZYX_INT_STATUS_ERR, 2*POZYX_DELAY_INTERRUPT, &int_status)){
if (waitForFlag_safe(POZYX_INT_STATUS_POS | POZYX_INT_STATUS_ERR, POZYX_DELAY_POSITIONING, &int_status)){
if((int_status & POZYX_INT_STATUS_ERR) == POZYX_INT_STATUS_ERR)
{
// An error occured during positioning.
Expand Down Expand Up @@ -919,11 +919,11 @@ int PozyxClass::doRemotePositioning(uint16_t remote_id, coordinates_t *coordinat
uint8_t firmware;
getFirmwareVersion(&firmware);

if (firmware == 0x13) {
if (firmware >= 0x13) {
uint8_t params_positioning[2] = {1, 0};
status = remoteRegFunctionWithoutCheck(remote_id, POZYX_DO_POSITIONING, params_positioning, 2, NULL, 0);

if (waitForFlag_safe(POZYX_INT_STATUS_RX_DATA , 200) == POZYX_SUCCESS){
if (waitForFlag_safe(POZYX_INT_STATUS_RX_DATA , POZYX_DELAY_REMOTE_POSITIONING) == POZYX_SUCCESS){
uint8_t rx_info[3]= {0,0,0};
regRead(POZYX_RX_NETWORK_ID, rx_info, 3);
uint16_t remote_network_id = rx_info[0] + ((uint16_t)rx_info[1]<<8);
Expand All @@ -950,7 +950,7 @@ int PozyxClass::doRemotePositioning(uint16_t remote_id, coordinates_t *coordinat
}

// change timeout flag if crashes
if (waitForFlag_safe(POZYX_INT_STATUS_RX_DATA , 200)){
if (waitForFlag_safe(POZYX_INT_STATUS_RX_DATA , POZYX_DELAY_REMOTE_POSITIONING)){

// we received a response, now get some information about the response
uint8_t rx_info[3]= {0,0,0};
Expand Down

0 comments on commit c188ce9

Please sign in to comment.