mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-26 17:55:30 +03:00
UBLOX Full Power mode + default STATIONARY model (#12659)
This commit is contained in:
parent
3bfbac4aa8
commit
a0d009c4df
5 changed files with 31 additions and 4 deletions
|
@ -1006,6 +1006,7 @@ const clivalue_t valueTable[] = {
|
|||
{ PARAM_NAME_GPS_UBLOX_ACQUIRE_MODEL, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_GPS_UBLOX_MODELS }, PG_GPS_CONFIG, offsetof(gpsConfig_t, gps_ublox_acquire_model) },
|
||||
{ PARAM_NAME_GPS_UBLOX_FLIGHT_MODEL, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_GPS_UBLOX_MODELS }, PG_GPS_CONFIG, offsetof(gpsConfig_t, gps_ublox_flight_model) },
|
||||
{ PARAM_NAME_GPS_UBLOX_USE_GALILEO, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_GPS_CONFIG, offsetof(gpsConfig_t, gps_ublox_use_galileo) },
|
||||
{ PARAM_NAME_GPS_UBLOX_FULL_POWER, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_GPS_CONFIG, offsetof(gpsConfig_t, gps_ublox_full_power) },
|
||||
{ PARAM_NAME_GPS_SET_HOME_POINT_ONCE, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_GPS_CONFIG, offsetof(gpsConfig_t, gps_set_home_point_once) },
|
||||
{ PARAM_NAME_GPS_USE_3D_SPEED, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_GPS_CONFIG, offsetof(gpsConfig_t, gps_use_3d_speed) },
|
||||
{ PARAM_NAME_GPS_SBAS_INTEGRITY, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_GPS_CONFIG, offsetof(gpsConfig_t, sbas_integrity) },
|
||||
|
@ -1152,7 +1153,7 @@ const clivalue_t valueTable[] = {
|
|||
#endif
|
||||
|
||||
#ifdef USE_INTEGRATED_YAW_CONTROL
|
||||
{ PARAM_NAME_USE_INTEGRATED_YAW, VAR_UINT8 | PROFILE_VALUE | MODE_LOOKUP, .config.lookup = {TABLE_OFF_ON }, PG_PID_PROFILE, offsetof(pidProfile_t, use_integrated_yaw) },
|
||||
{ PARAM_NAME_USE_INTEGRATED_YAW, VAR_UINT8 | PROFILE_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_PID_PROFILE, offsetof(pidProfile_t, use_integrated_yaw) },
|
||||
{ "integrated_yaw_relax", VAR_UINT8 | PROFILE_VALUE, .config.minmaxUnsigned = { 0, 255 }, PG_PID_PROFILE, offsetof(pidProfile_t, integrated_yaw_relax) },
|
||||
#endif
|
||||
|
||||
|
|
|
@ -144,6 +144,7 @@
|
|||
#define PARAM_NAME_GPS_AUTO_CONFIG "gps_auto_config"
|
||||
#define PARAM_NAME_GPS_AUTO_BAUD "gps_auto_baud"
|
||||
#define PARAM_NAME_GPS_UBLOX_USE_GALILEO "gps_ublox_use_galileo"
|
||||
#define PARAM_NAME_GPS_UBLOX_FULL_POWER "gps_ublox_full_power"
|
||||
#define PARAM_NAME_GPS_UBLOX_ACQUIRE_MODEL "gps_ublox_acquire_model"
|
||||
#define PARAM_NAME_GPS_UBLOX_FLIGHT_MODEL "gps_ublox_flight_model"
|
||||
#define PARAM_NAME_GPS_SET_HOME_POINT_ONCE "gps_set_home_point_once"
|
||||
|
|
|
@ -152,6 +152,7 @@ typedef enum {
|
|||
MSG_CFG_SET_RATE = 0x01,
|
||||
MSG_CFG_SBAS = 0x16,
|
||||
MSG_CFG_NAV_SETTINGS = 0x24,
|
||||
MSG_CFG_PMS = 0x86,
|
||||
MSG_CFG_GNSS = 0x3E
|
||||
} ubxProtocolBytes_e;
|
||||
|
||||
|
@ -214,6 +215,14 @@ typedef struct ubxCfgGnss_s {
|
|||
ubxConfigblock_t configblocks[7];
|
||||
} ubxCfgGnss_t;
|
||||
|
||||
typedef struct ubxCfgPms_s {
|
||||
uint8_t version;
|
||||
uint8_t powerSetupValue;
|
||||
uint16_t period;
|
||||
uint16_t onTime;
|
||||
uint8_t reserved1[2];
|
||||
} ubxCfgPms_t;
|
||||
|
||||
typedef struct ubxCfgNav5_s {
|
||||
uint16_t mask;
|
||||
uint8_t dynModel;
|
||||
|
@ -243,6 +252,7 @@ typedef union ubxPayload_s {
|
|||
ubxCfgNav5_t cfg_nav5;
|
||||
ubxCfgSbas_t cfg_sbas;
|
||||
ubxCfgGnss_t cfg_gnss;
|
||||
ubxCfgPms_t cfg_pms;
|
||||
} ubxPayload_t;
|
||||
|
||||
typedef struct ubxMessage_s {
|
||||
|
@ -266,7 +276,8 @@ typedef enum {
|
|||
UBLOX_MSG_DOP, // 12. MSG_DOP
|
||||
UBLOX_SET_NAV_RATE, // 13. set GPS sample rate
|
||||
UBLOX_SET_SBAS, // 14. Sets SBAS
|
||||
UBLOX_MSG_CFG_GNSS // 15. For not SBAS or GALILEO otherwise GPS_STATE_REVEIVING_DATA
|
||||
UBLOX_SET_PMS, // 15. Sets Power Mode
|
||||
UBLOX_MSG_CFG_GNSS // 16. For not SBAS or GALILEO otherwise GPS_STATE_REVEIVING_DATA
|
||||
} ubloxStatePosition_e;
|
||||
|
||||
#endif // USE_GPS_UBLOX
|
||||
|
@ -510,7 +521,16 @@ static void ubloxSendNAV5Message(uint8_t model)
|
|||
|
||||
ubloxSendConfigMessage(&tx_buffer, MSG_CFG_NAV_SETTINGS, sizeof(ubxCfgNav5_t));
|
||||
}
|
||||
|
||||
static void ubloxSendPowerMode(void)
|
||||
{
|
||||
ubxMessage_t tx_buffer;
|
||||
tx_buffer.payload.cfg_pms.powerSetupValue = !gpsConfig()->gps_ublox_full_power;
|
||||
tx_buffer.payload.cfg_pms.period = 0;
|
||||
tx_buffer.payload.cfg_pms.onTime = 0;
|
||||
tx_buffer.payload.cfg_pms.reserved1[0] = 0;
|
||||
tx_buffer.payload.cfg_pms.reserved1[1] = 0;
|
||||
ubloxSendConfigMessage(&tx_buffer, MSG_CFG_PMS, sizeof(ubxCfgPms_t));
|
||||
}
|
||||
static void ubloxSetMessageRate(uint8_t messageClass, uint8_t messageID, uint8_t rate)
|
||||
{
|
||||
ubxMessage_t tx_buffer;
|
||||
|
@ -694,6 +714,9 @@ void gpsInitUblox(void)
|
|||
case UBLOX_SET_SBAS:
|
||||
ubloxSetSbas();
|
||||
break;
|
||||
case UBLOX_SET_PMS:
|
||||
ubloxSendPowerMode();
|
||||
break;
|
||||
case UBLOX_MSG_CFG_GNSS:
|
||||
if ((gpsConfig()->sbasMode == SBAS_NONE) || (gpsConfig()->gps_ublox_use_galileo)) {
|
||||
ubloxSendPollMessage(MSG_CFG_GNSS);
|
||||
|
|
|
@ -36,9 +36,10 @@ PG_RESET_TEMPLATE(gpsConfig_t, gpsConfig,
|
|||
.sbasMode = SBAS_NONE,
|
||||
.autoConfig = GPS_AUTOCONFIG_ON,
|
||||
.autoBaud = GPS_AUTOBAUD_OFF,
|
||||
.gps_ublox_acquire_model = UBLOX_MODEL_AIRBORNE_4G,
|
||||
.gps_ublox_acquire_model = UBLOX_MODEL_STATIONARY,
|
||||
.gps_ublox_flight_model = UBLOX_MODEL_AIRBORNE_4G,
|
||||
.gps_ublox_use_galileo = false,
|
||||
.gps_ublox_full_power = true,
|
||||
.gps_set_home_point_once = false,
|
||||
.gps_use_3d_speed = false,
|
||||
.sbas_integrity = false,
|
||||
|
|
|
@ -33,6 +33,7 @@ typedef struct gpsConfig_s {
|
|||
uint8_t gps_ublox_acquire_model;
|
||||
uint8_t gps_ublox_flight_model;
|
||||
bool gps_ublox_use_galileo;
|
||||
bool gps_ublox_full_power;
|
||||
bool gps_set_home_point_once;
|
||||
bool gps_use_3d_speed;
|
||||
bool sbas_integrity;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue