Sigfox P2P 04: RX multipacket
This example shows how to receive multiple packets
Required Materials
1 x Waspmote 1 x Battery 1 x Sigfox 868 module 1 x 868 MHz antenna
Notes
- This code is part of a two-Waspmote communication. This is the receiving side. So, in order to establish communication, please set up a sending node - This example can be executed in Waspmote v12 and Waspmote v15 - This example only works with Sigfox 868 module
Code
/*
* ------ Sigfox P2P Code Example --------
*
* Explanation: This example shows how to receive multiple packets
*
* Copyright (C) 2016 Libelium Comunicaciones Distribuidas S.L.
* http://www.libelium.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*
* Version: 3.0
* Design: David Gascon
* Implementation: Yuri Carmona
*/
// Put your libraries here (#include ...)
#include <WaspSigfox.h>
//////////////////////////////////////////////
uint8_t socket = SOCKET0;
//////////////////////////////////////////////
// ADDRESS: Define the LAN network address.
// Range: From 0x000000 to 0xFFFFFF.
// Default: 0x000000
//////////////////////////////////////////////
uint32_t address = 0x000001;
//////////////////////////////////////////////
uint8_t error;
void setup()
{
USB.ON();
//////////////////////////////////////////////
// switch on
//////////////////////////////////////////////
error = Sigfox.ON(socket);
// Check status
if( error == 0 )
{
USB.println(F("Switch ON OK"));
}
else
{
USB.println(F("Switch ON ERROR"));
}
//////////////////////////////////////////////
// Set LAN address
//////////////////////////////////////////////
error = Sigfox.setAddressLAN(address);
// Check status
if( error == 0 )
{
USB.println(F("Set LAN Address OK"));
}
else
{
USB.println(F("Set LAN Address ERROR"));
}
USB.println();
//////////////////////////////////////////////
// Set Multi-packet reception mode
//////////////////////////////////////////////
error = Sigfox.setMultiPacket();
// Check status
if( error == 0 )
{
USB.println(F("Set Multi-packet mode OK"));
}
else
{
USB.println(F("Set Multi-packet mode ERROR"));
}
USB.println();
}
void loop()
{
// Receive data
USB.println(F("Waiting for data..."));
// wait for a new packet (10 seconds)
error = Sigfox.getMultiPacket(10);
if (error == 0)
{
USB.println(F("Packet received: "));
USB.println(Sigfox._packet);
}
else
{
USB.println(F("Packet not received (timeout)"));
}
USB.println();
}
Output
H#
Switch ON OK
Set LAN Address OK
Set Multi-packet mode OK
Waiting for data...
Packet received:
0000000000000000000000000000000001
Waiting for data...
Packet received:
0000000000000000000000000000000002
Waiting for data...
Packet received:
0000000000000000000000000000000003
Waiting for data...
...
Last updated