|
@@ -3,6 +3,7 @@
|
|
|
#include <SD.h>
|
|
|
#include <SPI.h>
|
|
|
#include <Tsunami.h>
|
|
|
+#include <FadeLed.h>
|
|
|
|
|
|
const int BUTTON_PIN[10] = {30, 31, 32, 33, 34, 35, 36, 37, 38, 39} ;
|
|
|
int currentButton ;
|
|
@@ -27,14 +28,21 @@ char gTsunamiVersion[VERSION_STRING_LEN]; // Tsunami version string
|
|
|
//Eventually pointers to manage creation/deletion of listeners
|
|
|
EvtManager mgr;
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-bool state = LOW;
|
|
|
-int test;
|
|
|
-int test2;
|
|
|
-
|
|
|
-EvtListener *plist;
|
|
|
-EvtListener *plist2;
|
|
|
+//Dimmer
|
|
|
+#define DIMMER_PIN 9
|
|
|
+FadeLed dimmer(DIMMER_PIN);
|
|
|
+//int dimmer_value;
|
|
|
+//int dimmer_target;
|
|
|
+//int dimmer_fade;
|
|
|
+//int dimmer_delta ; //to add each "loop"
|
|
|
+////EvtListener *pDimmer; // identified listener to be able to kill after fade
|
|
|
+//
|
|
|
+//bool state = LOW;
|
|
|
+//int test;
|
|
|
+//int test2;
|
|
|
+//
|
|
|
+//
|
|
|
+//EvtListener *plist2;
|
|
|
|
|
|
//Functions prototypes
|
|
|
void EvtResetButtonContext ();
|
|
@@ -48,9 +56,9 @@ void setup() {
|
|
|
// TLC
|
|
|
tlc.begin();
|
|
|
tlc.write();
|
|
|
-
|
|
|
+ Serial.println("Test boutons");
|
|
|
for (int i ; i<12; i++) {
|
|
|
- Serial.println(i);
|
|
|
+
|
|
|
ledState[i] = 65535 ;
|
|
|
tlcWrite();
|
|
|
delay (100);
|
|
@@ -59,6 +67,7 @@ void setup() {
|
|
|
}
|
|
|
|
|
|
// SD
|
|
|
+ Serial.println("Lecture carte SD");
|
|
|
if (SDfound == 0) {
|
|
|
if (!SD.begin(BUILTIN_SDCARD)) {
|
|
|
Serial.print("The SD card cannot be found");
|
|
@@ -67,8 +76,10 @@ void setup() {
|
|
|
}
|
|
|
SDfound = 1;
|
|
|
|
|
|
+
|
|
|
// TSUNAMI
|
|
|
// We should wait for the Tsunami to finish reset
|
|
|
+ Serial.println("Demarrage du Tsunami wav player");
|
|
|
delay(1000);
|
|
|
tsunami.start();
|
|
|
delay(10);
|
|
@@ -86,14 +97,38 @@ void setup() {
|
|
|
}
|
|
|
else
|
|
|
Serial.print("WAV Trigger response not available");
|
|
|
-
|
|
|
+ tsunami.trackPlayPoly(1, 0, true);
|
|
|
+ delay(500);
|
|
|
+ tsunami.trackPlayPoly(2, 0, true);
|
|
|
+ delay(500);
|
|
|
+ tsunami.trackPlayPoly(3, 1, true);
|
|
|
+ delay(500);
|
|
|
+ tsunami.trackPlayPoly(4, 1, true);
|
|
|
+ delay(500);
|
|
|
+ tsunami.trackPlayPoly(5, 2, true);
|
|
|
+ delay(500);
|
|
|
+ tsunami.trackPlayPoly(6, 2, true);
|
|
|
+ delay(500);
|
|
|
+ tsunami.trackPlayPoly(7, 3, true);
|
|
|
+ delay(500);
|
|
|
+ tsunami.trackPlayPoly(8, 4, true);
|
|
|
+
|
|
|
//Set button pins as input
|
|
|
for (int i ; i < sizeof(BUTTON_PIN)/sizeof(int) ; i++) {
|
|
|
pinMode(BUTTON_PIN[i],INPUT_PULLUP) ;
|
|
|
}
|
|
|
|
|
|
+ // Create timers for controlled events
|
|
|
+ //pDimmer = new EvtTimeListener(40, true, (EvtAction)fadeDimmer);
|
|
|
+
|
|
|
+
|
|
|
//EvtResetButtonContext();
|
|
|
+ Serial.println();
|
|
|
+ Serial.println();
|
|
|
+ Serial.println("Demarrage termine, activation etat 0");
|
|
|
+
|
|
|
buttonFocus(0) ;
|
|
|
+
|
|
|
|
|
|
// plist = new EvtTimeListener(1000, true, (EvtAction)blinkme);
|
|
|
// plist2 = new EvtTimeListener(100, true, (EvtAction)blinkme2);
|
|
@@ -126,28 +161,48 @@ void readSDFile() {
|
|
|
|
|
|
while (btnFile.available()) {
|
|
|
buf = btnFile.readStringUntil('\n');
|
|
|
+
|
|
|
//check selector (1st word of line) and execute corresponding function
|
|
|
String selector = getSubstring(buf, ' ', 0);
|
|
|
- Serial.println(selector);
|
|
|
+ //Serial.println(selector);
|
|
|
+
|
|
|
if (selector == "sound") {
|
|
|
String track = getSubstring(buf, ' ', 2) ;
|
|
|
String out = getSubstring(buf, ' ', 1) ;
|
|
|
Serial.println("Playing track " + track + "to output " + out);
|
|
|
- tsunami.trackPlayPoly(track.toInt(), out.toInt(), true);
|
|
|
-
|
|
|
+ tsunami.trackPlayPoly(track.toInt(), out.toInt(), true);
|
|
|
}
|
|
|
+
|
|
|
else if (selector == "led") {
|
|
|
+ String mode = getSubstring(buf, ' ', 1);
|
|
|
+ if (mode.toInt() == 0){
|
|
|
+
|
|
|
+ }
|
|
|
Serial.println("Led mode " + getSubstring(buf, ' ', 1));
|
|
|
}
|
|
|
+
|
|
|
else if (selector == "dimmer") {
|
|
|
Serial.println("Dimmer fade à " + getSubstring(buf, ' ', 1) + " en " + getSubstring(buf, ' ', 2) + "ms");
|
|
|
+ int dimmer_value = getSubstring(buf, ' ', 1).toInt();
|
|
|
+ int dimmer_fade = getSubstring(buf, ' ', 2).toInt();
|
|
|
+ dimmer.setTime(dimmer_fade);
|
|
|
+ dimmer.set(dimmer_value);
|
|
|
+// Serial.println(dimmer_delta);
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
else if (selector == "delay") {
|
|
|
String wait = getSubstring(buf, ' ', 1);
|
|
|
- Serial.println("Waiting " + wait + " ms");
|
|
|
+ Serial.println("delai " + wait + " ms");
|
|
|
delay(wait.toInt());
|
|
|
}
|
|
|
- else {Serial.println("pas compris");}
|
|
|
+
|
|
|
+ else if (selector == ""){}
|
|
|
+
|
|
|
+ else {
|
|
|
+ Serial.print(selector);
|
|
|
+ Serial.println(": pas compris");
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|
|
@@ -163,9 +218,21 @@ void readSDFile() {
|
|
|
// * buttonFocus -> lights the current button and shuts the others
|
|
|
// * readSequence -> reads a text file on the SD card with the sequence of actions to execute
|
|
|
// */
|
|
|
-//
|
|
|
-//
|
|
|
-//
|
|
|
+
|
|
|
+bool fadeDimmer() {
|
|
|
+// if (dimmer_value != dimmer_target) {
|
|
|
+// dimmer_value += dimmer_delta ;
|
|
|
+// Serial.println(dimmer_value);
|
|
|
+//
|
|
|
+// }
|
|
|
+// else
|
|
|
+// mgr.removeListener(pDimmer);
|
|
|
+ FadeLed::update();
|
|
|
+ Serial.println("fade");
|
|
|
+ return false;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
void tlcWrite(){
|
|
|
for (int ledIndex ; ledIndex < 12 ; ledIndex++) { //sizeof(ledState)/sizeof(uint32_t)
|
|
|
|
|
@@ -251,6 +318,7 @@ bool button9(){
|
|
|
|
|
|
void EvtResetButtonContext () {
|
|
|
mgr.resetContext();
|
|
|
+ // button listeners
|
|
|
mgr.addListener(new EvtPinListener(BUTTON_PIN[0], (EvtAction)button0));
|
|
|
mgr.addListener(new EvtPinListener(BUTTON_PIN[1], (EvtAction)button1));
|
|
|
mgr.addListener(new EvtPinListener(BUTTON_PIN[2], (EvtAction)button2));
|
|
@@ -261,6 +329,9 @@ void EvtResetButtonContext () {
|
|
|
mgr.addListener(new EvtPinListener(BUTTON_PIN[7], (EvtAction)button7));
|
|
|
mgr.addListener(new EvtPinListener(BUTTON_PIN[8], (EvtAction)button8));
|
|
|
mgr.addListener(new EvtPinListener(BUTTON_PIN[9], (EvtAction)button9));
|
|
|
+
|
|
|
+ // controlled time listeners
|
|
|
+ mgr.addListener(new EvtTimeListener(40, true, (EvtAction)fadeDimmer));
|
|
|
}
|
|
|
|
|
|
|