Suga koubou
/
dali_sample
DALI send/recv library see: https://os.mbed.com/users/okini3939/code/DALI/
main.cpp@0:306a7e28f64a, 2020-07-22 (annotated)
- 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?
User | Revision | Line number | New 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 | } |