diff --git a/gastank/src/main.cpp b/gastank/src/main.cpp index 415826e..6702a45 100644 --- a/gastank/src/main.cpp +++ b/gastank/src/main.cpp @@ -44,6 +44,7 @@ //======================== #define GASTANK_SIDE_KEY 100 #define GASTANK_HEAD_KEY 101 +#define GASTANK_SIDE_MOVE_KEY 102 //======================= //======================== @@ -157,9 +158,15 @@ Task nothappyalone_task(100, TASK_FOREVER, ¬happyalone); // by default, ENABL // my tasks -// ring_side. +// ring_side. - common static Servo side; extern Task side_release_task; +void side_release() { + side.detach(); +} +Task side_release_task(0, TASK_ONCE, &side_release); + +// ring_side. - act type #1 (hit) extern Task ring_side_task; int side_start_angle = 170; int side_hit_angle = 100; @@ -180,23 +187,25 @@ void ring_side() { side_release_task.restartDelayed(100); } count++; - // int angle = random(80, 125); - // // - // Serial.print("ring_side go -> "); - // Serial.print(angle); - // Serial.println(" deg."); - // // - // side.attach(D6); - // side.write(angle); - // side_release_task.restartDelayed(100); } Task ring_side_task(100, 3, &ring_side); -// Task ring_side_task(0, TASK_ONCE, &ring_side); -void side_release() { - side.detach(); -} -Task side_release_task(0, TASK_ONCE, &side_release); +// ring_side. - act type #2 (set angle==move) +extern Task ring_side_move_task; +int side_set_angle = 50; +void ring_side_move() { + // + Serial.print("ring_side_move go -> "); + Serial.print(side_set_angle); + Serial.println(" deg."); + // + side.attach(D6); + side.write(side_set_angle); + side_release_task.restartDelayed(100); +} +Task ring_side_move_task(0, TASK_ONCE, &ring_side_move); + +// ring_head. static Servo head; extern Task head_release_task; void ring_head() { @@ -315,6 +324,7 @@ void receivedCallback(uint32_t from, String & msg) { // REQUIRED if (str_ext == "X") { side_start_angle = str_x1.toInt(); // ? ~ ? side_hit_angle = str_x2.toInt(); // ? ~ ? + side_set_angle = str_x3.toInt(); // ? ~ ? } //is it for me, the gastank? @@ -324,6 +334,9 @@ void receivedCallback(uint32_t from, String & msg) { // REQUIRED if (key == GASTANK_HEAD_KEY && gate == 1) { ring_head_task.restartDelayed(10); } + if (key == GASTANK_SIDE_MOVE_KEY && gate == 1) { + ring_side_move_task.restartDelayed(10); + } } void changedConnectionCallback() { Serial.println(mesh.getNodeList().size()); @@ -435,6 +448,7 @@ void setup() { //tasks runner.addTask(ring_side_task); + runner.addTask(ring_side_move_task); runner.addTask(side_release_task); // runner.addTask(ring_head_task);