1
0
forked from iarv/lobbs

5 Commits

5 changed files with 35 additions and 15 deletions

View File

@@ -14,22 +14,31 @@ LoBBS is a Meshtastic plugin that runs a complete bulletin board system entirely
## Installation
LoBBS is a Meshtastic plugin that is automatically discovered and integrated by the Meshtastic Plugin Manager (MPM). To install LoBBS:
### Using Mesh Forge (easy)
1. **Clone LoBBS into the plugins directory:**
Use our [Mesh Forge build profile](https://meshforge.org/builds/new/835766d9e1b1c56c45d00d03f9ae96f376f2cf9e4d73c18a929b9849b9e88d42) to flash a LoBBS-enabled version of Meshtastic to your device.
### Build it yourself (experimental)
> Warning: This requires
LoBBS is a [Meshtastic plugin](https://registry.meshforge.org) that is automatically discovered and integrated by the [Meshtastic Plugin Manager](https://pypi.org/project/mesh-plugin-manager/) (MPM). To install LoBBS:
1. **Install the Meshtastic Plugin Manager:**
```bash
pip install mesh-plugin-manager
```
2. **Install LoBBS and its dependencies:**
```bash
cd /path/to/meshtastic/firmware
git clone https://github.com/MeshEnvy/lobbs.git src/plugins/lobbs
mpm init
mpm install lobbs
```
2. **Install LoDB dependency:**
LoBBS requires LoDB as a dependency. Install it as a plugin as well:
```bash
git clone https://github.com/MeshEnvy/lodb.git src/plugins/lodb
```
> **Note:** `mpm` automatically installs dependencies such as [LoDB](https://github.com/MeshEnvy/lodb) which is required by LoBBS.
3. **Build and flash:**

4
src/LoBBS.h Normal file
View File

@@ -0,0 +1,4 @@
#pragma once
#include "LoBBSModule.h"

View File

@@ -9,7 +9,6 @@
#include <cctype>
#include <cstring>
#include <string>
#include "ModuleRegistry.h"
// Static helper: case-insensitive substring search
static const char *stristr(const char *haystack, const char *needle)
@@ -123,6 +122,11 @@ LoBBSModule::LoBBSModule() : SinglePortModule("LoBBS", meshtastic_PortNum_TEXT_M
ProcessMessage LoBBSModule::handleReceived(const meshtastic_MeshPacket &mp)
{
// Only process direct messages to this node, ignore broadcasts
if (!isToUs(&mp)) {
return ProcessMessage::CONTINUE;
}
LOG_DEBUG("LoBBS received DM from=0x%0x, id=%d, msg=%.*s", mp.from, mp.id, mp.decoded.payload.size, mp.decoded.payload.bytes);
meshtastic_LoBBSUser existingUser = meshtastic_LoBBSUser_init_zero;
@@ -690,5 +694,3 @@ void LoBBSModule::sendReply(NodeNum to, const std::string &msg)
reply->decoded.want_response = false;
service->sendToMesh(reply);
}
MESHTASTIC_REGISTER_MODULE(LoBBSModule);

View File

@@ -1,10 +1,10 @@
#pragma once
#include "meta.h"
#include "LoBBSDal.h"
#include "SinglePortModule.h"
#include "lobbs.pb.h"
#define LOBBS_VERSION "1.0.0"
#define LOBBS_HEADER "LoBBS v" LOBBS_VERSION "\nCommands:\n"
/**
@@ -36,4 +36,4 @@ class LoBBSModule : public SinglePortModule
LoBBSDal *dal;
void sendReply(NodeNum to, const std::string &msg);
};
};

5
src/meta.h Normal file
View File

@@ -0,0 +1,5 @@
#pragma once
#pragma MPM_MODULE(LoBBSModule)
#define LOBBS_VERSION "1.1.0"