Suga koubou
/
dali_sample
DALI send/recv library see: https://os.mbed.com/users/okini3939/code/DALI/
main.cpp@1:b5145c7213be, 2020-07-27 (annotated)
- 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?
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 | 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 | } |