パリティ入りの独自規格赤外線通信ライブラリ。受送信がセットになっています

Dependents:   ROBOX_Sample_IRcon

Committer:
natuga117
Date:
Sat Oct 08 23:21:10 2016 +0000
Revision:
0:966615bf0d02
publish

Who changed what in which revision?

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