IRC Helicopter "HonyBee" Propo decode test program

Dependencies:   RemoteIR mbed

これは、赤外線コントロールヘリコプター"HonyBee"のPropoからの送信データを解析して、PCに表示させるテストプログラムです。 詳しくは、 http://suupen-make.blogspot.jp/2013/06/irc-helicopter-honybeembedtest-program.html を参照してください。

Committer:
suupen
Date:
Sun Jun 23 07:28:06 2013 +0000
Revision:
0:f9e49220c97a
IRC Helicopter "HonyBee" Propo decode test program

Who changed what in which revision?

UserRevisionLine numberNew contents of line
suupen 0:f9e49220c97a 1 /**
suupen 0:f9e49220c97a 2 * IR transmitter (Version 0.0.4)
suupen 0:f9e49220c97a 3 *
suupen 0:f9e49220c97a 4 * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
suupen 0:f9e49220c97a 5 * http://shinta.main.jp/
suupen 0:f9e49220c97a 6 */
suupen 0:f9e49220c97a 7
suupen 0:f9e49220c97a 8 #ifndef _TRANSMITTER_IR_H_
suupen 0:f9e49220c97a 9 #define _TRANSMITTER_IR_H_
suupen 0:f9e49220c97a 10
suupen 0:f9e49220c97a 11 #include <mbed.h>
suupen 0:f9e49220c97a 12
suupen 0:f9e49220c97a 13 #include "RemoteIR.h"
suupen 0:f9e49220c97a 14
suupen 0:f9e49220c97a 15 /**
suupen 0:f9e49220c97a 16 * IR transmitter class.
suupen 0:f9e49220c97a 17 */
suupen 0:f9e49220c97a 18 class TransmitterIR {
suupen 0:f9e49220c97a 19 public:
suupen 0:f9e49220c97a 20
suupen 0:f9e49220c97a 21 /**
suupen 0:f9e49220c97a 22 * Constructor.
suupen 0:f9e49220c97a 23 *
suupen 0:f9e49220c97a 24 * @param txpin Pin for transmit IR signal.
suupen 0:f9e49220c97a 25 */
suupen 0:f9e49220c97a 26 explicit TransmitterIR(PinName txpin);
suupen 0:f9e49220c97a 27
suupen 0:f9e49220c97a 28 /**
suupen 0:f9e49220c97a 29 * Destructor.
suupen 0:f9e49220c97a 30 */
suupen 0:f9e49220c97a 31 ~TransmitterIR();
suupen 0:f9e49220c97a 32
suupen 0:f9e49220c97a 33 typedef enum {
suupen 0:f9e49220c97a 34 Idle,
suupen 0:f9e49220c97a 35 Leader,
suupen 0:f9e49220c97a 36 Data,
suupen 0:f9e49220c97a 37 Trailer
suupen 0:f9e49220c97a 38 } State;
suupen 0:f9e49220c97a 39
suupen 0:f9e49220c97a 40 /**
suupen 0:f9e49220c97a 41 * Get state.
suupen 0:f9e49220c97a 42 *
suupen 0:f9e49220c97a 43 * @return Current state.
suupen 0:f9e49220c97a 44 */
suupen 0:f9e49220c97a 45 State getState(void);
suupen 0:f9e49220c97a 46
suupen 0:f9e49220c97a 47 /**
suupen 0:f9e49220c97a 48 * Set data.
suupen 0:f9e49220c97a 49 *
suupen 0:f9e49220c97a 50 * @param format Format.
suupen 0:f9e49220c97a 51 * @param buf Buffer of a data.
suupen 0:f9e49220c97a 52 * @param bitlength Bit length of the data.
suupen 0:f9e49220c97a 53 *
suupen 0:f9e49220c97a 54 * @return Data bit length.
suupen 0:f9e49220c97a 55 */
suupen 0:f9e49220c97a 56 int setData(RemoteIR::Format format, uint8_t *buf, int bitlength);
suupen 0:f9e49220c97a 57
suupen 0:f9e49220c97a 58 private:
suupen 0:f9e49220c97a 59
suupen 0:f9e49220c97a 60 typedef struct {
suupen 0:f9e49220c97a 61 State state;
suupen 0:f9e49220c97a 62 int bitcount;
suupen 0:f9e49220c97a 63 int leader;
suupen 0:f9e49220c97a 64 int data;
suupen 0:f9e49220c97a 65 int trailer;
suupen 0:f9e49220c97a 66 } work_t;
suupen 0:f9e49220c97a 67
suupen 0:f9e49220c97a 68 typedef struct {
suupen 0:f9e49220c97a 69 RemoteIR::Format format;
suupen 0:f9e49220c97a 70 int bitlength;
suupen 0:f9e49220c97a 71 uint8_t buffer[64];
suupen 0:f9e49220c97a 72 } data_t;
suupen 0:f9e49220c97a 73
suupen 0:f9e49220c97a 74 PwmOut tx;
suupen 0:f9e49220c97a 75 Ticker ticker;
suupen 0:f9e49220c97a 76 data_t data;
suupen 0:f9e49220c97a 77 work_t work;
suupen 0:f9e49220c97a 78
suupen 0:f9e49220c97a 79 void tick();
suupen 0:f9e49220c97a 80
suupen 0:f9e49220c97a 81 };
suupen 0:f9e49220c97a 82
suupen 0:f9e49220c97a 83 #endif