Daisen Remote library
DAISEN リモコン用ライブラリ
- ダイセン電子工業 製
Sample
リモコンの受信機(受信モジュール)とはシリアル(UART)で接続します。
#include "mbed.h" #include "daisenRemote.h" Serial pc(USBTX, USBRX); DigitalOut myled(LED1); daisenRemote remote(p10, daisenRemote::RF); // rx, type void isrRemote () { pc.printf("Recv: %d\r\n", remote.read()); } int main() { pc.baud(115200); pc.printf("*** REMOTE\r\n"); remote.attach(isrRemote); for (;;) { led1 = ! led1; wait(0.2); } }
daisenRemote.h@0:9edcf415fe92, 2015-04-21 (annotated)
- Committer:
- okini3939
- Date:
- Tue Apr 21 02:07:53 2015 +0000
- Revision:
- 0:9edcf415fe92
1st build
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okini3939 | 0:9edcf415fe92 | 1 | /* |
okini3939 | 0:9edcf415fe92 | 2 | * Daisen Remote library |
okini3939 | 0:9edcf415fe92 | 3 | * Copyright (c) 2015 Hiroshi Suga |
okini3939 | 0:9edcf415fe92 | 4 | * Released under the MIT License: http://mbed.org/license/mit |
okini3939 | 0:9edcf415fe92 | 5 | * |
okini3939 | 0:9edcf415fe92 | 6 | * 2.4GHz: http://www.daisendenshi.com/category_list.php?master_categories_id=102&categories_id=141&categories_name=2.4GHz%91%D1%96%B3%90%FC%83%8A%83%82%83R%83%93%91%97%90M%8A%ED |
okini3939 | 0:9edcf415fe92 | 7 | * Infrared: http://www.daisendenshi.com/category_list.php?master_categories_id=102&categories_id=106&categories_name=%90%D4%8AO%83%8A%83%82%83R%83%93%91%97%90M%8A%ED |
okini3939 | 0:9edcf415fe92 | 8 | */ |
okini3939 | 0:9edcf415fe92 | 9 | |
okini3939 | 0:9edcf415fe92 | 10 | #include "mbed.h" |
okini3939 | 0:9edcf415fe92 | 11 | #include "FunctionPointer.h" |
okini3939 | 0:9edcf415fe92 | 12 | |
okini3939 | 0:9edcf415fe92 | 13 | class daisenRemote { |
okini3939 | 0:9edcf415fe92 | 14 | public: |
okini3939 | 0:9edcf415fe92 | 15 | enum remoteType { |
okini3939 | 0:9edcf415fe92 | 16 | RF, // 2.4GHz |
okini3939 | 0:9edcf415fe92 | 17 | IR, // Infrared |
okini3939 | 0:9edcf415fe92 | 18 | }; |
okini3939 | 0:9edcf415fe92 | 19 | |
okini3939 | 0:9edcf415fe92 | 20 | daisenRemote (PinName rx, remoteType type = RF); |
okini3939 | 0:9edcf415fe92 | 21 | |
okini3939 | 0:9edcf415fe92 | 22 | int read (); |
okini3939 | 0:9edcf415fe92 | 23 | |
okini3939 | 0:9edcf415fe92 | 24 | void attach(void (*fptr)(void)) { |
okini3939 | 0:9edcf415fe92 | 25 | _func.attach(fptr); |
okini3939 | 0:9edcf415fe92 | 26 | } |
okini3939 | 0:9edcf415fe92 | 27 | template<typename T> |
okini3939 | 0:9edcf415fe92 | 28 | void attach(T *tptr, void (T::*mptr)(void)) { |
okini3939 | 0:9edcf415fe92 | 29 | _func.attach(tptr, mptr); |
okini3939 | 0:9edcf415fe92 | 30 | } |
okini3939 | 0:9edcf415fe92 | 31 | |
okini3939 | 0:9edcf415fe92 | 32 | private: |
okini3939 | 0:9edcf415fe92 | 33 | RawSerial _ir; |
okini3939 | 0:9edcf415fe92 | 34 | remoteType _type; |
okini3939 | 0:9edcf415fe92 | 35 | int _recv; |
okini3939 | 0:9edcf415fe92 | 36 | int _count; |
okini3939 | 0:9edcf415fe92 | 37 | char _buf[20]; |
okini3939 | 0:9edcf415fe92 | 38 | |
okini3939 | 0:9edcf415fe92 | 39 | FunctionPointer _func; |
okini3939 | 0:9edcf415fe92 | 40 | |
okini3939 | 0:9edcf415fe92 | 41 | void isrRemote (); |
okini3939 | 0:9edcf415fe92 | 42 | }; |