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.
Fork of SX1272PingPong by
Revision 15:dc867bef95d9, committed 2017-03-13
- Comitter:
- Antoine38
- Date:
- Mon Mar 13 09:54:09 2017 +0000
- Parent:
- 14:6c312f8635fe
- Child:
- 16:263c47d59beb
- Commit message:
- On affiche dor?navant le contenu du buffer ? chaque reception
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Mon Mar 13 09:35:55 2017 +0000
+++ b/main.cpp Mon Mar 13 09:54:09 2017 +0000
@@ -8,20 +8,19 @@
#define RF_FREQUENCY 868000000 // Hz
-#define TX_OUTPUT_POWER 14 // 14 dBm
#define LORA_BANDWIDTH 2 // [0: 125 kHz,
- // 1: 250 kHz,
- // 2: 500 kHz,
- // 3: Reserved]
-
+// 1: 250 kHz,
+// 2: 500 kHz,
+// 3: Reserved]
+
#define LORA_SPREADING_FACTOR 7 // [SF7..SF12]
#define LORA_CODINGRATE 1 // [1: 4/5,
- // 2: 4/6,
- // 3: 4/7,
- // 4: 4/8]
-
-#define LORA_PREAMBLE_LENGTH 8 // Same for Tx and Rx
+// 2: 4/6,
+// 3: 4/7,
+// 4: 4/8]
+
+#define LORA_PREAMBLE_LENGTH 8
#define LORA_SYMBOL_TIMEOUT 5 // Symbols
#define LORA_FIX_LENGTH_PAYLOAD_ON false
#define LORA_FHSS_ENABLED false
@@ -45,9 +44,6 @@
RX_TIMEOUT,
RX_ERROR,
- TX,
- TX_TIMEOUT,
-
CAD,
CAD_DONE
} AppStates_t;
@@ -64,9 +60,6 @@
*/
SX1272MB2xAS Radio( NULL );
-const uint8_t PingMsg[] = "PING";
-const uint8_t PongMsg[] = "PONG";
-
uint16_t BufferSize = BUFFER_SIZE;
uint8_t Buffer[BUFFER_SIZE];
@@ -80,10 +73,8 @@
debug( "\n\n\r iGreenhouse Application \n\n\r" );
// Initialize Radio driver
- RadioEvents.TxDone = OnTxDone;
RadioEvents.RxDone = OnRxDone;
RadioEvents.RxError = OnRxError;
- RadioEvents.TxTimeout = OnTxTimeout;
RadioEvents.RxTimeout = OnRxTimeout;
Radio.Init( &RadioEvents );
@@ -101,12 +92,6 @@
debug_if( LORA_FHSS_ENABLED, "\n\n\r > LORA FHSS Mode < \n\n\r");
debug_if( !LORA_FHSS_ENABLED, "\n\n\r > LORA Mode < \n\n\r");
- Radio.SetTxConfig( MODEM_LORA, TX_OUTPUT_POWER, 0, LORA_BANDWIDTH,
- LORA_SPREADING_FACTOR, LORA_CODINGRATE,
- LORA_PREAMBLE_LENGTH, LORA_FIX_LENGTH_PAYLOAD_ON,
- LORA_CRC_ENABLED, LORA_FHSS_ENABLED, LORA_NB_SYMB_HOP,
- LORA_IQ_INVERSION_ON, 2000000 );
-
Radio.SetRxConfig( MODEM_LORA, LORA_BANDWIDTH, LORA_SPREADING_FACTOR,
LORA_CODINGRATE, 0, LORA_PREAMBLE_LENGTH,
LORA_SYMBOL_TIMEOUT, LORA_FIX_LENGTH_PAYLOAD_ON, 0,
@@ -123,49 +108,24 @@
while( 1 ) {
switch( State ) {
case RX:
- if( BufferSize > 0 ) {
- if( strncmp( ( const char* )Buffer, ( const char* )PingMsg, 4 ) == 0 ) {
- led = !led;
- debug( "...Ping\r\n" );
- // Send the reply to the PING string
- strcpy( ( char* )Buffer, ( char* )PongMsg );
- // We fill the buffer with numbers for the payload
- for( i = 4; i < BufferSize; i++ ) {
- Buffer[i] = i - 4;
- }
- wait_ms( 10 );
- Radio.Send( Buffer, BufferSize );
- } else { // valid reception but not a PING as expected
- // Set device as master and start again
- isMaster = true;
- Radio.Rx( RX_TIMEOUT_VALUE );
- }
- }
+ if( BufferSize > 0 ) {
+ debug("\r\n========\r\nNew Packet\r\n========\r\n");
+ debug("%s \r\n", Buffer);
+ /*if( strncmp( ( const char* )Buffer, ( const char* )PingMsg, 4 ) == 0 ) {
+ led = !led;
+ debug( "...Ping\r\n" );
+ } else { // valid reception but not a PING as expected, let start again
+ Radio.Rx( RX_TIMEOUT_VALUE );
+ }*/
+ }
State = LOWPOWER;
break;
- case TX:
- led = !led;
- debug( "Pong...\r\n" );
+ case RX_TIMEOUT:
Radio.Rx( RX_TIMEOUT_VALUE );
State = LOWPOWER;
break;
- case RX_TIMEOUT:
- Radio.Rx( RX_TIMEOUT_VALUE );
- State = LOWPOWER;
- break;
case RX_ERROR:
- // We have received a Packet with a CRC error, send reply as if packet was correct
- // Send the next PONG frame
- strcpy( ( char* )Buffer, ( char* )PongMsg );
- for( i = 4; i < BufferSize; i++ ) {
- Buffer[i] = i - 4;
- }
- wait_ms( 10 );
- Radio.Send( Buffer, BufferSize );
- State = LOWPOWER;
- break;
- case TX_TIMEOUT:
- Radio.Rx( RX_TIMEOUT_VALUE );
+ // We have received a Packet with a CRC error
State = LOWPOWER;
break;
case LOWPOWER:
@@ -177,13 +137,6 @@
}
}
-void OnTxDone( void )
-{
- Radio.Sleep( );
- State = TX;
- debug_if( DEBUG_MESSAGE, "> OnTxDone\n\r" );
-}
-
void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr)
{
Radio.Sleep( );
@@ -195,13 +148,6 @@
debug_if( DEBUG_MESSAGE, "> OnRxDone\n\r" );
}
-void OnTxTimeout( void )
-{
- Radio.Sleep( );
- State = TX_TIMEOUT;
- debug_if( DEBUG_MESSAGE, "> OnTxTimeout\n\r" );
-}
-
void OnRxTimeout( void )
{
Radio.Sleep( );
