static void receivedProbe(uint16_t panId,
const uint8_t *eui64,
uint16_t shortId,
int16_t rssi,
const uint8_t *payload,
uint8_t payloadLen,
uint32_t channel);
static void ledOnTask(void *);
static void ledOffTask(void *);
uint16_t node_id = 2;
uint8_t node_ext_id[] = {0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0, 0};
void setup(void) {
Serial.begin(115200);
printf("\n*** [ATSAMR21-XPro] LPP Receiver ***\n");
AT86RF233.begin();
Lpp->
begin(AT86RF233, 0x1234, 0xFFFF, node_ext_id);
ledOnTask(NULL);
}
static void ledOnTask(void *) {
ledTimer.
onFired(ledOffTask, NULL);
System.ledOn(0);
}
static void ledOffTask(void *) {
System.ledOff(0);
}
printf(
"RX : %x, ", srcAddr.
id.s16);
}
else if (srcAddr.
len == 8) {
printf(
"RX : %02x-%02x-%02x-%02x-%02x-%02x-%02x-%02x, ",
);
}
printf("RSSI(%d dBm), LQI(%d) (length:%u)",
printf("\n");
}
static void receivedProbe(uint16_t panId,
const uint8_t *eui64,
uint16_t shortId,
int16_t rssi,
const uint8_t *payload,
uint8_t payloadLen,
uint32_t channel) {
printf("* Probe received from PAN:0x%04X", panId);
if (eui64) {
printf(", Node EUI64:%02x-%02x-%02x-%02x-%02x-%02x-%02x-%02x",
eui64[0], eui64[1], eui64[2], eui64[3],
eui64[4], eui64[5], eui64[6], eui64[7]);
}
if (shortId != 0xFFFF) {
printf(", ID:%x", shortId);
}
printf(", RSSI:%d", rssi);
if (payloadLen > 0) {
uint8_t i;
printf(", length:%u, ", payloadLen);
for (i = 0; i < payloadLen; i++) {
printf("%02X ", payload[i]);
}
}
printf("\n");
}
IEEE 802.15.4 address.
Definition IEEE802_15_4Frame.hpp:60
uint16_t id
Definition IEEE802_15_4Frame.hpp:95
uint8_t len
Definition IEEE802_15_4Frame.hpp:94
IEEE 802.15.4 frame.
Definition IEEE802_15_4Frame.hpp:163
int16_t getPayloadAt(uint16_t index) const
Get an octet of the payload buffer at index.
uint16_t getPayloadLength() const
Get payload length in unit of octets.
IEEE802_15_4Address getSrcAddr() const
Get source address.
Definition IEEE802_15_4Frame.hpp:395
IEEE 802.15.4 MAC Protocol.
Definition IEEE802_15_4Mac.hpp:60
void onReceive(void(*receiveHandler)(IEEE802_15_4Mac &, const IEEE802_15_4Frame *))
수신이 완료될 때 호출될 함수를 지정합니다.
Low-Power Probing: 비동기 (asynchronous) 방식의 저전력 MAC 프로토콜
Definition LPPMac.hpp:230
void onReceiveProbe(void(*func)(uint16_t panId, const uint8_t *eui64, uint16_t shortId, int16_t rssi, const uint8_t *payload, uint8_t payloadLen, uint32_t channel))
Probe 수신시 콜백함수를 지정합니다.
error_t setTxTimeout(uint16_t msec)
TxTimeout 시간을 msec 밀리초로 설정합니다.
error_t setProbePeriod(uint32_t msec)
ProbePeriod 를 msec 밀리초로 설정합니다.
error_t setRxTimeout(uint16_t msec)
RxTimeout 시간을 msec 밀리초로 설정합니다.
error_t setRxWaitTimeout(uint16_t msec)
RxWaitTimeout 시간을 msec 밀리초로 설정합니다.
void begin(PacketRadioChip &chip, uint16_t panId, uint16_t nodeId, const uint8_t *eui64)
프로토콜을 초기화합니다.
error_t setListenTimeout(uint32_t msec)
ListenTimeout 시간을 msec 밀리초로 설정합니다.
uint8_t corr
송신시 사용할, 또는 수신시 사용된 correlation
Definition RadioPacket.hpp:279
union RadioPacket::@261372047013264035370155367365124341065140254135 meta
변복조 방식에 대한 속성
int16_t power
송신시 사용할 power (단위: dBm) 또는 수신시의 신호 세기 (단위: dB)
Definition RadioPacket.hpp:137
struct RadioPacket::@261372047013264035370155367365124341065140254135::@020003251252223043172167113170254232021141153330 DSSS
modulation 이 Radio::MOD_DSSS 인 경우 사용되는 변수
Timer는 일정 시간 이후에 1회 실행될 작업, 매 일정 시간마다 실행될 작업 등을 위한 기능입니다.
Definition Timer.hpp:61
bool startOneShot(uint32_t millis, bool interrupt=false)
작업함수를 millis 밀리초 이후 1회 실행합니다.
void onFired(void(*func)(void *), void *args=nullptr)
타이머 만료시 실행시킬 작업함수를 지정합니다.
#define highByte(w)
변수의 높은 (가장 왼쪽) 바이트를 구합니다.
Definition nola-common.h:321
#define lowByte(w)
변수의 낮은 (가장 오른쪽) 바이트를 구합니다.
Definition nola-common.h:312