Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed SX1280Lib DmTftLibrary
* This code MUST run on the mbed library release 127 or everything will be painfully slow.*
Revision 8:c0a5f53fe196, committed 2017-05-11
- Comitter:
- GregCr
- Date:
- Thu May 11 15:42:05 2017 +0000
- Parent:
- 7:bc2f0fe8056f
- Child:
- 9:0efc2c99078f
- Commit message:
- Corrected driver to match datasheet, corrected FW version registers, improved ranging performances at short distance
Changed in this revision
--- a/Demo/DemoApplication.cpp Wed Apr 19 14:21:05 2017 +0000
+++ b/Demo/DemoApplication.cpp Thu May 11 15:42:05 2017 +0000
@@ -13,12 +13,23 @@
*/
#include "mbed.h"
+#include <math.h>
#include "radio.h"
#include "sx1280-hal.h"
#include "Eeprom.h"
#include "DemoApplication.h"
#include "FreqLUT.h"
+double t0 = -0.016432807883697; // X0
+double t1 = 0.323147003165358; // X1
+double t2 = 0.014922061351196; // X1^2
+double t3 = 0.000137832006285; // X1^3
+double t4 = 0.536873856625399; // X2
+double t5 = 0.040890089178579; // X2^2
+double t6 = -0.001074801048732; // X2^3
+double t7 = 0.000009240142234; // X2^4
+
+
/*!
* \brief Defines the local payload buffer size
@@ -74,9 +85,11 @@
uint8_t Buffer[BUFFER_SIZE];
static uint8_t CurrentChannel;
-static uint8_t MeasuredChannels;
+static uint16_t MeasuredChannels;
int RngResultIndex;
double RawRngResults[DEMO_RNG_CHANNELS_COUNT_MAX];
+double RssiRng[DEMO_RNG_CHANNELS_COUNT_MAX];
+
/*!
* \brief Function to be executed on Radio Tx Done event
@@ -969,8 +982,8 @@
if( Eeprom.EepromData.DemoSettings.Entity == MASTER )
{
Eeprom.EepromData.DemoSettings.InterPacketDelay = RefreshScreenDelayMs;
- Radio.SetDioIrqParams( IRQ_RX_DONE | IRQ_TX_DONE | IRQ_RX_TX_TIMEOUT | IRQ_RANGING_MASTER_RESULT_VALID | IRQ_RANGING_MASTER_RESULT_TIMEOUT,
- IRQ_RX_DONE | IRQ_TX_DONE | IRQ_RX_TX_TIMEOUT | IRQ_RANGING_MASTER_RESULT_VALID | IRQ_RANGING_MASTER_RESULT_TIMEOUT,
+ Radio.SetDioIrqParams( IRQ_RX_DONE | IRQ_TX_DONE | IRQ_RX_TX_TIMEOUT | IRQ_RANGING_MASTER_RESULT_VALID | IRQ_RANGING_MASTER_TIMEOUT,
+ IRQ_RX_DONE | IRQ_TX_DONE | IRQ_RX_TX_TIMEOUT | IRQ_RANGING_MASTER_RESULT_VALID | IRQ_RANGING_MASTER_TIMEOUT,
IRQ_RADIO_NONE, IRQ_RADIO_NONE );
Eeprom.EepromData.DemoSettings.RngDistance = 0.0;
DemoInternalState = APP_RANGING_CONFIG;
@@ -999,7 +1012,7 @@
memcpy( &( PacketParams.Params.LoRa.PreambleLength ), Eeprom.Buffer + PAK_RNG_PREAMBLE_LEN_EEPROM_ADDR, 1 );
memcpy( &( PacketParams.Params.LoRa.HeaderType ), Eeprom.Buffer + PAK_RNG_HEADERTYPE_EEPROM_ADDR, 1 );
PacketParams.Params.LoRa.PayloadLength = 7;
- memcpy( &( PacketParams.Params.LoRa.CrcMode ), Eeprom.Buffer + PAK_RNG_CRC_MODE_EEPROM_ADDR, 1 );
+ memcpy( &( PacketParams.Params.LoRa.Crc ), Eeprom.Buffer + PAK_RNG_CRC_MODE_EEPROM_ADDR, 1 );
memcpy( &( PacketParams.Params.LoRa.InvertIQ ), Eeprom.Buffer + PAK_RNG_IQ_INV_EEPROM_ADDR, 1 );
Radio.SetPacketType( ModulationParams.PacketType );
Radio.SetModulationParams( &ModulationParams );
@@ -1122,7 +1135,7 @@
memcpy( &( PacketParams.Params.LoRa.PreambleLength ), Eeprom.Buffer + PAK_RNG_PREAMBLE_LEN_EEPROM_ADDR, 1 );
memcpy( &( PacketParams.Params.LoRa.HeaderType ), Eeprom.Buffer + PAK_RNG_HEADERTYPE_EEPROM_ADDR, 1 );
PacketParams.Params.LoRa.PayloadLength = 10;
- memcpy( &( PacketParams.Params.LoRa.CrcMode ), Eeprom.Buffer + PAK_RNG_CRC_MODE_EEPROM_ADDR, 1 );
+ memcpy( &( PacketParams.Params.LoRa.Crc ), Eeprom.Buffer + PAK_RNG_CRC_MODE_EEPROM_ADDR, 1 );
memcpy( &( PacketParams.Params.LoRa.InvertIQ ), Eeprom.Buffer + PAK_RNG_IQ_INV_EEPROM_ADDR, 1 );
Radio.SetPacketType( ModulationParams.PacketType );
@@ -1174,12 +1187,14 @@
RX_LED = 0;
DemoInternalState = APP_RANGING_CONFIG;
Eeprom.EepromData.DemoSettings.HoldDemo = true;
+ refreshDisplay = 1; // display error on token color (RNG_TIMEOUT)
break;
case APP_TX_TIMEOUT:
TX_LED = 0;
DemoInternalState = APP_RANGING_CONFIG;
Eeprom.EepromData.DemoSettings.HoldDemo = true;
+ refreshDisplay = 1; // display error on token color (RNG_TIMEOUT)
break;
case APP_IDLE: // do nothing
@@ -1205,7 +1220,7 @@
memcpy( &( PacketParams.Params.LoRa.PreambleLength ), Eeprom.Buffer + PAK_RNG_PREAMBLE_LEN_EEPROM_ADDR, 1 );
memcpy( &( PacketParams.Params.LoRa.HeaderType ), Eeprom.Buffer + PAK_RNG_HEADERTYPE_EEPROM_ADDR, 1 );
PacketParams.Params.LoRa.PayloadLength = 9;
- memcpy( &( PacketParams.Params.LoRa.CrcMode ), Eeprom.Buffer + PAK_RNG_CRC_MODE_EEPROM_ADDR, 1 );
+ memcpy( &( PacketParams.Params.LoRa.Crc ), Eeprom.Buffer + PAK_RNG_CRC_MODE_EEPROM_ADDR, 1 );
memcpy( &( PacketParams.Params.LoRa.InvertIQ ), Eeprom.Buffer + PAK_RNG_IQ_INV_EEPROM_ADDR, 1 );
Radio.SetPacketType( ModulationParams.PacketType );
Radio.SetModulationParams( &ModulationParams );
@@ -1229,7 +1244,8 @@
switch( Eeprom.EepromData.DemoSettings.RngAntenna )
{
case DEMO_RNG_ANT_1:
- ANT_SW = 1; // ANT1
+ //ANT_SW = 1; // ANT1
+ Eeprom.EepromData.DemoSettings.AntennaSwitch = 0;
CurrentChannel++;
if( CurrentChannel >= CHANNELS )
{
@@ -1238,7 +1254,8 @@
break;
case DEMO_RNG_ANT_2:
- ANT_SW = 0; // ANT2
+ //ANT_SW = 0; // ANT2
+ Eeprom.EepromData.DemoSettings.AntennaSwitch = 1;
CurrentChannel++;
if( CurrentChannel >= CHANNELS )
{
@@ -1249,11 +1266,13 @@
case DEMO_RNG_ANT_BOTH:
if( ANT_SW == 1 )
{
- ANT_SW = 0;
+ //ANT_SW = 0;
+ Eeprom.EepromData.DemoSettings.AntennaSwitch = 1;
}
else
{
- ANT_SW = 1;
+ //ANT_SW = 1;
+ Eeprom.EepromData.DemoSettings.AntennaSwitch = 0;
CurrentChannel++;
if( CurrentChannel >= CHANNELS )
{
@@ -1337,7 +1356,7 @@
memcpy( &( PacketParams.Params.LoRa.PreambleLength ), Eeprom.Buffer + PAK_RNG_PREAMBLE_LEN_EEPROM_ADDR, 1 );
memcpy( &( PacketParams.Params.LoRa.HeaderType ), Eeprom.Buffer + PAK_RNG_HEADERTYPE_EEPROM_ADDR, 1 );
PacketParams.Params.LoRa.PayloadLength = 10;
- memcpy( &( PacketParams.Params.LoRa.CrcMode ), Eeprom.Buffer + PAK_RNG_CRC_MODE_EEPROM_ADDR, 1 );
+ memcpy( &( PacketParams.Params.LoRa.Crc ), Eeprom.Buffer + PAK_RNG_CRC_MODE_EEPROM_ADDR, 1 );
memcpy( &( PacketParams.Params.LoRa.InvertIQ ), Eeprom.Buffer + PAK_RNG_IQ_INV_EEPROM_ADDR, 1 );
Radio.SetPacketType( ModulationParams.PacketType );
@@ -1501,7 +1520,7 @@
double tPreamble = ( Eeprom.EepromData.PacketParams.Params.LoRa.PreambleLength + 4.25 ) * ts; // time of preamble
uint8_t de = 1; // always 1 on SX1280. "low data rate optimization" condition.
double tmp = ceil( ( 8 * Eeprom.EepromData.PacketParams.Params.LoRa.PayloadLength - 4 * ( Eeprom.EepromData.ModulationParams.Params.LoRa.SpreadingFactor >> 4 ) +
- 28 + 16 * ( ( Eeprom.EepromData.PacketParams.Params.LoRa.CrcMode == 0x00 ) ? 0 : 1 ) - \
+ 28 + 16 * ( ( Eeprom.EepromData.PacketParams.Params.LoRa.Crc == 0x00 ) ? 0 : 1 ) - \
( ( Eeprom.EepromData.PacketParams.Params.LoRa.HeaderType >> 7 ) ? 20 : 0 ) ) / \
( double )( 4 * ( ( Eeprom.EepromData.ModulationParams.Params.LoRa.SpreadingFactor >> 4 ) - ( de * 2 ) ) ) * \
( ( Eeprom.EepromData.ModulationParams.Params.LoRa.CodingRate % 4 ) + 4 ) ); // Symbol length of payload and time
@@ -1724,7 +1743,7 @@
PacketParams.Params.LoRa.PreambleLength = Eeprom.EepromData.DemoSettings.PacketParam1;
PacketParams.Params.LoRa.HeaderType = ( RadioLoRaPacketLengthsModes_t )Eeprom.EepromData.DemoSettings.PacketParam2;
PacketParams.Params.LoRa.PayloadLength = Eeprom.EepromData.DemoSettings.PacketParam3;
- PacketParams.Params.LoRa.CrcMode = ( RadioLoRaCrcModes_t ) Eeprom.EepromData.DemoSettings.PacketParam4;
+ PacketParams.Params.LoRa.Crc = ( RadioLoRaCrcModes_t ) Eeprom.EepromData.DemoSettings.PacketParam4;
PacketParams.Params.LoRa.InvertIQ = ( RadioLoRaIQModes_t ) Eeprom.EepromData.DemoSettings.PacketParam5;
Eeprom.EepromData.DemoSettings.PayloadLength = PacketParams.Params.LoRa.PayloadLength;
@@ -1805,7 +1824,8 @@
// only used in GFSK, FLRC (4 bytes max) and BLE mode
Radio.SetSyncWord( 1, ( uint8_t[] ){ 0xDD, 0xA0, 0x96, 0x69, 0xDD } );
// only used in GFSK, FLRC
- Radio.SetCrcSeed( 0x4567 );
+ uint8_t crcSeedLocal[3] = { 0x00, 0x45, 0x67 };
+ Radio.SetCrcSeed( crcSeedLocal );
Radio.SetCrcPolynomial( 0x0123 );
Radio.SetTxParams( Eeprom.EepromData.DemoSettings.TxPower, RADIO_RAMP_20_US );
}
@@ -1826,78 +1846,46 @@
uint8_t CheckDistance( void )
{
double mean = 0.0;
- double meanRaw = 0.0;
double total = 0.0;
- double squareDeviation = 0.0;
- double squareDeviationRaw = 0.0;
- uint8_t j = 0;
- uint8_t i;
+ double rssi = Eeprom.EepromData.DemoSettings.RssiValue;
+
+ uint16_t j = 0;
+ uint16_t i;
printf( "#id: %d", Eeprom.EepromData.DemoSettings.CntPacketTx );
if( RngResultIndex > 0 )
{
- // compute average and std deviation w/o frequency correction
- for( i = 0; i < RngResultIndex; ++i )
- {
- total += RawRngResults[i];
- squareDeviationRaw += RawRngResults[i] * RawRngResults[i];
- }
- meanRaw = total / RngResultIndex;
- squareDeviationRaw = sqrt( ( squareDeviationRaw / RngResultIndex ) - ( meanRaw * meanRaw ) );
-
// compute average and std deviation
total = 0.0;
for( i = 0; i < RngResultIndex; ++i )
{
- RawRngResults[i] -= ( Eeprom.EepromData.DemoSettings.RngFeiFactor * Eeprom.EepromData.DemoSettings.RngFei / 1000 );
- total += RawRngResults[i];
- squareDeviation += RawRngResults[i] * RawRngResults[i];
+ RawRngResults[i] = RawRngResults[i] - ( Eeprom.EepromData.DemoSettings.RngFeiFactor * Eeprom.EepromData.DemoSettings.RngFei / 1000 );
}
- mean = total / RngResultIndex;
- squareDeviation = sqrt( ( squareDeviation / RngResultIndex ) - ( mean * mean ) );
- printf( ", Moy: %5.1f, Std: %6.3f", mean, squareDeviation );
-/*
- * also use RSSI since chip V3 for filter ranging values
- */
- total = 0.0;
- // select measure with correct Z Score
- for( i = 0; i < RngResultIndex; ++i )
+ for (int i = RngResultIndex - 1; i > 0; --i)
{
- if( ( fabs( RawRngResults[i] - meanRaw ) / squareDeviationRaw ) <= ( double )Eeprom.EepromData.DemoSettings.RngZscoreMax )
+ for (int j = 0; j < i; ++j)
{
- total += RawRngResults[i];
- j++;
+ if (RawRngResults[j] > RawRngResults[j+1])
+ {
+ int temp = RawRngResults[j];
+ RawRngResults[j] = RawRngResults[j+1];
+ RawRngResults[j+1] = temp;
+ }
}
}
- if( j > 0 )
- {
- meanRaw = total / j;
- }
- else
- {
- meanRaw = 0.0;
- }
- Eeprom.EepromData.DemoSettings.RngRawDistance = meanRaw;
- total = 0.0;
- j = 0;
- // select measure with correct Z Score
- for( i = 0; i < RngResultIndex; ++i )
+ double median;
+ if ((RngResultIndex % 2) == 0)
{
- if( ( fabs( RawRngResults[i] - mean ) / squareDeviation ) <= ( double )Eeprom.EepromData.DemoSettings.RngZscoreMax )
- {
- total += RawRngResults[i];
- j++;
- }
+ median = (RawRngResults[RngResultIndex/2] + RawRngResults[(RngResultIndex/2) - 1])/2.0;
+ }
+ else
+ {
+ median = RawRngResults[RngResultIndex/2];
}
- if( j > 0 )
- {
- mean = total / j;
- }
- else
- {
- mean = 0.0;
- }
+
+ mean = t0 + t1 * rssi + t2 * pow(rssi,2) + t3 * pow(rssi, 3) +t4 * median + t5 * pow(median,2) + t6 * pow(median, 3) + t7 * pow(median, 4) ;
+
if( j < DEMO_RNG_CHANNELS_COUNT_MIN )
{
Eeprom.EepromData.DemoSettings.RngStatus = RNG_PER_ERROR;
@@ -1906,10 +1894,7 @@
{
Eeprom.EepromData.DemoSettings.RngStatus = RNG_VALID;
}
- if( mean <= 18.5 )
- {
- mean = exp( ( mean + 2.4917 ) / 7.2262 );
- }
+
if( mean < 0 )
{
Eeprom.EepromData.DemoSettings.RngDistance = 0.0;
--- a/Demo/DemoApplication.h Wed Apr 19 14:21:05 2017 +0000
+++ b/Demo/DemoApplication.h Thu May 11 15:42:05 2017 +0000
@@ -19,7 +19,7 @@
/*!
* \brief Used to display firmware version on TFT (Utilities menu)
*/
-#define FIRMWARE_VERSION ( ( char* )"Firmware Version: 170331A" )
+#define FIRMWARE_VERSION ( ( char* )"Firmware Version: 170511" )
/*!
* \brief Define range of central frequency [Hz]
@@ -69,8 +69,8 @@
/*!
* \brief Define min and max ranging channels count
*/
-#define DEMO_RNG_CHANNELS_COUNT_MAX 90
-#define DEMO_RNG_CHANNELS_COUNT_MIN 10
+const uint16_t DEMO_RNG_CHANNELS_COUNT_MAX = 255;
+const uint16_t DEMO_RNG_CHANNELS_COUNT_MIN = 10;
/*!
* \brief Define min and max Z Score for ranging filtered results
@@ -171,7 +171,7 @@
double RngFeiFactor; // Ranging frequency correction factor
uint16_t RngReqDelay; // Time between ranging request
uint16_t RngCalib; // Ranging Calibration
- uint8_t RngZscoreMax; // Max Zscore for ranging value ( ! *10 ! )
+ uint8_t RFU; // -------------------------
int8_t RssiValue; // Demo Rssi Value
int8_t SnrValue; // Demo Snr Value (only for LORA mod. type)
}DemoSettings_t;
--- a/Demo/SX1280Lib.lib Wed Apr 19 14:21:05 2017 +0000 +++ b/Demo/SX1280Lib.lib Thu May 11 15:42:05 2017 +0000 @@ -1,1 +1,1 @@ -https://developer.mbed.org/teams/Semtech/code/SX1280Lib/#6cabb9538041 +https://developer.mbed.org/teams/Semtech/code/SX1280Lib/#abf14b677777
--- a/Display/Menu.cpp Wed Apr 19 14:21:05 2017 +0000
+++ b/Display/Menu.cpp Thu May 11 15:42:05 2017 +0000
@@ -962,7 +962,7 @@
if( graphObjectTouched == BTN1_BORDER )
{
Eeprom.EepromData.DemoSettings.RngRequestCount += 5;
- if( Eeprom.EepromData.DemoSettings.RngRequestCount > DEMO_RNG_CHANNELS_COUNT_MAX )
+ if( Eeprom.EepromData.DemoSettings.RngRequestCount >= DEMO_RNG_CHANNELS_COUNT_MAX )
{
Eeprom.EepromData.DemoSettings.RngRequestCount = DEMO_RNG_CHANNELS_COUNT_MIN;
}
@@ -970,15 +970,6 @@
}
else if( graphObjectTouched == BTN2_BORDER )
{
- Eeprom.EepromData.DemoSettings.RngZscoreMax += 1;
- if( Eeprom.EepromData.DemoSettings.RngZscoreMax > DEMO_RNG_ZSCORE_MAX )
- {
- Eeprom.EepromData.DemoSettings.RngZscoreMax = DEMO_RNG_ZSCORE_MIN;
- }
- ButtonChangeText( BTN2_BORDER, NULL, ( uint8_t* )GetRangingZscore( ) );
- }
- else if( graphObjectTouched == BTN3_BORDER )
- {
switch( Eeprom.EepromData.DemoSettings.RngAddress )
{
case DEMO_RNG_ADDR_1:
@@ -1001,9 +992,9 @@
Eeprom.EepromData.DemoSettings.RngAddress = DEMO_RNG_ADDR_1;
break;
}
- ButtonChangeText( BTN3_BORDER, NULL, ( uint8_t* )GetRangingAddress( ) );
+ ButtonChangeText( BTN2_BORDER, NULL, ( uint8_t* )GetRangingAddress( ) );
}
- else if( graphObjectTouched == BTN4_BORDER )
+ else if( graphObjectTouched == BTN3_BORDER )
{
switch( Eeprom.EepromData.DemoSettings.RngAntenna )
{
@@ -1019,16 +1010,16 @@
Eeprom.EepromData.DemoSettings.RngAntenna = DEMO_RNG_ANT_1;
break;
}
- ButtonChangeText( BTN4_BORDER, NULL, ( uint8_t* )GetRangingAntenna( ) );
+ ButtonChangeText( BTN3_BORDER, NULL, ( uint8_t* )GetRangingAntenna( ) );
}
- else if( graphObjectTouched == BTN5_BORDER )
+ else if( graphObjectTouched == BTN4_BORDER )
{
Eeprom.EepromData.DemoSettings.RngUnit++;
if( Eeprom.EepromData.DemoSettings.RngUnit > DEMO_RNG_UNIT_SEL_MI )
{
Eeprom.EepromData.DemoSettings.RngUnit = DEMO_RNG_UNIT_SEL_M;
}
- ButtonChangeText( BTN5_BORDER, NULL, ( uint8_t* )GetRangingUnit( ) );
+ ButtonChangeText( BTN4_BORDER, NULL, ( uint8_t* )GetRangingUnit( ) );
}
else if( graphObjectTouched == BTN7_BORDER )
{
@@ -1674,7 +1665,7 @@
DrawText( LINE6_COL0_TEXT, ( uint8_t* )"Packet :", ( uint8_t* )GetMenuDemoNumSentPacket( ), NULL );
DrawText( LINE7_COL0_TEXT, ( uint8_t* )"FEI [Hz] :", ( uint8_t* )GetFrequencyError( ), NULL );
DrawText( LINE8_COL0_TEXT, ( uint8_t* )"Channel :", ( uint8_t* )GetRngChannelsOk( ), NULL );
- DrawText( LINE9_COL0_TEXT, ( uint8_t* )"Zscore N :", ( uint8_t* )" 0", NULL );
+
DrawActiveButton( BTN7_BORDER, ( uint8_t* )" EXIT", NULL );
DrawActiveButton( BTN8_BORDER, ( uint8_t* )" START", NULL );
DrawActiveButton( BTN9_BORDER, ( uint8_t* )" SETTINGS", NULL );
@@ -1776,10 +1767,9 @@
DrawText( TITLE_TEXT, ( uint8_t* )" Settings : Ranging", NULL, NULL );
DrawActiveButton( BTN1_BORDER, ( uint8_t* )"Request:", ( uint8_t* )GetRangingRequestCount( ) );
- DrawActiveButton( BTN2_BORDER, ( uint8_t* )"Z score:", ( uint8_t* )GetRangingZscore( ) );
- DrawActiveButton( BTN3_BORDER, ( uint8_t* )"Address:", ( uint8_t* )GetRangingAddress( ) );
- DrawActiveButton( BTN4_BORDER, ( uint8_t* )"Antenna:", ( uint8_t* )GetRangingAntenna( ) );
- DrawActiveButton( BTN5_BORDER, ( uint8_t* )"Unit:", ( uint8_t* )GetRangingUnit( ) );
+ DrawActiveButton( BTN2_BORDER, ( uint8_t* )"Address:", ( uint8_t* )GetRangingAddress( ) );
+ DrawActiveButton( BTN3_BORDER, ( uint8_t* )"Antenna:", ( uint8_t* )GetRangingAntenna( ) );
+ DrawActiveButton( BTN4_BORDER, ( uint8_t* )"Unit:", ( uint8_t* )GetRangingUnit( ) );
DrawActiveButton( BTN7_BORDER, ( uint8_t* )" CANCEL", NULL );
DrawActiveButton( BTN8_BORDER, ( uint8_t* )" OK & SAVE", NULL );
}
@@ -2407,7 +2397,7 @@
{
Eeprom.EepromData.DemoSettings.CntPacketRxOK /= 2;
}
- sprintf( StringText2, " %02d/%02d", Eeprom.EepromData.DemoSettings.CntPacketRxOK, Eeprom.EepromData.DemoSettings.RngRequestCount );
+ sprintf( StringText2, "%03d/%03d", Eeprom.EepromData.DemoSettings.CntPacketRxOK, Eeprom.EepromData.DemoSettings.RngRequestCount );
return StringText2;
}
@@ -2417,12 +2407,6 @@
return StringText2;
}
-char* GetRangingZscore( void )
-{
- sprintf( StringText2, "%d", Eeprom.EepromData.DemoSettings.RngZscoreMax );
- return StringText2;
-}
-
char* GetRangingAddress( void )
{
sprintf( StringText2, "0x%08x", Eeprom.EepromData.DemoSettings.RngAddress );
--- a/Display/Menu.h Wed Apr 19 14:21:05 2017 +0000 +++ b/Display/Menu.h Thu May 11 15:42:05 2017 +0000 @@ -310,13 +310,6 @@ char* GetRangingRequestCount( void ); /*! - * \brief Return text with current Ranging Max Z Score Value. - * - * \retval text Pointer on text to display - */ -char* GetRangingZscore( void ); - -/*! * \brief Return text with current Ranging Address Value. * * \retval text Pointer on text to display
--- a/Peripherals/Eeprom.cpp Wed Apr 19 14:21:05 2017 +0000
+++ b/Peripherals/Eeprom.cpp Thu May 11 15:42:05 2017 +0000
@@ -90,7 +90,7 @@
Eeprom.EepromData.PacketParams.Params.LoRa.PreambleLength = Eeprom.EepromData.DemoSettings.PacketParam1;
Eeprom.EepromData.PacketParams.Params.LoRa.HeaderType = ( RadioLoRaPacketLengthsModes_t )Eeprom.EepromData.DemoSettings.PacketParam2;
Eeprom.EepromData.PacketParams.Params.LoRa.PayloadLength = Eeprom.EepromData.DemoSettings.PacketParam3;
- Eeprom.EepromData.PacketParams.Params.LoRa.CrcMode = ( RadioLoRaCrcModes_t ) Eeprom.EepromData.DemoSettings.PacketParam4;
+ Eeprom.EepromData.PacketParams.Params.LoRa.Crc = ( RadioLoRaCrcModes_t ) Eeprom.EepromData.DemoSettings.PacketParam4;
Eeprom.EepromData.PacketParams.Params.LoRa.InvertIQ = ( RadioLoRaIQModes_t ) Eeprom.EepromData.DemoSettings.PacketParam5;
memcpy( Eeprom.Buffer + MOD_LOR_SPREADF_EEPROM_ADDR, &( Eeprom.EepromData.ModulationParams.Params.LoRa.SpreadingFactor ), 1 );
@@ -99,7 +99,7 @@
memcpy( Eeprom.Buffer + PAK_LOR_PREAMBLE_LEN_EEPROM_ADDR, &( Eeprom.EepromData.PacketParams.Params.LoRa.PreambleLength ), 1 );
memcpy( Eeprom.Buffer + PAK_LOR_HEADERTYPE_EEPROM_ADDR, &( Eeprom.EepromData.PacketParams.Params.LoRa.HeaderType ), 1 );
memcpy( Eeprom.Buffer + PAK_LOR_PL_LEN_EEPROM_ADDR, &( Eeprom.EepromData.PacketParams.Params.LoRa.PayloadLength ), 1 );
- memcpy( Eeprom.Buffer + PAK_LOR_CRC_MODE_EEPROM_ADDR, &( Eeprom.EepromData.PacketParams.Params.LoRa.CrcMode ), 1 );
+ memcpy( Eeprom.Buffer + PAK_LOR_CRC_MODE_EEPROM_ADDR, &( Eeprom.EepromData.PacketParams.Params.LoRa.Crc ), 1 );
memcpy( Eeprom.Buffer + PAK_LOR_IQ_INV_EEPROM_ADDR, &( Eeprom.EepromData.PacketParams.Params.LoRa.InvertIQ ), 1 );
printf("Saved RADIO_LORA_PARAMS\n\r");
break;
@@ -116,7 +116,6 @@
memcpy( Eeprom.Buffer + APP_RNG_REQ_COUNT_EEPROM_ADDR, &( Eeprom.EepromData.DemoSettings.RngRequestCount ), 1 );
memcpy( Eeprom.Buffer + APP_RNG_FULLSCALE_EEPROM_ADDR, &( Eeprom.EepromData.DemoSettings.RngFullScale ), 2 );
- memcpy( Eeprom.Buffer + APP_RNG_ZSCORE_EEPROM_ADDR, &( Eeprom.EepromData.DemoSettings.RngZscoreMax ), 1 );
memcpy( Eeprom.Buffer + APP_RNG_ADDR_EEPROM_ADDR, &( Eeprom.EepromData.DemoSettings.RngAddress ), 4 );
memcpy( Eeprom.Buffer + APP_RNG_ANT_EEPROM_ADDR, &( Eeprom.EepromData.DemoSettings.RngAntenna ), 1 );
memcpy( Eeprom.Buffer + APP_RNG_UNIT_EEPROM_ADDR, &( Eeprom.EepromData.DemoSettings.RngUnit ), 1 );
@@ -251,7 +250,7 @@
memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.PreambleLength ), Eeprom.Buffer + PAK_LOR_PREAMBLE_LEN_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.HeaderType ), Eeprom.Buffer + PAK_LOR_HEADERTYPE_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.PayloadLength ), Eeprom.Buffer + PAK_LOR_PL_LEN_EEPROM_ADDR, 1 );
- memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.CrcMode ), Eeprom.Buffer + PAK_LOR_CRC_MODE_EEPROM_ADDR, 1 );
+ memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.Crc ), Eeprom.Buffer + PAK_LOR_CRC_MODE_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.InvertIQ ), Eeprom.Buffer + PAK_LOR_IQ_INV_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.PacketParams.Params.Flrc.PreambleLength ), Eeprom.Buffer + PAK_FLR_PREAMBLE_LEN_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.PacketParams.Params.Flrc.SyncWordLength ), Eeprom.Buffer + PAK_FLR_SYNC_LEN_EEPROM_ADDR, 1 );
@@ -260,14 +259,13 @@
memcpy( &( Eeprom.EepromData.PacketParams.Params.Flrc.PayloadLength ), Eeprom.Buffer + PAK_FLR_PL_LEN_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.PacketParams.Params.Flrc.CrcLength ), Eeprom.Buffer + PAK_FLR_CRC_LEN_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.PacketParams.Params.Flrc.Whitening ), Eeprom.Buffer + PAK_FLR_WHITENING_EEPROM_ADDR, 1 );
- memcpy( &( Eeprom.EepromData.PacketParams.Params.Ble.BlePacketType ), Eeprom.Buffer + PAK_BLE_PAK_TYPE_EEPROM_ADDR, 1 );
+ memcpy( &( Eeprom.EepromData.PacketParams.Params.Ble.BleTestPayload ), Eeprom.Buffer + PAK_BLE_PAK_TYPE_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.PacketParams.Params.Ble.ConnectionState ), Eeprom.Buffer + PAK_BLE_CON_STATE_EEPROM_ADDR, 1 );
- memcpy( &( Eeprom.EepromData.PacketParams.Params.Ble.CrcField ), Eeprom.Buffer + PAK_BLE_CRC_FIELD_EEPROM_ADDR, 1 );
+ memcpy( &( Eeprom.EepromData.PacketParams.Params.Ble.CrcLength ), Eeprom.Buffer + PAK_BLE_CRC_FIELD_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.PacketParams.Params.Ble.Whitening ), Eeprom.Buffer + PAK_BLE_WHITENING_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.DemoSettings.RngRequestCount ), Eeprom.Buffer + APP_RNG_REQ_COUNT_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.DemoSettings.RngFullScale ), Eeprom.Buffer + APP_RNG_FULLSCALE_EEPROM_ADDR, 2 );
- memcpy( &( Eeprom.EepromData.DemoSettings.RngZscoreMax ), Eeprom.Buffer + APP_RNG_ZSCORE_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.DemoSettings.RngAddress ), Eeprom.Buffer + APP_RNG_ADDR_EEPROM_ADDR, 4 );
memcpy( &( Eeprom.EepromData.DemoSettings.RngAntenna ), Eeprom.Buffer + APP_RNG_ANT_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.DemoSettings.RngUnit ), Eeprom.Buffer + APP_RNG_UNIT_EEPROM_ADDR, 1 );
@@ -284,7 +282,7 @@
memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.PreambleLength ), Eeprom.Buffer + PAK_LOR_PREAMBLE_LEN_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.HeaderType ), Eeprom.Buffer + PAK_LOR_HEADERTYPE_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.PayloadLength ), Eeprom.Buffer + PAK_LOR_PL_LEN_EEPROM_ADDR, 1 );
- memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.CrcMode ), Eeprom.Buffer + PAK_LOR_CRC_MODE_EEPROM_ADDR, 1 );
+ memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.Crc ), Eeprom.Buffer + PAK_LOR_CRC_MODE_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.InvertIQ ), Eeprom.Buffer + PAK_LOR_IQ_INV_EEPROM_ADDR, 1 );
Eeprom.EepromData.ModulationParams.PacketType = PACKET_TYPE_LORA;
@@ -296,7 +294,7 @@
Eeprom.EepromData.DemoSettings.PacketParam1 = Eeprom.EepromData.PacketParams.Params.LoRa.PreambleLength;
Eeprom.EepromData.DemoSettings.PacketParam2 = Eeprom.EepromData.PacketParams.Params.LoRa.HeaderType;
Eeprom.EepromData.DemoSettings.PacketParam3 = Eeprom.EepromData.PacketParams.Params.LoRa.PayloadLength;
- Eeprom.EepromData.DemoSettings.PacketParam4 = Eeprom.EepromData.PacketParams.Params.LoRa.CrcMode;
+ Eeprom.EepromData.DemoSettings.PacketParam4 = Eeprom.EepromData.PacketParams.Params.LoRa.Crc;
Eeprom.EepromData.DemoSettings.PacketParam5 = Eeprom.EepromData.PacketParams.Params.LoRa.InvertIQ;
Eeprom.EepromData.DemoSettings.PacketParam6 = 0x00;
Eeprom.EepromData.DemoSettings.PacketParam7 = 0x00;
@@ -310,11 +308,10 @@
memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.PreambleLength ), Eeprom.Buffer + PAK_RNG_PREAMBLE_LEN_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.HeaderType ), Eeprom.Buffer + PAK_RNG_HEADERTYPE_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.PayloadLength ), Eeprom.Buffer + PAK_RNG_PL_LEN_EEPROM_ADDR, 1 );
- memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.CrcMode ), Eeprom.Buffer + PAK_RNG_CRC_MODE_EEPROM_ADDR, 1 );
+ memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.Crc ), Eeprom.Buffer + PAK_RNG_CRC_MODE_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.PacketParams.Params.LoRa.InvertIQ ), Eeprom.Buffer + PAK_RNG_IQ_INV_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.DemoSettings.RngRequestCount ), Eeprom.Buffer + APP_RNG_REQ_COUNT_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.DemoSettings.RngFullScale ), Eeprom.Buffer + APP_RNG_FULLSCALE_EEPROM_ADDR, 2 );
- memcpy( &( Eeprom.EepromData.DemoSettings.RngZscoreMax ), Eeprom.Buffer + APP_RNG_ZSCORE_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.DemoSettings.RngAddress ), Eeprom.Buffer + APP_RNG_ADDR_EEPROM_ADDR, 4 );
memcpy( &( Eeprom.EepromData.DemoSettings.RngAntenna ), Eeprom.Buffer + APP_RNG_ANT_EEPROM_ADDR, 1 );
memcpy( &( Eeprom.EepromData.DemoSettings.RngUnit ), Eeprom.Buffer + APP_RNG_UNIT_EEPROM_ADDR, 1 );
@@ -328,7 +325,7 @@
Eeprom.EepromData.DemoSettings.PacketParam1 = Eeprom.EepromData.PacketParams.Params.LoRa.PreambleLength;
Eeprom.EepromData.DemoSettings.PacketParam2 = Eeprom.EepromData.PacketParams.Params.LoRa.HeaderType;
Eeprom.EepromData.DemoSettings.PacketParam3 = Eeprom.EepromData.PacketParams.Params.LoRa.PayloadLength;
- Eeprom.EepromData.DemoSettings.PacketParam4 = Eeprom.EepromData.PacketParams.Params.LoRa.CrcMode;
+ Eeprom.EepromData.DemoSettings.PacketParam4 = Eeprom.EepromData.PacketParams.Params.LoRa.Crc;
Eeprom.EepromData.DemoSettings.PacketParam5 = Eeprom.EepromData.PacketParams.Params.LoRa.InvertIQ;
Eeprom.EepromData.DemoSettings.PacketParam6 = 0x00;
Eeprom.EepromData.DemoSettings.PacketParam7 = 0x00;
@@ -410,8 +407,7 @@
Eeprom.EepromData.DemoSettings.PacketParam3 = 10; // PayloadLength
Eeprom.EepromData.DemoSettings.PacketParam4 = LORA_CRC_ON;
Eeprom.EepromData.DemoSettings.PacketParam5 = LORA_IQ_NORMAL;
- Eeprom.EepromData.DemoSettings.RngRequestCount = 40;
- Eeprom.EepromData.DemoSettings.RngZscoreMax = 1;
+ Eeprom.EepromData.DemoSettings.RngRequestCount = 60;
Eeprom.EepromData.DemoSettings.RngAntenna = DEMO_RNG_ANT_1;
EepromSaveSettings( RADIO_RANGING_PARAMS );
@@ -437,9 +433,8 @@
Eeprom.EepromData.DemoSettings.PacketParam3 = 10; // PayloadLength
Eeprom.EepromData.DemoSettings.PacketParam4 = LORA_CRC_ON;
Eeprom.EepromData.DemoSettings.PacketParam5 = LORA_IQ_NORMAL;
- Eeprom.EepromData.DemoSettings.RngRequestCount = 40;
+ Eeprom.EepromData.DemoSettings.RngRequestCount = 60;
Eeprom.EepromData.DemoSettings.RngFullScale = 30;
- Eeprom.EepromData.DemoSettings.RngZscoreMax = 1;
Eeprom.EepromData.DemoSettings.RngAddress = DEMO_RNG_ADDR_1;
Eeprom.EepromData.DemoSettings.RngAntenna = DEMO_RNG_ANT_1;
Eeprom.EepromData.DemoSettings.RngUnit = DEMO_RNG_UNIT_SEL_M;
--- a/Peripherals/Eeprom.h Wed Apr 19 14:21:05 2017 +0000 +++ b/Peripherals/Eeprom.h Thu May 11 15:42:05 2017 +0000 @@ -40,7 +40,7 @@ #define APP_RADIO_POWER_MODE_EEPROM_ADDR 37 // RadioRegulatorMode_t #define APP_RNG_REQ_COUNT_EEPROM_ADDR 38 // uint8_t #define APP_RNG_FULLSCALE_EEPROM_ADDR 39 // uint16_t -#define APP_RNG_ZSCORE_EEPROM_ADDR 41 +#define APP_RNG_RFU_EEPROM_ADDR 41 #define APP_RNG_UNIT_EEPROM_ADDR 42 // ranging distance unit #define APP_RNG_ADDR_EEPROM_ADDR 43 // uint32_t #define APP_RNG_ANT_EEPROM_ADDR 47 // uint8_t RngAntenna