SDK
23.9.2
For IoT System Software Development
|
IEEE 802.15.4 MAC Protocol. More...
#include <IEEE802_15_4Mac.hpp>
Public Member Functions | |
error_t | send (IEEE802_15_4Frame *frame) |
frame 을 전송합니다. More... | |
error_t | cancelSend (IEEE802_15_4Frame *frame) |
frame 전송을 취소합니다. More... | |
virtual void | onSendDone (void(*sendDoneHandler)(IEEE802_15_4Mac &, IEEE802_15_4Frame *)) |
전송이 완료될 때 호출될 함수를 지정합니다. More... | |
void | onReceive (void(*receiveHandler)(IEEE802_15_4Mac &, const IEEE802_15_4Frame *)) |
수신이 완료될 때 호출될 함수를 지정합니다. More... | |
Static Public Member Functions | |
static int32_t | ConvertChToFreq2450MHz (uint16_t channelNumber) |
IEEE 802.15.4-2015 2450MHz 대역 채널번호-주파수 변환 함수 More... | |
static int32_t | ConvertChToFreq917MHzSUN_FSK1 (uint16_t channelNumber) |
IEEE 802.15.4-2015 917~923.5 MHz 대역 SUN FSK operating mode #1 채널번호-주파수 변환 함수 More... | |
Public Attributes | |
bool | useForceNoAckRequest = false |
전송할 프레임에 대해 강제로 Ack를 요청하지 않게 합니다. More... | |
Static Public Attributes | |
static uint16_t | HoppingSequenceList2450MHz [16] |
IEEE 802.15.4-2015 2450 MHz 대역을 위한 macHoppingSequenceList. More... | |
static uint16_t | HoppingSequenceList917MHzSUN_FSK1 [32] |
IEEE 802.15.4-2015 917~923.5 MHz 대역 SUN FSK operating mode #1 을 위한 macHoppingSequenceList. More... | |
Protected Member Functions | |
virtual bool | checkTxFrame (IEEE802_15_4Frame *frame)=0 |
bool | checkTxFrame (RadioPacket *frame) |
virtual void | handleRxFrame (IEEE802_15_4Frame *frame)=0 |
void | handleRxFrame (RadioPacket *frame) |
IEEE802_15_4Frame * | getNextTxFrame () |
Protected Member Functions inherited from PacketRadio | |
virtual void | sendDone (RadioPacket *frame, RadioPacket::Result_t) |
virtual void | receive (RadioPacket *frame) |
RadioPacket * | getNextTxFrame () |
error_t | enqueueTxFrame (RadioPacket *frame) |
virtual void | notifySendDone (RadioPacket *frame) |
virtual void | notifyReceive (RadioPacket *frame) |
error_t | send (RadioPacket *frame) |
frame 을 전송합니다. More... | |
error_t | cancelSend (RadioPacket *frame) |
frame 전송을 취소합니다. More... | |
void | onSendDone (void(*sendDoneHandler)(PacketRadio &, RadioPacket *)) |
전송이 완료될 때 호출될 함수를 지정합니다. More... | |
uint8_t | getNumPendingSendFrames () |
전송 대기 중인 프레임 갯수를 구합니다. More... | |
void | onReceive (void(*receiveHandler)(PacketRadio &, const RadioPacket *)) |
수신이 완료될 때 호출될 함수를 지정합니다. More... | |
void | setEventListener (PacketRadioEventListener &) |
전송 완료 및 수신 이벤트에 대해 PacketRadioEventListener 를 구현한 클래스로 콜백합니다. More... | |
Additional Inherited Members | |
Protected Types inherited from PacketRadio | |
enum | { TX_FIFO_SIZE = 10, RX_FIFO_SIZE = 10, TX_DONE_FIFO_SIZE = 10 } |
Protected Attributes inherited from PacketRadio | |
Queue< RadioPacket * > | txFifo |
Queue< RadioPacket * > | rxFifo |
Queue< RadioPacket * > | txDoneFifo |
void(* | callbackSendDone )(PacketRadio &, RadioPacket *) |
void(* | callbackReceive )(PacketRadio &, const RadioPacket *) |
PacketRadioEventListener * | eventListener |
IEEE 802.15.4 MAC Protocol.
error_t IEEE802_15_4Mac::cancelSend | ( | IEEE802_15_4Frame * | frame | ) |
frame
전송을 취소합니다.
전송 큐에 프레임이 대기 중일 때 프레임 전송을 취소합니다. 취소가 된 프레임은 onSendDone() 에 설정된 콜백함수에 의해 SEND_CANCELED 결과로 호출됩니다.
frame | 취소할 프레임 |
|
inlinestatic |
IEEE 802.15.4-2015 2450MHz 대역 채널번호-주파수 변환 함수
channelNumber | IEEE 802.15.4-2015 2450MHz 대역의 채널번호 (11~26) |
channelNumber
가 범위 밖의 값channelNumber
의 실제 Hz 단위 주파수 값
|
inlinestatic |
IEEE 802.15.4-2015 917~923.5 MHz 대역 SUN FSK operating mode #1 채널번호-주파수 변환 함수
channelNumber | IEEE 802.15.4-2015 917~923.5 MHz 대역 SUN FSK operating mode #1 의 채널번호 (1~32) |
channelNumber
가 범위 밖의 값channelNumber
의 실제 Hz 단위 주파수 값 void IEEE802_15_4Mac::onReceive | ( | void(*)(IEEE802_15_4Mac &, const IEEE802_15_4Frame *) | receiveHandler | ) |
수신이 완료될 때 호출될 함수를 지정합니다.
sendDoneHandler | 콜백 함수 포인터 |
|
virtual |
전송이 완료될 때 호출될 함수를 지정합니다.
sendDoneHandler | 콜백 함수 포인터 |
error_t IEEE802_15_4Mac::send | ( | IEEE802_15_4Frame * | frame | ) |
frame
을 전송합니다.
frame | 전송할 프레임 |
|
static |
IEEE 802.15.4-2015 2450 MHz 대역을 위한 macHoppingSequenceList.
|
static |
IEEE 802.15.4-2015 917~923.5 MHz 대역 SUN FSK operating mode #1 을 위한 macHoppingSequenceList.
bool IEEE802_15_4Mac::useForceNoAckRequest = false |
전송할 프레임에 대해 강제로 Ack를 요청하지 않게 합니다.
기본 값은 false로, IEEE 802.15.4 MAC 에서는 전송할 프레임이 unicast 인 경우 MAC header의 Ack Request field를 set 하여 상대방으로부터 Acknowledgment frame을 응답하게 하여 성공적인 전송 여부를 확인합니다. 이 변수를 true 로 설정하면 unicast/broadcast 여부에 상관없이 MAC header의 Ack Request field를 reset 하여 상대방이 Acknowledgment frame을 응답하지 않게 합니다. 이 경우 RadioPacket::result 값은 실제 송신을 하기만 해도 RadioPacket::SUCCESS 가 됩니다.