102 lines
2.3 KiB
C++
Executable file
102 lines
2.3 KiB
C++
Executable file
// DecaDuinoSender
|
|
// Ce croquis est un exemple d'utilisation de la librairie DecaDuino
|
|
// Il permet d'envoyer des messages avec l'interface UWB
|
|
// by Adrien van den Bossche <vandenbo@univ-tlse2.fr>
|
|
// Ce croquis fait partir du projet DecaDuino (cf. fichier DecaDuino LICENCE)
|
|
|
|
#include <SPI.h>
|
|
#include <DecaDuino.h>
|
|
|
|
#define MAX_FRAME_LEN 120
|
|
#//define MY_ADDR 34
|
|
|
|
DecaDuino decaduino; //Interface radio UWB
|
|
uint8_t txData[MAX_FRAME_LEN]; // buffer des données émises (tableau d'octets)
|
|
uint16_t txLen; // nombre d'octets émis <= MAC_FRAME_LEN
|
|
uint8_t txFrames; // nb de trames émises module 255
|
|
uint8_t T_trame; // durée emission trame
|
|
uint8_t W; // taille de la fenêtre
|
|
uint8_t k; // aléatoire
|
|
|
|
void setup()
|
|
{
|
|
//Sélection de la LED interne connectée au pin 13 de la carte
|
|
pinMode(13, OUTPUT);
|
|
Serial.begin(115200); // Init Serial port speed
|
|
SPI.setSCK(14); // Set SPI clock pin (pin 14 on DecaWiNo board)
|
|
|
|
// Initialisation de DecaDuino
|
|
if ( !decaduino.init() ) {
|
|
// LED 13 clignotte si init échoue
|
|
Serial.println("decaduino init failed");
|
|
while(1) { digitalWrite(13, HIGH); delay(50); digitalWrite(13, LOW); delay(50); }
|
|
}
|
|
|
|
txFrames = 1;
|
|
|
|
//On attend 5s avant d'emettre
|
|
delay(5000);
|
|
|
|
T_trame = 100; // ms
|
|
W = 8; // taille
|
|
|
|
}
|
|
|
|
|
|
void loop()
|
|
{
|
|
// On allume la LED interne sur le port 13
|
|
digitalWrite(13, HIGH);
|
|
|
|
// Taille des données
|
|
txLen = 10;
|
|
|
|
// sélection du canal
|
|
txData[0] = 22;
|
|
|
|
// envoie du numéro de trame
|
|
txData[1] = txFrames;
|
|
|
|
// Creation de donnees fictives dans txData
|
|
for (int i=2; i<txLen; i++) {
|
|
txData[i] = 0;
|
|
}
|
|
|
|
// Envoi de la trame
|
|
decaduino.pdDataRequest(txData, txLen);
|
|
// On attend que la trame soit émise
|
|
while ( !decaduino.hasTxSucceeded() );
|
|
// Log du nb de trames émises
|
|
digitalWrite(13, LOW);
|
|
|
|
Serial.print(" txFrames |");
|
|
Serial.print(txFrames++);
|
|
Serial.print("| ");
|
|
|
|
Serial.print(" txLen |");
|
|
Serial.print(txLen);
|
|
Serial.print("| ");
|
|
|
|
Serial.print(" txData: |");
|
|
for (int i=0; i<txLen; i++) {
|
|
Serial.print(txData[i], HEX);
|
|
if (i != txLen - 1) {
|
|
Serial.print("-");
|
|
}
|
|
}
|
|
Serial.print("| ");
|
|
|
|
//k = random(W);
|
|
//Serial.print(" k |");
|
|
//Serial.print(k);
|
|
//Serial.print("| ");
|
|
|
|
Serial.println();
|
|
|
|
// Attente de T_trame * k secondes
|
|
//delay(k*T_trame);
|
|
delay(100);
|
|
}
|
|
|
|
|