パリティ入りの独自規格赤外線通信ライブラリ。受送信がセットになっています
Dependents: ROBOX_Sample_IRcon
ROBOXformat.h@0:966615bf0d02, 2016-10-08 (annotated)
- Committer:
- natuga117
- Date:
- Sat Oct 08 23:21:10 2016 +0000
- Revision:
- 0:966615bf0d02
publish
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
natuga117 | 0:966615bf0d02 | 1 | #ifndef ROBOXFORMAT_H |
natuga117 | 0:966615bf0d02 | 2 | #define ROBOXFORMAT_H |
natuga117 | 0:966615bf0d02 | 3 | #include "mbed.h" |
natuga117 | 0:966615bf0d02 | 4 | #define RECIEVE_MODE 0 //0=精度重視1=確実さ重視 |
natuga117 | 0:966615bf0d02 | 5 | #define SIGNAL_T 562 |
natuga117 | 0:966615bf0d02 | 6 | #define LAST_PROGRESS 24 |
natuga117 | 0:966615bf0d02 | 7 | /*How to use |
natuga117 | 0:966615bf0d02 | 8 | 受信側の設定 |
natuga117 | 0:966615bf0d02 | 9 | ROBOXformat name(PinName irin, double delay); |
natuga117 | 0:966615bf0d02 | 10 | ピン定義と待ち受け時間設定を行います |
natuga117 | 0:966615bf0d02 | 11 | 待ち受け時間とは新しい信号が来てないと判断し受信コードを0にするまでの時間です。 |
natuga117 | 0:966615bf0d02 | 12 | name.send_code(PinName s,unsigned int data,bool global); |
natuga117 | 0:966615bf0d02 | 13 | データ送信を行います |
natuga117 | 0:966615bf0d02 | 14 | s:赤外線送信を行うピン番号 |
natuga117 | 0:966615bf0d02 | 15 | data:送るデータ(8bitまで) |
natuga117 | 0:966615bf0d02 | 16 | global:trueの場合グローバルアドレスで送信されます |
natuga117 | 0:966615bf0d02 | 17 | name.getData(); |
natuga117 | 0:966615bf0d02 | 18 | 受信データを取得します |
natuga117 | 0:966615bf0d02 | 19 | 戻り値に現在受信したデータが返ってきます |
natuga117 | 0:966615bf0d02 | 20 | name.takeData(); |
natuga117 | 0:966615bf0d02 | 21 | 受信データを取得します |
natuga117 | 0:966615bf0d02 | 22 | 一回取得すると受信データが空に成る点でgetDataと違います |
natuga117 | 0:966615bf0d02 | 23 | name.get_glData(); |
natuga117 | 0:966615bf0d02 | 24 | 受信グローバルデータを取得します |
natuga117 | 0:966615bf0d02 | 25 | 戻り値に現在受信したデータが返ってきます |
natuga117 | 0:966615bf0d02 | 26 | name.take_glData(); |
natuga117 | 0:966615bf0d02 | 27 | 受信グローバルデータを取得します |
natuga117 | 0:966615bf0d02 | 28 | 一回取得すると受信データが空に成る点でget_glDataと違います |
natuga117 | 0:966615bf0d02 | 29 | name.take_glData_With_address(int code[4]); |
natuga117 | 0:966615bf0d02 | 30 | 受信グローバルデータとその送信元を取得します |
natuga117 | 0:966615bf0d02 | 31 | 一回取得すると受信データが空に成る点でget_glDataと違います |
natuga117 | 0:966615bf0d02 | 32 | name.Ccode[4] |
natuga117 | 0:966615bf0d02 | 33 | 送信時に自分宛てかどうかを判別するカスタムコードを格納しています |
natuga117 | 0:966615bf0d02 | 34 | name.data |
natuga117 | 0:966615bf0d02 | 35 | 8bitの受信データを格納しています |
natuga117 | 0:966615bf0d02 | 36 | */ |
natuga117 | 0:966615bf0d02 | 37 | |
natuga117 | 0:966615bf0d02 | 38 | class ROBOXformat |
natuga117 | 0:966615bf0d02 | 39 | { |
natuga117 | 0:966615bf0d02 | 40 | public: |
natuga117 | 0:966615bf0d02 | 41 | ROBOXformat(PinName irin, double delay); |
natuga117 | 0:966615bf0d02 | 42 | ~ROBOXformat(); |
natuga117 | 0:966615bf0d02 | 43 | |
natuga117 | 0:966615bf0d02 | 44 | void send_code(PinName s,unsigned int data,bool global);//データ送信 |
natuga117 | 0:966615bf0d02 | 45 | unsigned int getData();//受信データ取得 |
natuga117 | 0:966615bf0d02 | 46 | unsigned int get_glData(); |
natuga117 | 0:966615bf0d02 | 47 | unsigned int takeData();//受信データ取得(取得後に受信データは破棄されます。一回だけ送られた信号を一回だけ取り出したいときに有効) |
natuga117 | 0:966615bf0d02 | 48 | unsigned int take_glData(); |
natuga117 | 0:966615bf0d02 | 49 | bool jammer;//ジャマー状態か否かを判別します |
natuga117 | 0:966615bf0d02 | 50 | int Ccode[4];//カスタムコードはここに入れてください |
natuga117 | 0:966615bf0d02 | 51 | unsigned int data,gl_data; |
natuga117 | 0:966615bf0d02 | 52 | void printData(void); |
natuga117 | 0:966615bf0d02 | 53 | void printglData(void); |
natuga117 | 0:966615bf0d02 | 54 | unsigned int take_glData_With_address(int code[4]); |
natuga117 | 0:966615bf0d02 | 55 | |
natuga117 | 0:966615bf0d02 | 56 | private: |
natuga117 | 0:966615bf0d02 | 57 | int gl_address[4]; |
natuga117 | 0:966615bf0d02 | 58 | void IR_timeout(void); |
natuga117 | 0:966615bf0d02 | 59 | void IR_ON(void); |
natuga117 | 0:966615bf0d02 | 60 | void IR_OFF(void); |
natuga117 | 0:966615bf0d02 | 61 | void IRinit(double delay); |
natuga117 | 0:966615bf0d02 | 62 | unsigned char encode_ECC(unsigned char data); |
natuga117 | 0:966615bf0d02 | 63 | unsigned char decode_ECC(unsigned char data, unsigned char ecc); |
natuga117 | 0:966615bf0d02 | 64 | void dataset(void); |
natuga117 | 0:966615bf0d02 | 65 | void ReadCcode(PinName c1,PinName c2,PinName c3,PinName c4); |
natuga117 | 0:966615bf0d02 | 66 | int code_check(void); |
natuga117 | 0:966615bf0d02 | 67 | InterruptIn* button; |
natuga117 | 0:966615bf0d02 | 68 | Timer t; |
natuga117 | 0:966615bf0d02 | 69 | Timeout IrTimeout; |
natuga117 | 0:966615bf0d02 | 70 | double no_signal_delay; |
natuga117 | 0:966615bf0d02 | 71 | bool signal_change_flag; |
natuga117 | 0:966615bf0d02 | 72 | bool signal_timeout_flag; |
natuga117 | 0:966615bf0d02 | 73 | bool grobal_signal; |
natuga117 | 0:966615bf0d02 | 74 | bool signal_ignore_flag; |
natuga117 | 0:966615bf0d02 | 75 | int s_timer[2]; |
natuga117 | 0:966615bf0d02 | 76 | int recieve_bit[LAST_PROGRESS]; |
natuga117 | 0:966615bf0d02 | 77 | uint8_t signal_progress; |
natuga117 | 0:966615bf0d02 | 78 | int count; |
natuga117 | 0:966615bf0d02 | 79 | }; |
natuga117 | 0:966615bf0d02 | 80 | #endif |
natuga117 | 0:966615bf0d02 | 81 |