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

Dependencies:   mbed DALI

Revision:
0:306a7e28f64a
Child:
1:b5145c7213be
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Jul 22 03:17:03 2020 +0000
@@ -0,0 +1,48 @@
+#include "mbed.h"
+#include "DALI.h"
+
+#define DALI_ADDRESS 1
+
+Serial pc(USBTX, USBRX);
+DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4);
+DALI dali(p22, p21); // tx, rx
+
+int main() {
+
+    pc.baud(115200);
+    pc.printf("DALI sample\r\n");
+    led1 = 1;
+
+    for (;;) {
+        if (dali.readable()) {
+            int f, d, v;
+            led3 = 1;
+            dali.read((enum DALI::DALI_FRAME*)&f, &d, &v);
+            pc.printf("dali f=%d d=%d v=%d\r\n", f, d, v);
+        }
+
+        if (pc.readable()) {
+            char c = pc.getc();
+            led4 = 1;
+            if (c >= '0' && c <= '9') {
+                dali.write(DALI::DALI_FORWARD_SHORT_DAP, DALI_ADDRESS, (c - '0') * 20);
+            } else
+            if (c == ' ') {
+                dali.write(DALI::DALI_FORWARD_SHORT_DAP, DALI_ADDRESS, 255);
+            } else
+            if (c == 'a') {
+                dali.write(DALI::DALI_FORWARD_SHORT_IAP, DALI_ADDRESS, 0x00); // OFF
+            } else
+            if (c == 'b') {
+                dali.write(DALI::DALI_FORWARD_SHORT_IAP, DALI_ADDRESS, 0x05); // RECALL_MAX_LEVEL
+            } else
+            if (c == 'c') {
+                dali.write(DALI::DALI_FORWARD_SHORT_IAP, DALI_ADDRESS, 0x90); // QUERY_STATUS
+            }
+        }
+
+        wait_ms(50);
+        led2 = ! led2;
+        led3 = led4 = 0;
+    }
+}