Last active
March 14, 2021 10:57
-
-
Save costyn/25aa9a2d570e459c89e3cb271f992dbd to your computer and use it in GitHub Desktop.
painlessMesh example basic rewritten with TaskScheduler
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//************************************************************ | |
// this is a simple example that uses the painlessMesh library | |
// | |
// 1. sends a silly message to every node on the mesh at a random time betweew 1 and 5 seconds | |
// 2. prints anything it recieves to Serial.print | |
// | |
// | |
//************************************************************ | |
// #define _TASK_MICRO_RES uncomment for weirdness | |
#include "painlessMesh.h" | |
#define MESH_PREFIX "whateverYouLike" | |
#define MESH_PASSWORD "somethingSneaky" | |
#define MESH_PORT 5555 | |
void sendMessage() ; // Prototype so PlatformIO doesn't complain | |
painlessMesh mesh; | |
Task taskSendMessage( TASK_SECOND * 1 , TASK_FOREVER, &sendMessage ); | |
void receivedCallback( uint32_t from, String &msg ) { | |
Serial.printf("startHere: Received from %u msg=%s\n", from, msg.c_str()); | |
} | |
void newConnectionCallback(uint32_t nodeId) { | |
Serial.printf("--> startHere: New Connection, nodeId = %u\n", nodeId); | |
} | |
void changedConnectionCallback() { | |
Serial.printf("Changed connections %s\n",mesh.subConnectionJson().c_str()); | |
} | |
void nodeTimeAdjustedCallback(int32_t offset) { | |
Serial.printf("Adjusted time %u. Offset = %d\n", mesh.getNodeTime(),offset); | |
} | |
void setup() { | |
Serial.begin(115200); | |
//mesh.setDebugMsgTypes( ERROR | MESH_STATUS | CONNECTION | SYNC | COMMUNICATION | GENERAL | MSG_TYPES | REMOTE ); // all types on | |
mesh.setDebugMsgTypes( ERROR | STARTUP ); // set before init() so that you can see startup messages | |
mesh.init( MESH_PREFIX, MESH_PASSWORD, MESH_PORT ); | |
mesh.onReceive(&receivedCallback); | |
mesh.onNewConnection(&newConnectionCallback); | |
mesh.onChangedConnections(&changedConnectionCallback); | |
mesh.onNodeTimeAdjusted(&nodeTimeAdjustedCallback); | |
mesh.scheduler.addTask( taskSendMessage ); | |
taskSendMessage.enable() ; | |
} | |
void loop() { | |
mesh.update(); | |
} | |
void sendMessage() { | |
String msg = "Hello from node "; | |
msg += mesh.getNodeId(); | |
mesh.sendBroadcast( msg ); | |
taskSendMessage.setInterval( random( TASK_SECOND * 1, TASK_SECOND * 5 )); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
can we use pwm with this task? i want to fade dim but its get starts others after finish @costyn