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

Dependencies:   mbed DALI

Committer:
okini3939
Date:
Mon Jul 27 05:54:25 2020 +0000
Revision:
1:b5145c7213be
Parent:
0:306a7e28f64a
bug fix;

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 1:b5145c7213be 18 int f, a, v;
okini3939 0:306a7e28f64a 19 led3 = 1;
okini3939 1:b5145c7213be 20 dali.read((enum DALI::DALI_FRAME*)&f, &a, &v);
okini3939 1:b5145c7213be 21 pc.printf("recv f=%d a=%d v=%d\r\n", f, a, 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 1:b5145c7213be 28 dali.write(DALI::FORWARD_SHORT_DAP, DALI_ADDRESS, (c - '0') * 20);
okini3939 1:b5145c7213be 29 dali.write(DALI::FORWARD_GROUP_DAP, DALI_ADDRESS, (c - '0') * 20);
okini3939 0:306a7e28f64a 30 } else
okini3939 0:306a7e28f64a 31 if (c == ' ') {
okini3939 1:b5145c7213be 32 dali.write(DALI::FORWARD_SHORT_DAP, DALI_ADDRESS, 255);
okini3939 0:306a7e28f64a 33 } else
okini3939 0:306a7e28f64a 34 if (c == 'a') {
okini3939 1:b5145c7213be 35 dali.write(DALI::FORWARD_SHORT_IAP, DALI_ADDRESS, DALI::OFF); // OFF
okini3939 0:306a7e28f64a 36 } else
okini3939 0:306a7e28f64a 37 if (c == 'b') {
okini3939 1:b5145c7213be 38 dali.write(DALI::FORWARD_SHORT_IAP, DALI_ADDRESS, DALI::RECALL_MAX_LEVEL); // RECALL_MAX_LEVEL
okini3939 0:306a7e28f64a 39 } else
okini3939 0:306a7e28f64a 40 if (c == 'c') {
okini3939 1:b5145c7213be 41 dali.write(DALI::FORWARD_SHORT_IAP, DALI_ADDRESS, DALI::QUERY_STATUS); // QUERY_STATUS
okini3939 1:b5145c7213be 42 } else
okini3939 1:b5145c7213be 43 if (c == 'd') {
okini3939 1:b5145c7213be 44 dali.write(DALI::FORWARD_GROUP_DAP, 63, 127);
okini3939 0:306a7e28f64a 45 }
okini3939 0:306a7e28f64a 46 }
okini3939 0:306a7e28f64a 47
okini3939 1:b5145c7213be 48 wait_ms(1);
okini3939 0:306a7e28f64a 49 led2 = ! led2;
okini3939 0:306a7e28f64a 50 led3 = led4 = 0;
okini3939 0:306a7e28f64a 51 }
okini3939 0:306a7e28f64a 52 }