- Addressing
- Configuration
- Data reception
- Data structures
- Data transmission
- Error handling
- Routing
- IO setup
PJON implements a totally software-defined network protocol stack in around 1500 lines of code, thanks to the strategies abstraction it can operate transparently on different media, physical layers and other protocols. Thanks to the interfaces abstraction PJON can be easily ported on any MCU or architecture. The graph below shows the implementation's architecture.
___________________________________________________
| Layer 3 Network |
| PJON |
___| send, send_packet, send_repeatedly ... |
| |___________________________________________________|
| | Layer 2 data link or strategy |
| | AnalogSampling, OverSampling, SoftwareBitBang ... |
--->| can_start, send_string, receive_byte ... |___
|___________________________________________________| |
| Interfaces to system calls | |
___| PJON_MICROS, PJON_RANDOM, PJON_IO_MODE ... |<---
| |___________________________________________________|
| | Layer 1 physical-layer |
| | System calls: |
--->| micros, random, delayMicroseconds ... |
|___________________________________________________|