mirror of
https://gitlab.com/wirelos/sprocket-lib.git
synced 2025-12-16 13:25:03 +01:00
58 lines
1.8 KiB
C++
58 lines
1.8 KiB
C++
#include "MeshNet.h"
|
|
|
|
MeshNet::MeshNet(MeshConfig cfg) : Network() {
|
|
config = cfg;
|
|
}
|
|
|
|
Network* MeshNet::init(){
|
|
|
|
Serial.println("init mesh");
|
|
//mesh.setDebugMsgTypes( ERROR | MESH_STATUS | CONNECTION | SYNC | COMMUNICATION | GENERAL | MSG_TYPES | REMOTE ); // all types on
|
|
mesh.setDebugMsgTypes( config.debugTypes );
|
|
mesh.init( config.meshSSID, config.meshPassword, scheduler, config.meshPort, WIFI_AP_STA, config.channel );
|
|
|
|
mesh.onNewConnection(bind(&MeshNet::newConnectionCallback, this, _1));
|
|
mesh.onChangedConnections(bind(&MeshNet::changedConnectionCallback, this));
|
|
mesh.onNodeTimeAdjusted(bind(&MeshNet::nodeTimeAdjustedCallback, this, _1));
|
|
|
|
connectStation(config.stationMode);
|
|
|
|
return this;
|
|
}
|
|
Network* MeshNet::connectStation(int doConnect) {
|
|
Serial.println("connect station?");
|
|
if(doConnect){
|
|
Serial.println("connect station!");
|
|
mesh.stationManual(config.stationSSID, config.stationPassword);
|
|
mesh.setHostname(config.hostname);
|
|
}
|
|
return this;
|
|
}
|
|
void MeshNet::sendTo(uint32_t target, String msg){
|
|
mesh.sendSingle(target, msg);
|
|
}
|
|
|
|
void MeshNet::broadcast(String msg){
|
|
mesh.sendBroadcast(msg);
|
|
}
|
|
void MeshNet::update(){
|
|
// only needed when no scheduler was passed to mesh.init
|
|
mesh.update();
|
|
}
|
|
|
|
// example, not used, to be removed
|
|
void MeshNet::onReceive( std::function<void(uint32_t from, String &msg)> cb) {
|
|
mesh.onReceive(cb);
|
|
}
|
|
|
|
void MeshNet::newConnectionCallback(uint32_t nodeId) {
|
|
Serial.printf("--> New Connection, nodeId = %u\n", nodeId);
|
|
}
|
|
|
|
void MeshNet::changedConnectionCallback() {
|
|
Serial.printf("--> Changed connections %s\n",mesh.subConnectionJson().c_str());
|
|
}
|
|
|
|
void MeshNet::nodeTimeAdjustedCallback(int32_t offset) {
|
|
Serial.printf("--> Adjusted time %u. Offset = %d\n", mesh.getNodeTime(),offset);
|
|
} |