This example shows data about TR module.
#if defined(__PIC32MX__)
#include <WProgram.h>
#else
#include <Arduino.h>
#endif
#if defined(__AVR__) || defined(CORE_TEENSY)
#include <MsTimer2.h>
#elif defined(__SAM3X8E__)
#include <DueTimer.h>
#endif
#include <stddef.h>
#include <stdint.h>
#define USER_TIMER_PERIOD 5000
#define TR_RESET_PIN 6
#define TR_SS_PIN 10
void setup();
void loop();
void rxHandler();
void txHandler(uint8_t packetId, uint8_t packetResult);
#if defined(__PIC32MX__)
uint32_t msTimerCallback(uint32_t currentTime);
#else
void msTimerCallback();
#endif
typedef struct {
uint8_t *txBuffer;
uint8_t packetId;
volatile uint16_t timer;
volatile bool timerAck;
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
while (!Serial) {
}
iqrf.
begin(rxHandler, txHandler);
Serial.print("[IQRF] OS version: ");
Serial.print("[IQRF] OS build: ");
Serial.print("[IQRF] Module type: ");
case iqrfTr.types::TR_52D:
Serial.println("TR-52D");
break;
case iqrfTr.types::TR_58D_RJ:
Serial.println("TR-58D-RJ");
break;
case iqrfTr.types::TR_72D:
Serial.println("TR-72D");
break;
case iqrfTr.types::TR_53D:
Serial.println("TR_53D");
break;
case iqrfTr.types::TR_54D:
Serial.println("TR_54D");
break;
case iqrfTr.types::TR_55D:
Serial.println("TR_55D");
break;
case iqrfTr.types::TR_56D:
Serial.println("TR_56D");
break;
case iqrfTr.types::TR_76D:
Serial.println("TR_76D");
break;
default:
Serial.println("UNKNOWN");
}
Serial.print("[IQRF] Module ID: ");
Serial.print("[IQRF] Module MCU: ");
case iqrfTr.mcuTypes::PIC16LF819:
Serial.println("PIC16LF819");
break;
case iqrfTr.mcuTypes::PIC16LF88:
Serial.println("PIC16LF88");
break;
case iqrfTr.mcuTypes::PIC16F886:
Serial.println("PIC16F886");
break;
case iqrfTr.mcuTypes::PIC16LF1938:
Serial.println("PIC16LF1938");
break;
default:
Serial.println("UNKNOWN");
}
Serial.print("[IQRF] Module has FCC certification: ");
#if defined(__AVR__) || defined(CORE_TEENSY)
MsTimer2::set(1, msTimerCallback);
MsTimer2::start();
#elif defined(__SAM3X8E__)
Timer6.attachInterrupt(msTimerCallback).start(1000);
#elif defined(__PIC32MX__)
attachCoreTimerService(msTimerCallback);
#endif
appVars.
timer = USER_TIMER_PERIOD;
}
void loop() {
}
}
#if defined(__PIC32MX__)
uint32_t msTimerCallback(uint32_t currentTime) {
if ((--appVars.
timer) == 0) {
appVars.
timer = USER_TIMER_PERIOD;
}
}
return(currentTime + CORE_TICK_RATE);
}
#else
void msTimerCallback() {
if ((--appVars.
timer) == 0) {
appVars.
timer = USER_TIMER_PERIOD;
}
}
}
#endif
void rxHandler() {
Serial.print("[IQRF] Receive done: ");
Serial.println();
}
void txHandler(uint8_t packetId, uint8_t packetResult) {
Serial.println("[IQRF] Send done");
}