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.
Diff: main.cpp
- Revision:
- 5:8d3e18491667
- Parent:
- 4:fac0fc95a644
--- a/main.cpp Fri Apr 28 15:24:27 2017 +0000
+++ b/main.cpp Thu May 11 14:59:23 2017 +0000
@@ -5,20 +5,21 @@
#include "main.h"
#define TX_LOOP 1
-#define TX_FREQ 867100000
#define PAYLOAD_SIZE_LONG 112 //97
#define PAYLOAD_SIZE_SHORT 12
-#define CHANNEL_0_FREQ_HZ 867100000
-#define CHANNEL_1_FREQ_HZ 867300000
-#define CHANNEL_2_FREQ_HZ 867500000
-#define CHANNEL_3_FREQ_HZ 867700000
-#define CHANNEL_4_FREQ_HZ 867900000
-#define CHANNEL_5_FREQ_HZ 868100000
-#define CHANNEL_6_FREQ_HZ 868300000
-#define CHANNEL_7_FREQ_HZ 868500000
-#define CHANNEL_8_FREQ_HZ 868300000
-#define CHANNEL_9_FREQ_HZ 868800000
+uint32_t Channels[10] = {
+ 867100000,
+ 867300000,
+ 867500000,
+ 867700000,
+ 867900000,
+ 868100000,
+ 868300000,
+ 868500000,
+ 868300000,
+ 868800000
+};
typedef enum Modulation
{
@@ -93,11 +94,11 @@
switch( modulation )
{
case MODEM_LORA:
- Radio.SetTxConfig( MODEM_LORA, 2, 0, bw, CurrentDatarate, 1, 8, false, true, 0, 0, false, 10e3 );
+ Radio.SetTxConfig( MODEM_LORA, 0, 0, bw, CurrentDatarate, 1, 8, false, true, 0, 0, false, 10e3 );
TimeOnAir = Radio.TimeOnAir( MODEM_LORA, pkt_size );
break;
case MODEM_FSK:
- Radio.SetTxConfig( MODEM_FSK, 2, 25e3, 0, 50e3, 0, 5, false, true, 0, 0, false, 3e3 );
+ Radio.SetTxConfig( MODEM_FSK, 0, 25e3, 0, 50e3, 0, 5, false, true, 0, 0, false, 3e3 );
TimeOnAir = Radio.TimeOnAir( MODEM_FSK, pkt_size );
break;
default:
@@ -157,7 +158,25 @@
LoRaWANBuffer[7] = 0; // FCnt, filled later
LoRaWANBuffer[8] = 1; // FPort
LoRaWANBuffer[9] = 0x0; // FRMPayload
-
+
+#if 1
+ FCnt = 0;
+ while( 1 )
+ {
+ LoRaWANBuffer[6] = FCnt;
+ LoRaWANBuffer[7] = FCnt >> 8;
+
+ // Send LoRa packet
+ PktToA = SendPacket( Channels[FCnt % 8], MODEM_LORA, LORA_BW_125K, PAYLOAD_SIZE_SHORT );
+ //pc.printf( "(%d) Sending LoRa packet: Freq=%u, SF%u (%.1lfms), FCnt=%u...\n", i, TxFreq, CurrentDatarate, PktToA, FCnt );
+ wait_ms( PktToA );
+ Radio.Sleep( );
+
+ FCnt += 1;
+ }
+#endif
+
+#if 0
FCnt = 0;
for( i = 0; i < (int)TX_LOOP; i++ )
{
@@ -165,37 +184,34 @@
LoRaWANBuffer[7] = FCnt >> 8;
// Send LoRa packet
- PktToA = SendPacket( CHANNEL_0_FREQ_HZ, MODEM_LORA, LORA_BW_125K, PAYLOAD_SIZE_LONG );
+ PktToA = SendPacket( Channels[0], MODEM_LORA, LORA_BW_125K, PAYLOAD_SIZE_LONG );
//pc.printf( "(%d) Sending LoRa packet: Freq=%u, SF%u (%.1lfms), FCnt=%u...\n", i, TxFreq, CurrentDatarate, PktToA, FCnt );
wait_ms( PktToA );
Radio.Sleep( );
-#if 1
FCnt += 1;
LoRaWANBuffer[6] = FCnt;
LoRaWANBuffer[7] = FCnt >> 8;
// Send FSK packet
- PktToA = SendPacket( CHANNEL_9_FREQ_HZ, MODEM_FSK, LORA_BW_NA, PAYLOAD_SIZE_SHORT );
+ PktToA = SendPacket( Channels[0], MODEM_FSK, LORA_BW_NA, PAYLOAD_SIZE_SHORT );
//pc.printf( "(%d) Sending FSK packet: Freq=%u, FCnt=%u...\n", i, TxFreq, PktToA, FCnt );
wait_ms( PktToA );
Radio.Sleep( );
-#endif
-
-#if 1
+
FCnt += 1;
LoRaWANBuffer[6] = FCnt;
LoRaWANBuffer[7] = FCnt >> 8;
// Send LoRa packet
- PktToA = SendPacket( CHANNEL_8_FREQ_HZ, MODEM_LORA, LORA_BW_250K, PAYLOAD_SIZE_SHORT );
+ PktToA = SendPacket( Channels[8], MODEM_LORA, LORA_BW_500K, PAYLOAD_SIZE_SHORT );
//pc.printf( "(%d) Sending LoRa packet: Freq=%u, SF%u (%.1lfms), FCnt=%u...\n", i, TxFreq, CurrentDatarate, PktToA, FCnt );
wait_ms( PktToA );
Radio.Sleep( );
-#endif
FCnt += 1;
}
+#endif
// Stop sending
ButtonPressed = false;