

class Interaction {

public:

	Interaction();

	void Process(int time_stamp, int* right_pos, int* right_att, int* right_acc, int right_zupt, int right_front_press, int right_back_press,
		int* left_pos, int* left_att, int* left_acc, int left_zupt, int left_front_press, int left_back_press,
		int jump, int down, int rssi);
	
	int foot_on_floor(int _time, int& triggerring_time, int zupt, int& last_zupt, int rssi, float pitch, int left_or_right);

	int enter_key_listen(float* acc, float* acc_x_buff, int& station_count, float* pitch_buff, float pitch, int& angle_has_reset);

	int get_interative_cmd();

	void setPolarAccUnzupt(int* max_acc, int* min_acc, int* acc, int zupt);

	bool unzuptValid(int* max_acc, int* min_acc);

private :
	int left_Triggering_time ;
	int right_Triggering_time ;

	int last_left_zupt;
	int last_right_zupt;

	float left_acc_x_buff[10];
	float right_acc_x_buff[10];

	float left_pitch_buff[10];
	float right_pitch_buff[10];

	int left_station_count ;
	int right_station_count ;

	int left_angle_has_reset ;
	int right_angle_has_reset ;

	int max_acc_unzupt_left[3];
	int min_acc_unzupt_left[3];

	int max_acc_unzupt_right[3];
	int min_acc_unzupt_right[3];

	int cmd;

};