Library for DMX and MIDI protocol
Dependents: Arts_DMX512_carteV3_MIDI Arts_DMX512_carteV3_MIDI_nRF
projecteurs.h@0:9cf6898e6b66, 2021-12-12 (annotated)
- 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?
User | Revision | Line number | New 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 |