diff --git a/docs/software/plugin-api.md b/docs/software/plugin-api.md index e0699a6bc..f5f63620a 100644 --- a/docs/software/plugin-api.md +++ b/docs/software/plugin-api.md @@ -15,10 +15,10 @@ Packets can be sent/received either as raw binary structures or as [Protobufs](h The relevant bits of the class heirarchy are as follows * [MeshPlugin](/src/mesh/MeshPlugin.h) (in src/mesh/MeshPlugin.h) - you probably don't want to use this baseclass directly - * [SinglePortPlugin](/src/mesh/SinglePortPlugin.h) (in src/mesh/SinglePortPlugin.h) - for plugins that receive from a single port number (the normal case) - * [ProtobufPlugin](/src/mesh/ProtobufPlugin.h) (in src/mesh/ProtobufPlugin.h) - for plugins that are sending/receiving a single particular Protobuf type. Inherit from this if you are using protocol buffers in your plugin. + * [SinglePortPlugin](/src/mesh/SinglePortPlugin.h) (in src/mesh/SinglePortPlugin.h) - for plugins that send/receive from a single port number (the normal case) + * [ProtobufPlugin](/src/mesh/ProtobufPlugin.h) (in src/mesh/ProtobufPlugin.h) - for plugins that send/receive a single particular Protobuf type. Inherit from this if you are using protocol buffers in your plugin. -You will typically want to inherit from either SinglePortPlugin (if you are just sending raw bytes) or ProtobufPlugin (if you are sending protobufs). You'll implement your own handleReceived/handleReceivedProtobuf - probably based on the example code. +You will typically want to inherit from either SinglePortPlugin (if you are just sending/receiving raw bytes) or ProtobufPlugin (if you are sending/receiving protobufs). You'll implement your own handleReceived/handleReceivedProtobuf - probably based on the example code. If your plugin needs to perform any operations at startup you can override and implement the setup() method to run your code. @@ -45,9 +45,9 @@ A number of [key services](/src/plugins) are implemented using the plugin API, t The easiest way to get started is: * [Build and install](build-instructions.md) the standard codebase from github. -* Copy [src/plugins/ReplyPlugin.*](/src/plugins/ReplyPlugin.cpp) into src/plugins/YourPlugin.*. Then change the port number from REPLY_APP to PRIVATE_APP. +* Copy [src/plugins/ReplyPlugin.*](/src/plugins/ReplyPlugin.cpp) into src/plugins/YourPlugin.*. Then change the port number from *PortNum_REPLY_APP* to *PortNum_PRIVATE_APP*. * Rebuild with your new messaging goodness and install on the device -* Use the [meshtastic commandline tool](https://github.com/meshtastic/Meshtastic-python) to send a packet to your board "meshtastic --dest 1234 --ping" +* Use the [meshtastic commandline tool](https://github.com/meshtastic/Meshtastic-python) to send a packet to your board, for example "*meshtastic --dest 1234 --sendping*", where *1234* is another mesh node to send the ping to. ## Threading @@ -60,10 +60,10 @@ For any new 'apps' that run on the device or via sister apps on phones/PCs they If you are making a new app using meshtastic, please send in a pull request to add your 'portnum' to [the master list](https://github.com/meshtastic/Meshtastic-protobufs/blob/master/portnums.proto). PortNums should be assigned in the following range: -* 0-63 Core Meshtastic use, do not use for third party apps -* 64-127 Registered 3rd party apps, send in a pull request that adds a new entry to portnums.proto to register your application -* 256-511 Use one of these portnums for your private applications that you don't want to register publically -* 1024-66559 Are reserved for use by IP tunneling (see FIXME for more information) +* **0-63** Core Meshtastic use; do not use for third party apps +* **64-127** Registered 3rd party apps. Send in a pull request that adds a new entry to portnums.proto to register your application +* **256-511** Use one of these portnums for your private applications that you don't want to register publically +* **1024-66559** Are reserved for use by IP tunneling (see *FIXME* for more information) All other values are reserved. @@ -73,4 +73,4 @@ If you would like to use protocol buffers to define the structures you send over * Create a new .proto file in the protos directory. You can use the existing [remote_hardware.proto](https://github.com/meshtastic/Meshtastic-protobufs/blob/master/remote_hardware.proto) file as an example. * Run "bin/regen-protos.sh" to regenerate the C code for accessing the protocol buffers. If you don't have the required nanopb tool, follow the instructions printed by the script to get it. -* Done! You can now use your new protobuf just like any of the existing protobufs in meshtastic. \ No newline at end of file +* Done! You can now use your new protobuf just like any of the existing protobufs in meshtastic.