Final Project로 실제 점검에 사용된 코드

Dependencies:   mbed Adafruit_GFX

Committer:
21400688
Date:
Sat Jun 15 20:52:15 2019 +0000
Revision:
0:22391cd705e2
vb

Who changed what in which revision?

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