FaradayRF / Faraday-Software

Faraday node software
https://www.faradayrf.com
Other
48 stars 19 forks source link

Update/Re-Format Developer Tutorials #89

Open kb1lqd opened 7 years ago

kb1lqd commented 7 years ago

An effort should be made to update the developer tutorials to:

The point of this development series is to introduce Faraday as a tool to program with rather than use. The reader is walked through basic local device commanding, remote (RF) commanding, and at the end can tie these simple skills together to use the "Packet Forwarding" command as create a simple single packet messenger.

The developer tutorial series 2 further take this messenger and build packet/file fragmentation functionality and ARQ (automatic retry-request) ability. The end goal is to example using only the non-optimize "packet forwarding" command a complete file transfer program.

Tutorial Scope / Descope

I'd like to move or remove

image

Packet Definitions

@kb1lqc @hdkmike Do you think this is an appropriate tutorial set to introduce packets/frames used in the command application (layer)? If you agree then I can more heavily focus this series on diving into main high level topics like framing, error detection, fragmentation, encapsulation, and ARQ using Faraday's simple command architecture at the application layer level.

Examples from engineering documents: image

image

Action Plan

@kb1lqc and @hdkmike what do you think?

kb1lqd commented 7 years ago

I just verified that each tutorial does work as intended (due to massive project updates in the past couple months). I moved the folder structure around and delete unneeded tutorials.

My next steps are to reformat both the readme.md tutorials and update to better code formatting/implementation. I believe that I want to update every tutorial example to use a common INI file structure to match our applications.

kb1lqc commented 7 years ago

@kb1lqd I agree this seems like a valid path forward.

I think we should also consider the topics of the developer tutorials. We have several very distinct paths a developer can go on. Two different developers maybe not be interested in the same path or required to know everything about another path.

Developing to achieve...

Are there distinctly relevant paths we should develop tutorials for instead of forcing anyone who wants to develop on the GUI to go through the packet handling tutorials or risk missing out on a basic concept?

kb1lqd commented 7 years ago

OK @kb1lqc thanks! I've started cleaning and updating, I just finished https://github.com/FaradayRF/Faraday-Software/tree/Developer_Tutorial_Update_2-18-17/Tutorials/Python_Developer_Tutorials/foundation/Commanding-Local

As for the path:

I'm going to postpone for another issue enhancement push for adding new tutorials:

I want to capture a good update in this push but I don't want to bog it down too long as it has lost of good working examples. I'd rather give individual pushes for each addition, lets focus on formatting and such here.