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);
    }
}
Committer:
okini3939
Date:
Tue Apr 21 02:07:53 2015 +0000
Revision:
0:9edcf415fe92
1st build

Who changed what in which revision?

UserRevisionLine numberNew 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 };