kopia lustrzana https://github.com/bristol-seds/pico-tracker
[Refactor] UBX Protocol: Removed unsupported CFG Timepulse message, added NAV Status message
rodzic
b86e3dd0be
commit
b79b3299cd
|
@ -98,24 +98,6 @@ __PACKED__ struct ubx_cfg_nav5 {
|
||||||
uint32_t res4;
|
uint32_t res4;
|
||||||
} payload;
|
} payload;
|
||||||
};
|
};
|
||||||
/**
|
|
||||||
* UBX CFG TP TimePulse Parameters
|
|
||||||
*/
|
|
||||||
__PACKED__ struct ubx_cfg_tp {
|
|
||||||
ubx_message_id_t id;
|
|
||||||
enum ubx_packet_state state;
|
|
||||||
struct {
|
|
||||||
uint32_t interval;
|
|
||||||
uint32_t length;
|
|
||||||
int8_t status;
|
|
||||||
uint8_t timeRef;
|
|
||||||
uint8_t flags;
|
|
||||||
uint8_t res;
|
|
||||||
int16_t antennaCableDelay;
|
|
||||||
int16_t rfGroupDelay;
|
|
||||||
int32_t userDelay;
|
|
||||||
} payload;
|
|
||||||
};
|
|
||||||
/**
|
/**
|
||||||
* UBX CFG TP5 TimePulse Parameters
|
* UBX CFG TP5 TimePulse Parameters
|
||||||
*/
|
*/
|
||||||
|
@ -236,5 +218,21 @@ __PACKED__ struct ubx_nav_sol {
|
||||||
uint32_t res2;
|
uint32_t res2;
|
||||||
} payload;
|
} payload;
|
||||||
};
|
};
|
||||||
|
/**
|
||||||
|
* UBX NAV STATUS Receiver Navigation Status
|
||||||
|
*/
|
||||||
|
__PACKED__ struct ubx_nav_status {
|
||||||
|
ubx_message_id_t id;
|
||||||
|
enum ubx_packet_state state;
|
||||||
|
struct {
|
||||||
|
uint32_t iTOW;
|
||||||
|
uint8_t gpsFix;
|
||||||
|
int8_t flags;
|
||||||
|
int8_t fixStat;
|
||||||
|
int8_t flags2;
|
||||||
|
uint32_t ttff;
|
||||||
|
uint32_t msss;
|
||||||
|
} payload;
|
||||||
|
};
|
||||||
|
|
||||||
#endif /* UBX_MESSAGES_H */
|
#endif /* UBX_MESSAGES_H */
|
||||||
|
|
|
@ -68,26 +68,26 @@ uint8_t ubx_irq_buffer[UBX_BUFFER_LEN];
|
||||||
/**
|
/**
|
||||||
* UBX Messages
|
* UBX Messages
|
||||||
*/
|
*/
|
||||||
volatile struct ubx_cfg_ant ubx_cfg_ant = { .id = (UBX_CFG | (0x07 << 8)) };
|
volatile struct ubx_cfg_ant ubx_cfg_ant = { .id = (UBX_CFG | (0x13 << 8)) };
|
||||||
volatile struct ubx_cfg_nav5 ubx_cfg_nav5 = { .id = (UBX_CFG | (0x24 << 8)) };
|
volatile struct ubx_cfg_nav5 ubx_cfg_nav5 = { .id = (UBX_CFG | (0x24 << 8)) };
|
||||||
volatile struct ubx_cfg_tp ubx_cfg_tp = { .id = (UBX_CFG | (0x07 << 8)) };
|
|
||||||
volatile struct ubx_cfg_tp5 ubx_cfg_tp5 = { .id = (UBX_CFG | (0x31 << 8)) };
|
volatile struct ubx_cfg_tp5 ubx_cfg_tp5 = { .id = (UBX_CFG | (0x31 << 8)) };
|
||||||
volatile struct ubx_cfg_prt ubx_cfg_prt = { .id = (UBX_CFG | (0x00 << 8)) };
|
volatile struct ubx_cfg_prt ubx_cfg_prt = { .id = (UBX_CFG | (0x00 << 8)) };
|
||||||
volatile struct ubx_nav_posllh ubx_nav_posllh = { .id = (UBX_NAV | (0x02 << 8)) };
|
volatile struct ubx_nav_posllh ubx_nav_posllh = { .id = (UBX_NAV | (0x02 << 8)) };
|
||||||
volatile struct ubx_nav_timeutc ubx_nav_timeutc = { .id = (UBX_NAV | (0x21 << 8)) };
|
volatile struct ubx_nav_timeutc ubx_nav_timeutc = { .id = (UBX_NAV | (0x21 << 8)) };
|
||||||
volatile struct ubx_nav_sol ubx_nav_sol = { .id = (UBX_NAV | (0x06 << 8)) };
|
volatile struct ubx_nav_sol ubx_nav_sol = { .id = (UBX_NAV | (0x06 << 8)) };
|
||||||
|
volatile struct ubx_nav_status ubx_nav_status = { .id = (UBX_NAV | (0x03 << 8)) };
|
||||||
/**
|
/**
|
||||||
* UBX Message Type List
|
* UBX Message Type List
|
||||||
*/
|
*/
|
||||||
volatile ubx_message_t* const ubx_messages[] = {
|
volatile ubx_message_t* const ubx_messages[] = {
|
||||||
(ubx_message_t*)&ubx_cfg_ant,
|
(ubx_message_t*)&ubx_cfg_ant,
|
||||||
(ubx_message_t*)&ubx_cfg_nav5,
|
(ubx_message_t*)&ubx_cfg_nav5,
|
||||||
(ubx_message_t*)&ubx_cfg_tp,
|
|
||||||
(ubx_message_t*)&ubx_cfg_tp5,
|
(ubx_message_t*)&ubx_cfg_tp5,
|
||||||
(ubx_message_t*)&ubx_cfg_prt,
|
(ubx_message_t*)&ubx_cfg_prt,
|
||||||
(ubx_message_t*)&ubx_nav_posllh,
|
(ubx_message_t*)&ubx_nav_posllh,
|
||||||
(ubx_message_t*)&ubx_nav_timeutc,
|
(ubx_message_t*)&ubx_nav_timeutc,
|
||||||
(ubx_message_t*)&ubx_nav_sol};
|
(ubx_message_t*)&ubx_nav_sol,
|
||||||
|
(ubx_message_t*)&ubx_nav_status};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Platform specific handlers
|
* Platform specific handlers
|
||||||
|
@ -282,6 +282,7 @@ void gps_update()
|
||||||
_ubx_send_message((ubx_message_t*)&ubx_nav_posllh, NULL, 0);
|
_ubx_send_message((ubx_message_t*)&ubx_nav_posllh, NULL, 0);
|
||||||
_ubx_send_message((ubx_message_t*)&ubx_nav_sol, NULL, 0);
|
_ubx_send_message((ubx_message_t*)&ubx_nav_sol, NULL, 0);
|
||||||
_ubx_send_message((ubx_message_t*)&ubx_nav_timeutc, NULL, 0);
|
_ubx_send_message((ubx_message_t*)&ubx_nav_timeutc, NULL, 0);
|
||||||
|
_ubx_send_message((ubx_message_t*)&ubx_nav_status, NULL, 0);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Return the latest received messages
|
* Return the latest received messages
|
||||||
|
@ -319,27 +320,6 @@ void gps_set_platform_model(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the GPS timepulse settings using the CFG_TP message
|
|
||||||
*/
|
|
||||||
void gps_set_timepulse(void)
|
|
||||||
{
|
|
||||||
/* Send the Request */
|
|
||||||
_ubx_poll((ubx_message_t*)&ubx_cfg_tp);
|
|
||||||
|
|
||||||
/* Define the settings we want */
|
|
||||||
ubx_cfg_tp.payload.interval = 2; /* 2µS */
|
|
||||||
ubx_cfg_tp.payload.length = 1; /* 1µS */
|
|
||||||
ubx_cfg_tp.payload.status = 1; /* On, Positive */
|
|
||||||
ubx_cfg_tp.payload.timeRef = 1; /* Align GPS time */
|
|
||||||
ubx_cfg_tp.payload.flags = 0x1; /* Run outside lock */
|
|
||||||
ubx_cfg_tp.payload.antennaCableDelay = 50; /* 50 nS */
|
|
||||||
|
|
||||||
/* Write the new settings */
|
|
||||||
_ubx_send_message((ubx_message_t*)&ubx_cfg_tp,
|
|
||||||
(uint8_t*)&ubx_cfg_tp.payload,
|
|
||||||
sizeof(ubx_cfg_tp.payload));
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* Set the GPS timepulse settings using the CFG_TP5 message
|
* Set the GPS timepulse settings using the CFG_TP5 message
|
||||||
*/
|
*/
|
||||||
|
|
Ładowanie…
Reference in New Issue