Library for DMX and MIDI protocol

Dependents:   Arts_DMX512_carteV3_MIDI Arts_DMX512_carteV3_MIDI_nRF

Committer:
villemejane
Date:
Sun Dec 12 12:41:49 2021 +0000
Revision:
0:9cf6898e6b66
Library for DMX and MIDI protocol

Who changed what in which revision?

UserRevisionLine numberNew contents of line
villemejane 0:9cf6898e6b66 1 /****************************************************************************/
villemejane 0:9cf6898e6b66 2 /* DMX_MIDI module library */
villemejane 0:9cf6898e6b66 3 /****************************************************************************/
villemejane 0:9cf6898e6b66 4 /* LEnsE / Julien VILLEMEJANE / Institut d'Optique Graduate School */
villemejane 0:9cf6898e6b66 5 /****************************************************************************/
villemejane 0:9cf6898e6b66 6 /* Library - projecteurs.h file */
villemejane 0:9cf6898e6b66 7 /* Spots are defined as follow : */
villemejane 0:9cf6898e6b66 8 /* * TYPE (char) : (L)yre, (S)canner, (P)ar, (R)gbawu, Stro(B)e */
villemejane 0:9cf6898e6b66 9 /* * ID (char) : unique identifier of the spot */
villemejane 0:9cf6898e6b66 10 /* * ADR (uint_16) : DMX first address */
villemejane 0:9cf6898e6b66 11 /* * GROUP(char) : group of the spots */
villemejane 0:9cf6898e6b66 12 /* */
villemejane 0:9cf6898e6b66 13 /* * DIM (char) : channel used for DIMMER - 0 if not used */
villemejane 0:9cf6898e6b66 14 /* */
villemejane 0:9cf6898e6b66 15 /* * RED (char) : channel used for RED color - 0 if not used */
villemejane 0:9cf6898e6b66 16 /* * GRN (char) : channel used for GREEN color - 0 if not used */
villemejane 0:9cf6898e6b66 17 /* * BLU (char) : channel used for BLUE color - 0 if not used */
villemejane 0:9cf6898e6b66 18 /* * WHT (char) : channel used for WHITE color - 0 if not used */
villemejane 0:9cf6898e6b66 19 /* * AMB (char) : channel used for AMBER color - 0 if not used */
villemejane 0:9cf6898e6b66 20 /* * UV (char) : channel used for UV color - 0 if not used */
villemejane 0:9cf6898e6b66 21 /* */
villemejane 0:9cf6898e6b66 22 /* * PAN (char) : channel used for PAN moves - 0 if not used */
villemejane 0:9cf6898e6b66 23 /* * TIL (char) : channel used for TILT moves - 0 if not used */
villemejane 0:9cf6898e6b66 24 /* * SPD (char) : channel used for SPEED setup - 0 if not used */
villemejane 0:9cf6898e6b66 25 /* * STB (char) : channel used for STROBE function- 0 if not used */
villemejane 0:9cf6898e6b66 26 /* */
villemejane 0:9cf6898e6b66 27 /****************************************************************************/
villemejane 0:9cf6898e6b66 28 /* Tested on Nucleo-L476RG / 16th nov 2021 */
villemejane 0:9cf6898e6b66 29 /****************************************************************************/
villemejane 0:9cf6898e6b66 30
villemejane 0:9cf6898e6b66 31 #ifndef PROJECTEURS_H_INCLUDED
villemejane 0:9cf6898e6b66 32 #define PROJECTEURS_H_INCLUDED
villemejane 0:9cf6898e6b66 33
villemejane 0:9cf6898e6b66 34 #include "mbed.h"
villemejane 0:9cf6898e6b66 35 #include "DMX_MIDI.h"
villemejane 0:9cf6898e6b66 36 #include "controleurs.h"
villemejane 0:9cf6898e6b66 37
villemejane 0:9cf6898e6b66 38 #define PROJ_NB_TOTAL 32
villemejane 0:9cf6898e6b66 39
villemejane 0:9cf6898e6b66 40 #define DMX_PROJ_NB_DATA 16
villemejane 0:9cf6898e6b66 41
villemejane 0:9cf6898e6b66 42 #define DMX_PROJ_ADR 0
villemejane 0:9cf6898e6b66 43 #define DMX_PROJ_TYPE 2
villemejane 0:9cf6898e6b66 44 #define DMX_PROJ_ID 3
villemejane 0:9cf6898e6b66 45 #define DMX_PROJ_GROUP 4
villemejane 0:9cf6898e6b66 46 #define DMX_PROJ_DIM 5
villemejane 0:9cf6898e6b66 47 #define DMX_PROJ_RED 6
villemejane 0:9cf6898e6b66 48 #define DMX_PROJ_GRN 7
villemejane 0:9cf6898e6b66 49 #define DMX_PROJ_BLU 8
villemejane 0:9cf6898e6b66 50 #define DMX_PROJ_WHT 9
villemejane 0:9cf6898e6b66 51 #define DMX_PROJ_AMB 10
villemejane 0:9cf6898e6b66 52 #define DMX_PROJ_UV 11
villemejane 0:9cf6898e6b66 53 #define DMX_PROJ_PAN 12
villemejane 0:9cf6898e6b66 54 #define DMX_PROJ_TIL 13
villemejane 0:9cf6898e6b66 55 #define DMX_PROJ_SPD 14
villemejane 0:9cf6898e6b66 56 #define DMX_PROJ_STB 15
villemejane 0:9cf6898e6b66 57
villemejane 0:9cf6898e6b66 58 /* Global Variables */
villemejane 0:9cf6898e6b66 59 extern char projecteurs[PROJ_NB_TOTAL][DMX_PROJ_NB_DATA];
villemejane 0:9cf6898e6b66 60
villemejane 0:9cf6898e6b66 61 /* Functions */
villemejane 0:9cf6898e6b66 62 /* initialisation of spots */
villemejane 0:9cf6898e6b66 63 void initProjectors(void);
villemejane 0:9cf6898e6b66 64
villemejane 0:9cf6898e6b66 65 /* get adress of a spot with number */
villemejane 0:9cf6898e6b66 66 uint16_t getProjAddress(char num);
villemejane 0:9cf6898e6b66 67 /* get channel of green of a spot with number */
villemejane 0:9cf6898e6b66 68 char getProjGroup(char num);
villemejane 0:9cf6898e6b66 69 /* get channel of dimmer of a spot with number */
villemejane 0:9cf6898e6b66 70 char getProjDimmer(char num);
villemejane 0:9cf6898e6b66 71 /* get channel of red of a spot with number */
villemejane 0:9cf6898e6b66 72 char getProjRed(char num);
villemejane 0:9cf6898e6b66 73 /* get channel of blue of a spot with number */
villemejane 0:9cf6898e6b66 74 char getProjBlue(char num);
villemejane 0:9cf6898e6b66 75 /* get channel of green of a spot with number */
villemejane 0:9cf6898e6b66 76 char getProjGreen(char num);
villemejane 0:9cf6898e6b66 77 /* update spots */
villemejane 0:9cf6898e6b66 78 void updateProjFromMidi(char note);
villemejane 0:9cf6898e6b66 79 /* update a spot */
villemejane 0:9cf6898e6b66 80 void updateProj(char num, char note, char grp, char ctl_M, char ctl_L);
villemejane 0:9cf6898e6b66 81
villemejane 0:9cf6898e6b66 82 #endif