From 6831e472079ef59c8302965d400e205258161342 Mon Sep 17 00:00:00 2001 From: Dooho Yi Date: Wed, 22 Apr 2026 14:05:51 +0900 Subject: [PATCH] a bugfix. --- faa_yellow/faa_yellow.ino | 52 ++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/faa_yellow/faa_yellow.ino b/faa_yellow/faa_yellow.ino index 5f77962..5146f36 100644 --- a/faa_yellow/faa_yellow.ino +++ b/faa_yellow/faa_yellow.ino @@ -91,7 +91,7 @@ // ** IDENTITY ** #define MY_SPECIES ("YELLOW") -#define MY_NAME ("YELOWEE {a.k.a. yellow1}") +#define MY_NAME ("YELOWEE {a.k.a. yellow5}") //arduino #include @@ -190,25 +190,28 @@ std::vector< std::vector > yellowA = { // extern Task riff_A_task; int wordA = 0; -float rateA = 150.0; // * 100 (scaling factor) +float rateA = 20.0; // * 20 (scaling factor) // 94:b9:7e:?? ?? ?? => 100 // 94:b9:7e:14:4e:2c => 150 (?) -// 94:b9:7e:14:49:b6 => 20 +// 94:b9:7e:14:49:b6 => 20 (x) +// E8:DB:84:DF:40:C3 => 20 float intervalA = 500.0; //500 ms void riff_A() { - if (riff_A_task.isLastIteration()) { - //we are done. stop now. - rest_task.restart(); - } else { - //check out next letter! - speed = yellowA[wordA][riff_A_task.getRunCounter()-1] * rateA; - set_speed_task.restart(); - } + //check out next letter! (==value) + speed = yellowA[wordA][riff_A_task.getRunCounter()-1] * rateA; + set_speed_task.restart(); + + //info Serial.print("riff_A (i="); Serial.print(riff_A_task.getRunCounter()-1); Serial.print(", r="); Serial.print(speed); Serial.println(")"); + + //if we are done... schedule a 'rest_task' + if (riff_A_task.isLastIteration()) { + rest_task.restartDelayed(intervalA + 100); + } } Task riff_A_task(0, TASK_ONCE, &riff_A, &runner, false); // @@ -224,7 +227,7 @@ Task riff_A_start_task(0, TASK_ONCE, &riff_A_start, &runner, false); // //riff_B std::vector< std::vector > yellowB = { - {0.685715,0.723811,0.800002,0.485714,0.519047,0.552381,0.580953,0,0,0,0,0,0,0,0,0.533333,0.571429,0.604762,0.638096,0.653969,0.669842,0.685715,0.695239,4.17233e-07,0.00952381,0.00952381,0.00952381,0.00952381,0.00952381,0.00952381,0.00952381,0.366666,0.380951,0.399999,0.423809,0.933336,0.952384,0.957145,0.961907,0,0,0,0,0,0,0.438095,0.457142,0.457142,0,0.361904}, + {0.685715,0.723811,0.800002,0.485714,0.519047,0.552381,0.580953,0,0,0,0,0,0,0,0,-0.0285652,-0.257127,-0.29522,-0.333314,-0.361884,-0.399977,-0.419024,-0.428548,4.17233e-07,0.00952381,0.00952381,0.00952381,0.00952381,0.00952381,0.00952381,0.00952381,0.0666683,0.00952798,-0.0571358,-0.276174,-0.285697,-0.304744,-0.314267,0.961907,0,0,0,0,0,0,0.438095,0.457142,0.457142,0,0.361904}, //50 {0,0.742857,0.00952387,0.00952387,0.00952387,0.00952387,0.742857,0.00952387,0.00952387,0.00952387,0.00952387,0.00952387,0.00952387,0.742857,0.00952387,0.00952387,0.00952387,0.00952387,0.00952387,0.00952387,0.742857,0.00952387,0.00952387,0.00952387,0.00952387,0.00952387,0.00952387,0.742857,0.00952387,0.00952387,0.00952387,0.742857,0.00952387,0.00952387,0.00952387,0.00952387,0.00952387,0.742857,0.00952387,0.00952387,0.00952387,0.00952387,0.714286,0.00952387,0.00952387,0.00952387,0.00952387,0.00952387,0.00952387,-5.96046e-08}, @@ -239,25 +242,28 @@ std::vector< std::vector > yellowB = { // extern Task riff_B_task; int wordB = 0; -float rateB = 150.0; // * 100 (scaling factor) +float rateB = 10.0; // * 10 (scaling factor) // 94:b9:7e:?? ?? ?? => 100 // 94:b9:7e:14:4e:2c => 150 (?) -// 94:b9:7e:14:49:b6 => 20 +// 94:b9:7e:14:49:b6 => 10 (x) +// E8:DB:84:DF:40:C3 => 10 float intervalB = 500.0; //500 ms void riff_B() { - if (riff_B_task.isLastIteration()) { - //we are done. stop now. - rest2_task.restart(); - } else { - //check out next letter! - speed2 = yellowB[wordB][riff_B_task.getRunCounter()-1] * rateB; - set_speed2_task.restart(); - } + //check out next letter! + speed2 = yellowB[wordB][riff_B_task.getRunCounter()-1] * rateB; + set_speed2_task.restart(); + + //info Serial.print("riff_B (i="); Serial.print(riff_B_task.getRunCounter()-1); Serial.print(", r="); Serial.print(speed2); Serial.println(")"); + + //if we are done... schedule a 'rest_task' + if (riff_B_task.isLastIteration()) { + rest2_task.restartDelayed(intervalB + 100); + } } Task riff_B_task(0, TASK_ONCE, &riff_B, &runner, false); // @@ -301,7 +307,7 @@ Task riff_B_start_task(0, TASK_ONCE, &riff_B_start, &runner, false); // count++; // } // } -// Task conductor_lonely_task(1000, TASK_FOREVER, &conductor_lonely, &runner, false); //check every 10 sec. +// Task conductor_lonely_task(1000, TASK_FOREVER, &conductor_lonely, &runner, false); // //*-*-*-*-*-*-*-*-*-*-*-*-* // ==[DISABLE]==