Commit ec98a565fed316099f6e68cf9b7f484bf4f0e356
Committed by
GitHub
1 parent
f254c10b
Delete Monitor.ino
Showing
1 changed file
with
0 additions
and
77 deletions
Examples/Monitor/Monitor.ino deleted
| 1 | -/*########################################################################### | |
| 2 | -DALI Interface Demo | |
| 3 | - | |
| 4 | -Monitors all messages on the DALI bus | |
| 5 | - | |
| 6 | ----------------------------------------------------------------------------- | |
| 7 | -Changelog: | |
| 8 | -2020-11-10 Created & tested on ATMega328 @ 8Mhz | |
| 9 | ----------------------------------------------------------------------------- | |
| 10 | - Monitor.ino - copyright qqqlab.com / github.com/qqqlab | |
| 11 | - | |
| 12 | - This program is free software: you can redistribute it and/or modify | |
| 13 | - it under the terms of the GNU General Public License as published by | |
| 14 | - the Free Software Foundation, either version 3 of the License, or | |
| 15 | - (at your option) any later version. | |
| 16 | - | |
| 17 | - This program is distributed in the hope that it will be useful, | |
| 18 | - but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 19 | - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 20 | - GNU General Public License for more details. | |
| 21 | - | |
| 22 | - You should have received a copy of the GNU General Public License | |
| 23 | - along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| 24 | -###########################################################################*/ | |
| 25 | - | |
| 26 | -#define DALI_OUTPUT_PIN 3 | |
| 27 | -#define DALI_INPUT_PIN 4 | |
| 28 | - | |
| 29 | -#include "qqqDali_ATMega328.h" | |
| 30 | - | |
| 31 | -Dali_ATMega328 dali; | |
| 32 | - | |
| 33 | -uint8_t rx_out=0; | |
| 34 | -volatile uint8_t rx_in=0; | |
| 35 | -uint8_t rx_data[256]; | |
| 36 | - | |
| 37 | -//callback to handle received data on dali2 interface - executes in interrupt context, store data in buffer and display in loop() | |
| 38 | -void dali_receiver(Dali *d, uint8_t *data, uint8_t len) { | |
| 39 | - //push data in buffer | |
| 40 | - int16_t freebuf = (int16_t)256 + rx_in - rx_out - len - 2; | |
| 41 | - if(freebuf<=1) return; //buffer full | |
| 42 | - uint8_t j = rx_in; | |
| 43 | - rx_data[j++] = len; //push length | |
| 44 | - for(uint8_t i=0;i<len;i++) rx_data[j++]=data[i]; //push data | |
| 45 | - rx_in = j; //increment in pointer upon completion | |
| 46 | -} | |
| 47 | - | |
| 48 | - | |
| 49 | -void setup() { | |
| 50 | - Serial.begin(115200); | |
| 51 | - Serial.println("DALI Monitor Demo"); | |
| 52 | - | |
| 53 | - //start the DALI interfaces | |
| 54 | - //arguments: tx_pin, rx_pin (negative values disable transmitter / receiver) | |
| 55 | - //Note: the receiver pins should be on different PCINT groups, e.g one | |
| 56 | - //receiver on pin0-7 (PCINT2) one on pin8-13 (PCINT0) and one on pin14-19 (PCINT1) | |
| 57 | - dali.begin(DALI_OUTPUT_PIN, DALI_INPUT_PIN); | |
| 58 | - | |
| 59 | - //attach a received data handler | |
| 60 | - dali.EventHandlerReceivedData = dali_receiver; | |
| 61 | -} | |
| 62 | - | |
| 63 | -#define MIN_LEVEL 100 //most LED Drivers do not get much lower than this | |
| 64 | -int16_t level = 254; //254 is max level, 1 is min level (if driver supports it), 0 is off | |
| 65 | -int8_t level_step = 4; | |
| 66 | - | |
| 67 | -void loop() { | |
| 68 | - if(rx_out!=rx_in) { | |
| 69 | - //Serial.print("RX:"); | |
| 70 | - uint8_t len = rx_data[rx_out++]; | |
| 71 | - for(uint8_t i=0;i<len;i++) { | |
| 72 | - Serial.print(rx_data[rx_out++],HEX); | |
| 73 | - Serial.print(' '); | |
| 74 | - } | |
| 75 | - Serial.println(); | |
| 76 | - } | |
| 77 | -} |