#include "iodefine.h"
#ifndef _INT_SCI_RX220_H_
#define _INT_SCI_RX220_H_ 1

#define STX0 (0x02)
#define ETX0 (0x03)
#define STX1 '['
#define ETX1 ']'

#define TYPE_STX	1	//開始文字
#define TYPE_ETX	2	//終了文字
#define TYPE_STD	3	//通常文字
#define TYPE_BRK	4	//改行文字

#define ID_OPE		0x10	//操作情報用通信ID

#define DATA_NUM_OPE	0		//操作データ保管No.

#define	strto0x(s)		strtol(s,0,16)	//16進数表記文字列を数字に変換

//SCI1に対する設定
void init_SCI1(void);
void write_sci1(char*);
void write_sci1_sum(char*);
void send_data_sci1(int id,int dlc,short*data);
//SCI5に対する設定
void init_SCI5(void);
void write_sci5(char*);
void write_sci5_sum(char*);
void send_data_sci5(int id,int dlc,short*data);

//SCI1に関する割り込み関数
void SCI1_INT_TXI1(void);	//intprg.cへ登録が必要
void SCI1_INT_ERI1(void);	//intprg.cへ登録が必要
void SCI1_INT_RXI1(void);	//intprg.cへ登録が必要
//SCI5に関する割り込み関数
void SCI5_INT_TXI5(void);	//intprg.cへ登録が必要
void SCI5_INT_ERI5(void);	//intprg.cへ登録が必要
void SCI5_INT_RXI5(void);	//intprg.cへ登録が必要

//共通受信処理
int get_recive_f(int port);
void clr_recive_f(int port);
void get_recive_buf(int port,char* buf);

//共通の演算
short calc_sum(char*);
int check_sum(char *buf);
short str_to_num(char *buf,int start,int num);

//専用フォーマットに対する解析
short analysys_sci(short port);
short analysys_0x10(char *buf,int id,int dlc);
void recv_data_sci(int id,int dlc,short*data);
void recv_data_sci1(int id,int dlc,short*data);
void recv_data_sci5(int id,int dlc,short*data);

//受信データの処理
unsigned char get_recive_data(int data_num,int data_pos);
unsigned char get_recive_dlc(int data_num);
unsigned char get_recive_timeout(int data_num);
void init_recive_data(int data_num);
void init_recive_data_all(void);

//タイムアウト処理
void check_timeout(int data_num);
void check_timeout_all(void);

int check_timeout_ms(int ms);
//XBee api受信関連
void init_xbee_api(void);
void init_api_data(void);
int recive_api(char c,int timeout);
int check_api_receved(void);
unsigned char calc_sum_api(unsigned char* buf);
int check_sum_api(unsigned char* buf);
void analysys_api(unsigned char* buf);
unsigned short get_api_di(void);
unsigned short get_api_ad(int port);

#endif