Documentation

Giovanni Blu Mitolo edited this page Apr 3, 2018 · 17 revisions

PJON Documentation

PJON implements a totally software emulated network protocol stack in around 1500 lines of code, thanks to the strategies abstraction it can work nominally with any data-link is in use and can be applied in a variety of media and applications. This library can be cross-compiled (-std=c++11) to work with virtually every Arduino compatible board or linux machine, for example ATtiny85 or Raspberry Pi.

Thanks to the interfaces abstraction, PJON can be easily ported on any MCU/architecture exposing random generation, timing and IO system calls (for example on Arduino: random, micros, pinMode).

  Implementation model
       _______________________________________________________
      | 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_DELAY_MICROSECONDS ... |<---
  |   |_______________________________________________________|
  |   | Layer 1 physical-layer                                |
  |   | System calls:                                         |
  --->| micros, random, delayMicroseconds ...                 |
      |_______________________________________________________|

This library exposes to users a set of tools to easily configure and handle communication between devices:

Join the chat at https://gitter.im/gioblu/PJON Donate

Feel free to write me personally gioscarab@gmail.com

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.