DALI send/recv library.

Dependents:   dali_sample

DALI send/recv library

lighting control protocol.

設備照明の調光プロトコル DALI を送受信するライブラリです。

DALI インターフェースの回路図などは次を参照。

Committer:
okini3939
Date:
Wed Jul 22 03:04:04 2020 +0000
Revision:
0:6cb7026982fc
Child:
1:319d52b5116b
1st build;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:6cb7026982fc 1 /*
okini3939 0:6cb7026982fc 2 * DALI send/recv library
okini3939 0:6cb7026982fc 3 * Copyright (c) 2020 Hiroshi Suga
okini3939 0:6cb7026982fc 4 * Released under the MIT License: http://mbed.org/license/mit
okini3939 0:6cb7026982fc 5 */
okini3939 0:6cb7026982fc 6
okini3939 0:6cb7026982fc 7 /** @file
okini3939 0:6cb7026982fc 8 * @brief DALI send/recv
okini3939 0:6cb7026982fc 9 */
okini3939 0:6cb7026982fc 10
okini3939 0:6cb7026982fc 11 #ifndef _DALI_H_
okini3939 0:6cb7026982fc 12 #define _DALI_H_
okini3939 0:6cb7026982fc 13
okini3939 0:6cb7026982fc 14 #include "CBuffer.h"
okini3939 0:6cb7026982fc 15
okini3939 0:6cb7026982fc 16 class DALI {
okini3939 0:6cb7026982fc 17 public:
okini3939 0:6cb7026982fc 18 enum DALI_FRAME {
okini3939 0:6cb7026982fc 19 DALI_FORWARD_SHORT_DAP,
okini3939 0:6cb7026982fc 20 DALI_FORWARD_SHORT_IAP,
okini3939 0:6cb7026982fc 21 DALI_FORWARD_GROUP_DAP,
okini3939 0:6cb7026982fc 22 DALI_FORWARD_GROUP_IAP,
okini3939 0:6cb7026982fc 23 DALI_BACKWARD,
okini3939 0:6cb7026982fc 24 };
okini3939 0:6cb7026982fc 25
okini3939 0:6cb7026982fc 26 DALI (PinName tx, PinName rx);
okini3939 0:6cb7026982fc 27
okini3939 0:6cb7026982fc 28 int read (enum DALI_FRAME *frame, int *addr, int *value);
okini3939 0:6cb7026982fc 29 int readable ();
okini3939 0:6cb7026982fc 30
okini3939 0:6cb7026982fc 31 int write (enum DALI_FRAME frame, int addr, int value);
okini3939 0:6cb7026982fc 32
okini3939 0:6cb7026982fc 33 private:
okini3939 0:6cb7026982fc 34 InterruptIn _rx;
okini3939 0:6cb7026982fc 35 DigitalOut _tx;
okini3939 0:6cb7026982fc 36 Timeout _timer;
okini3939 0:6cb7026982fc 37 Ticker _ticker;
okini3939 0:6cb7026982fc 38
okini3939 0:6cb7026982fc 39 CircBuffer<int> *recv_buf;
okini3939 0:6cb7026982fc 40 CircBuffer<int> *send_buf;
okini3939 0:6cb7026982fc 41
okini3939 0:6cb7026982fc 42 int mode;
okini3939 0:6cb7026982fc 43 int count;
okini3939 0:6cb7026982fc 44 int timeflg;
okini3939 0:6cb7026982fc 45 int recv_bit;
okini3939 0:6cb7026982fc 46 int recv_data;
okini3939 0:6cb7026982fc 47
okini3939 0:6cb7026982fc 48 int send_data;
okini3939 0:6cb7026982fc 49 int send_bit;
okini3939 0:6cb7026982fc 50 int halfbit;
okini3939 0:6cb7026982fc 51 int busy;
okini3939 0:6cb7026982fc 52
okini3939 0:6cb7026982fc 53 void isr_rx ();
okini3939 0:6cb7026982fc 54 void isr_timer ();
okini3939 0:6cb7026982fc 55 void isr_timeout ();
okini3939 0:6cb7026982fc 56 void isr_send ();
okini3939 0:6cb7026982fc 57
okini3939 0:6cb7026982fc 58 };
okini3939 0:6cb7026982fc 59
okini3939 0:6cb7026982fc 60 #endif