123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- #include "PublicSDKMotion.h"
- #define PRESS_WINDOW_SIZE 10
- struct origin_pos_struct {
- int step_count;
- float original_pos_x;
- float original_pos_y;
- };
- enum DANCE_GAME_POINT {
- ZERO_POINT = 0,
- RIGHT_UP_POINT = 1,
- LEFT_UP_POINT = 2,
- RIGHT_DOWN_POINT = 3,
- LEFT_DOWN_POINT = 4,
- };
- class DanceGame : public PublicSDKMotion
- {
- public:
- DanceGame();
- void setData(deque<shoes_data_cell>& shoes_data_vector, int time_stamp, float pos_x, float pos_y, float pos_z, float heading, float pitch, float roll, int zupt, int rssi);
- void calGlobalPos(deque<shoes_data_cell>& shoes_data_vector, deque<shoes_data_cell>& step_data_vector,
- float* global_pos, int LEFT_OR_RIGHT);
- //void ProcessResult(int zupt, int& zupt_count, int& has_init, float heading,
- // float& rotate_heading, float* global_pos, deque<shoes_data_cell>& step_data_vector,
- // deque<globalPos_struct>& global_pos_vector, int LEFT_OR_RIGHT);
- virtual 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);
- virtual void getResult(int* dec);
- virtual float getGamePos(int left_or_right, int index);
- void setPolarAccUnzupt(int* max_acc, int* min_acc, int* acc, int zupt);
- bool unzuptValid(int* max_acc, int* min_acc);
- private:
- const float rotate_sin = sin(15.0 / 180 * PI);
- const float rotate_cos = cos(15.0 / 180 * PI);
- deque<shoes_data_cell> left_shoes_data_vector;
- deque<shoes_data_cell> right_shoes_data_vector;
- deque<globalPos_struct> right_global_pos_vector;
- deque<globalPos_struct> left_global_pos_vector;
- float left_step_heading;
- float right_step_heading;
- float left_global_pos[3];
- float right_global_pos[3];
- deque<shoes_data_cell> left_step_data_vector;
- deque<shoes_data_cell> right_step_data_vector;
- float left_step_pos[3];
- float right_step_pos[3];
- int jump_count;
- int down_count;
- int last_down;
- int last_jump;
- int down_wait_after_jump;
- int result[4];
- int last_left_zupt;
- int last_right_zupt;
- float left_heading;
- float right_heading;
- int left_foot_has_init;
- int right_foot_has_init;
- int left_zupt_count;
- int right_zupt_count;
- int right_cmd_status;
- int left_cmd_status;
- int last_right_cmd_status;
- int last_left_cmd_status;
- int right_cmd_cur_status;
- int left_cmd_cur_status;
- int rssi_buff[5];
- int max_acc_unzupt_left[3];
- int min_acc_unzupt_left[3];
- int max_acc_unzupt_right[3];
- int min_acc_unzupt_right[3];
- const int rssi_threshold = 32;
- };
|