Skip to content

Commit

Permalink
Release v3.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
mantoine committed Nov 2, 2021
1 parent c0ddbbb commit f46c223
Show file tree
Hide file tree
Showing 76 changed files with 1,124 additions and 1,469 deletions.
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,19 @@ All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## [v3.2.0] 2021-11-03

### Changed

- Upgrade LR1110 driver to version v6.0.0 compliant with transceiver firmware 0307
- GNSS scan modes are now `mode_0_legacy` and `mode_3_with_5_fast`
- The python applications `Lr1110Demo` and `FieldTestPost` handle the multi-frame GNSS solving

### Removed

- GNSS scan mode `dual`

## [v3.1.0] 2021-07-20

### Added
Expand Down
2 changes: 1 addition & 1 deletion embedded/application/inc/version_file.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@
#ifndef VERSION_H
#define VERSION_H

#define VERSION "v3.1.0"
#define VERSION "v3.2.0"

#endif // VERSION_H
1 change: 1 addition & 0 deletions embedded/communication/inc/communication_demo.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ class CommunicationDemo : public CommunicationInterface
uint16_t& buffer_length_received, const uint16_t timeout );
void SendCommand( const char* command );
void Store( const char* fmt, ... );
static const char* ConstellationToChar( const demo_gnss_constellation_t constellation );
};

#endif // __COMMUNICATION_DEMO_H__
36 changes: 35 additions & 1 deletion embedded/communication/src/communication_demo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,18 @@ void CommunicationDemo::Store( const demo_gnss_all_results_t& gnss_results, uint
{
printf( "%02x", gnss_results.nav_message.message[index] );
}
printf( ", %u, %u, %u", delay_since_capture, gnss_results.timings.radio_ms, gnss_results.timings.computation_ms );
printf( ", %u, %u, %u, ", delay_since_capture, gnss_results.timings.radio_ms, gnss_results.timings.computation_ms );
for( uint8_t index_sv = 0; index_sv < gnss_results.nb_result; index_sv++ )
{
const demo_gnss_single_result_t& local_result = gnss_results.result[index_sv];
printf( "%u+%s+%i", local_result.satellite_id,
CommunicationDemo::ConstellationToChar( local_result.constellation ), local_result.snr );
if( index_sv < ( gnss_results.nb_result - 1 ) )
{
// Print the '|' separator between two consecutive satellite results
printf( "|" );
}
}
printf( "\n" );
}

Expand Down Expand Up @@ -251,4 +262,27 @@ CommunicationDemoStatus_t CommunicationDemo::AskAndParseResults( float& latitude
sscanf( reception_buffer, format, &latitude, &longitude, &altitude, &accuracy, geo_coding );
}
return status;
}

const char* CommunicationDemo::ConstellationToChar( const demo_gnss_constellation_t constellation )
{
const char* constellation_str = "";
switch( constellation )
{
case DEMO_GNSS_CONSTELLATION_BEIDOU:
{
constellation_str = ( const char* ) "BeiDou";
break;
}
case DEMO_GNSS_CONSTELLATION_GPS:
{
constellation_str = ( const char* ) "GPS";
break;
}
default:
{
constellation_str = ( const char* ) "unknown";
}
}
return constellation_str;
}
4 changes: 2 additions & 2 deletions embedded/demo/inc/demo_configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,13 @@ typedef enum
#define DEMO_WIFI_DOES_ABORT_ON_TIMEOUT_DEFAULT ( true )

#define DEMO_GNSS_AUTONOMOUS_OPTION_DEFAULT ( DEMO_GNSS_OPTION_DEFAULT )
#define DEMO_GNSS_AUTONOMOUS_CAPTURE_MODE_DEFAULT ( DEMO_GNSS_SINGLE_SCAN_MODE )
#define DEMO_GNSS_AUTONOMOUS_CAPTURE_MODE_DEFAULT ( DEMO_GNSS_SCAN_MODE_3 )
#define DEMO_GNSS_AUTONOMOUS_N_SATELLLITE_DEFAULT ( 0 )
#define DEMO_GNSS_AUTONOMOUS_ANTENNA_SELECTION_DEFAULT ( DEMO_GNSS_NO_ANTENNA_SELECTION )
#define DEMO_GNSS_AUTONOMOUS_CONSTELLATION_MASK_DEFAULT ( DEMO_GNSS_GPS_MASK | DEMO_GNSS_BEIDOU_MASK )

#define DEMO_GNSS_ASSISTED_OPTION_DEFAULT ( DEMO_GNSS_OPTION_DEFAULT )
#define DEMO_GNSS_ASSISTED_CAPTURE_MODE_DEFAULT ( DEMO_GNSS_SINGLE_SCAN_MODE )
#define DEMO_GNSS_ASSISTED_CAPTURE_MODE_DEFAULT ( DEMO_GNSS_SCAN_MODE_3 )
#define DEMO_GNSS_ASSISTED_N_SATELLLITE_DEFAULT ( 0 )
#define DEMO_GNSS_ASSISTED_ANTENNA_SELECTION_DEFAULT ( DEMO_GNSS_NO_ANTENNA_SELECTION )
#define DEMO_GNSS_ASSISTED_CONSTELLATION_MASK_DEFAULT ( DEMO_GNSS_GPS_MASK | DEMO_GNSS_BEIDOU_MASK )
Expand Down
8 changes: 4 additions & 4 deletions embedded/demo/inc/demo_gnss_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ typedef enum
DEMO_GNSS_BASE_ERROR_NO_SATELLITE,
DEMO_GNSS_BASE_ERROR_ALMANAC_TOO_OLD,
DEMO_GNSS_BASE_NAV_MESSAGE_TOO_LONG,
DEMO_GNSS_BASE_ERROR_NO_ENOUGH_SATTELITE_TO_BUILD_NAV,
DEMO_GNSS_BASE_ERROR_UNKNOWN,
} demo_gnss_error_t;

Expand All @@ -51,7 +52,6 @@ typedef struct
demo_gnss_single_result_t result[GNSS_DEMO_MAX_RESULT_TOTAL];
demo_gnss_nav_result_t nav_message;
uint32_t local_instant_measurement;
uint32_t local_instant_measurement_second_capture;
uint16_t almanac_age_days;
bool almanac_too_old;
} demo_gnss_all_results_t;
Expand All @@ -75,10 +75,10 @@ typedef enum
DEMO_GNSS_OPTION_BEST_EFFORT,
} demo_gnss_search_mode_t;

typedef enum
typedef enum demo_gnss_scan_mode_e
{
DEMO_GNSS_SINGLE_SCAN_MODE,
DEMO_GNSS_DOUBLE_SCAN_MODE,
DEMO_GNSS_SCAN_MODE_0,
DEMO_GNSS_SCAN_MODE_3,
} demo_gnss_scan_mode_t;

typedef struct
Expand Down
2 changes: 0 additions & 2 deletions embedded/demo/inc/demo_modem_gnss_interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,7 @@ class DemoModemGnssInterface : public DemoModemInterface
demo_gnss_all_results_t result;
EnvironmentInterface* environment;
demo_gnss_settings_t settings;
uint8_t inter_capture_delay_s;
uint16_t instant_start_capture_ms;
uint16_t instant_second_capture_ms;
AntennaSelectorInterface* antenna_selector;
};

Expand Down
4 changes: 0 additions & 4 deletions embedded/demo/inc/demo_transceiver_gnss_interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@ typedef enum
DEMO_GNSS_BASE_INIT,
DEMO_GNSS_BASE_SCAN,
DEMO_GNSS_BASE_WAIT_FOR_SCAN,
DEMO_GNSS_BASE_WAIT_AND_EXECUTE_SECOND_SCAN,
DEMO_GNSS_BASE_WAIT_FOR_SECOND_SCAN,
DEMO_GNSS_BASE_GET_RESULTS,
DEMO_GNSS_BASE_TERMINATED,
DEMO_GNSS_BASE_ERROR,
Expand Down Expand Up @@ -138,9 +136,7 @@ class DemoTransceiverGnssInterface : public DemoTransceiverInterface
demo_gnss_state_t state;
demo_gnss_all_results_t result;
demo_gnss_settings_t settings;
uint8_t inter_capture_delay_s;
uint16_t instant_start_capture_ms;
uint16_t instant_second_capture_ms;
AntennaSelectorInterface* antenna_selector;
};

Expand Down
24 changes: 10 additions & 14 deletions embedded/demo/src/demo_modem_gnss_interface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,7 @@ DemoModemGnssInterface::DemoModemGnssInterface( DeviceModem* device, SignalingIn
timer( timer ),
state( DEMO_MODEM_GNSS_BASE_INIT ),
environment( environment ),
inter_capture_delay_s( 0 ),
instant_start_capture_ms( 0 ),
instant_second_capture_ms( 0 ),
antenna_selector( antenna_selector )
{
}
Expand All @@ -57,18 +55,16 @@ DemoModemGnssInterface::~DemoModemGnssInterface( ) {}
void DemoModemGnssInterface::Reset( )
{
this->DemoInterface::Reset( );
this->state = DEMO_MODEM_GNSS_BASE_INIT;
this->result.nb_result = 0;
this->result.nav_message.size = 0;
this->result.consumption_uas = 0;
this->result.error = DEMO_GNSS_BASE_NO_ERROR;
this->result.timings = { 0 };
this->result.local_instant_measurement = 0;
this->result.local_instant_measurement_second_capture = 0;
this->result.almanac_too_old = false;
this->result.almanac_age_days = 0;
this->instant_start_capture_ms = 0;
this->instant_second_capture_ms = 0;
this->state = DEMO_MODEM_GNSS_BASE_INIT;
this->result.nb_result = 0;
this->result.nav_message.size = 0;
this->result.consumption_uas = 0;
this->result.error = DEMO_GNSS_BASE_NO_ERROR;
this->result.timings = { 0 };
this->result.local_instant_measurement = 0;
this->result.almanac_too_old = false;
this->result.almanac_age_days = 0;
this->instant_start_capture_ms = 0;
}

void DemoModemGnssInterface::JumpToErrorState( const demo_gnss_error_t error_code )
Expand Down
8 changes: 2 additions & 6 deletions embedded/demo/src/demo_transceiver_gnss_assisted.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,11 @@ void DemoTransceiverGnssAssisted::CallScan( )

lr1110_gnss_set_assistance_position( this->device->GetRadio( ), &gnss_position );

if( this->GetSettings( ).capture_mode == DEMO_GNSS_DOUBLE_SCAN_MODE )
{
this->timer->set_and_start( 30005 );
}

lr1110_gnss_scan_assisted(
this->device->GetRadio( ), gnss_time,
DemoTransceiverGnssInterface::TransceiverSearchModeFromDemo( this->GetSettings( ).option ),
LR1110_GNSS_BIT_CHANGE_MASK | LR1110_GNSS_DOPPLER_MASK | LR1110_GNSS_IRQ_PSEUDO_RANGE_MASK,
LR1110_GNSS_RESULTS_DOPPLER_ENABLE_MASK | LR1110_GNSS_RESULTS_DOPPLER_MASK |
LR1110_GNSS_RESULTS_BIT_CHANGE_MASK,
this->GetSettings( ).nb_satellites );
}

Expand Down
8 changes: 2 additions & 6 deletions embedded/demo/src/demo_transceiver_gnss_autonomous.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,10 @@ void DemoTransceiverGnssAutonomous::CallScan( )
const lr1110_gnss_date_t gnss_time =
DemoTransceiverGnssInterface::GnssTimeFromEnvironment( this->GetEnvironment( )->GetDateTime( ) );

if( this->GetSettings( ).capture_mode == DEMO_GNSS_DOUBLE_SCAN_MODE )
{
this->timer->set_and_start( 30000 );
}

lr1110_gnss_scan_autonomous(
this->device->GetRadio( ), gnss_time,
DemoTransceiverGnssInterface::TransceiverSearchModeFromDemo( this->GetSettings( ).option ),
LR1110_GNSS_BIT_CHANGE_MASK | LR1110_GNSS_DOPPLER_MASK | LR1110_GNSS_IRQ_PSEUDO_RANGE_MASK,
LR1110_GNSS_RESULTS_DOPPLER_ENABLE_MASK | LR1110_GNSS_RESULTS_DOPPLER_MASK |
LR1110_GNSS_RESULTS_BIT_CHANGE_MASK,
this->GetSettings( ).nb_satellites );
}
Loading

0 comments on commit f46c223

Please sign in to comment.