Files
dmxbox/dmxbox.ino

53 lines
1.2 KiB
Arduino
Raw Normal View History

2022-10-24 15:57:52 +02:00
#include <DMXSerial.h>
//Détail des trames
//Réception
//Demande de mise à jour d'un canal 0xC 0xCANAL 0xVALUE
//Demande de version 0xD
//Envoi
//Envoi d'un status prêt 0xA
//Envoi d'un status de mise à jour réussie 0xE
//Envoi de la version firmware 0xD VERSION
2022-10-24 15:57:52 +02:00
#define FIRMWARE_VERSION "DMXBOX V0.0.2"
unsigned int receiveState = 0;
unsigned int channel = 0;
2022-10-24 15:57:52 +02:00
//Modifie un canal DMX512
void setCanal(unsigned int number, unsigned int value){
2022-10-24 15:57:52 +02:00
DMXSerial.write(number, value);
Serial.write(0xE);
2022-10-24 15:57:52 +02:00
}
//Initialisation
void setup() {
Serial.begin(9600);
DMXSerial.init(DMXController);
Serial.write(0xA);
2022-10-24 15:57:52 +02:00
}
//Interception des commandes de canaux
void loop() {
if(Serial.available())
{
unsigned int received = Serial.read();
if(received == 0xD && receiveState == 0) {
Serial.write(0xD);
Serial.println(FIRMWARE_VERSION);
}
//Demande de paramétrage canal
else if(received == 0xC && receiveState == 0) receiveState = 1;
else if(receiveState == 1) {
channel = received;
receiveState = 2;
}
else if(receiveState == 2){
setCanal(channel, received);
receiveState = 0;
channel = 0;
2022-10-24 15:57:52 +02:00
}
}
}