DALI send/recv library see: https://os.mbed.com/users/okini3939/code/DALI/

Dependencies:   mbed DALI

Committer:
okini3939
Date:
Wed Jul 22 03:17:03 2020 +0000
Revision:
0:306a7e28f64a
Child:
1:b5145c7213be
1st build;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:306a7e28f64a 1 #include "mbed.h"
okini3939 0:306a7e28f64a 2 #include "DALI.h"
okini3939 0:306a7e28f64a 3
okini3939 0:306a7e28f64a 4 #define DALI_ADDRESS 1
okini3939 0:306a7e28f64a 5
okini3939 0:306a7e28f64a 6 Serial pc(USBTX, USBRX);
okini3939 0:306a7e28f64a 7 DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4);
okini3939 0:306a7e28f64a 8 DALI dali(p22, p21); // tx, rx
okini3939 0:306a7e28f64a 9
okini3939 0:306a7e28f64a 10 int main() {
okini3939 0:306a7e28f64a 11
okini3939 0:306a7e28f64a 12 pc.baud(115200);
okini3939 0:306a7e28f64a 13 pc.printf("DALI sample\r\n");
okini3939 0:306a7e28f64a 14 led1 = 1;
okini3939 0:306a7e28f64a 15
okini3939 0:306a7e28f64a 16 for (;;) {
okini3939 0:306a7e28f64a 17 if (dali.readable()) {
okini3939 0:306a7e28f64a 18 int f, d, v;
okini3939 0:306a7e28f64a 19 led3 = 1;
okini3939 0:306a7e28f64a 20 dali.read((enum DALI::DALI_FRAME*)&f, &d, &v);
okini3939 0:306a7e28f64a 21 pc.printf("dali f=%d d=%d v=%d\r\n", f, d, v);
okini3939 0:306a7e28f64a 22 }
okini3939 0:306a7e28f64a 23
okini3939 0:306a7e28f64a 24 if (pc.readable()) {
okini3939 0:306a7e28f64a 25 char c = pc.getc();
okini3939 0:306a7e28f64a 26 led4 = 1;
okini3939 0:306a7e28f64a 27 if (c >= '0' && c <= '9') {
okini3939 0:306a7e28f64a 28 dali.write(DALI::DALI_FORWARD_SHORT_DAP, DALI_ADDRESS, (c - '0') * 20);
okini3939 0:306a7e28f64a 29 } else
okini3939 0:306a7e28f64a 30 if (c == ' ') {
okini3939 0:306a7e28f64a 31 dali.write(DALI::DALI_FORWARD_SHORT_DAP, DALI_ADDRESS, 255);
okini3939 0:306a7e28f64a 32 } else
okini3939 0:306a7e28f64a 33 if (c == 'a') {
okini3939 0:306a7e28f64a 34 dali.write(DALI::DALI_FORWARD_SHORT_IAP, DALI_ADDRESS, 0x00); // OFF
okini3939 0:306a7e28f64a 35 } else
okini3939 0:306a7e28f64a 36 if (c == 'b') {
okini3939 0:306a7e28f64a 37 dali.write(DALI::DALI_FORWARD_SHORT_IAP, DALI_ADDRESS, 0x05); // RECALL_MAX_LEVEL
okini3939 0:306a7e28f64a 38 } else
okini3939 0:306a7e28f64a 39 if (c == 'c') {
okini3939 0:306a7e28f64a 40 dali.write(DALI::DALI_FORWARD_SHORT_IAP, DALI_ADDRESS, 0x90); // QUERY_STATUS
okini3939 0:306a7e28f64a 41 }
okini3939 0:306a7e28f64a 42 }
okini3939 0:306a7e28f64a 43
okini3939 0:306a7e28f64a 44 wait_ms(50);
okini3939 0:306a7e28f64a 45 led2 = ! led2;
okini3939 0:306a7e28f64a 46 led3 = led4 = 0;
okini3939 0:306a7e28f64a 47 }
okini3939 0:306a7e28f64a 48 }