This commit is contained in:
lmx
2025-11-21 15:17:10 +08:00
parent baa5979ee1
commit 591e7632d2
22 changed files with 436 additions and 14 deletions

View File

@ -572,7 +572,7 @@ void skiing_tracker_update(skiing_tracker_t *tracker, float *acc_g, float *gyr_d
* @param angle_data 传入的欧若拉角数据
* @return 速度cm/s
*/
int sensor_processing_task(signed short* acc_data_buf, signed short* gyr_data_buf, float* angle_data, float* quaternion) {
uint16_t sensor_processing_task(signed short* acc_data_buf, signed short* gyr_data_buf, float* angle_data, float* quaternion) {
static int initialized = 0;
static float acc_data_g[3];
@ -630,6 +630,6 @@ int sensor_processing_task(signed short* acc_data_buf, signed short* gyr_data_bu
skiing_tracker_update(&my_skiing_tracker, acc_data_g, gyr_data_dps, angle_data, delta_time);
return (int)(my_skiing_tracker.speed * 100);
return (uint16_t)(my_skiing_tracker.speed * 100);
}

View File

@ -84,5 +84,5 @@ typedef struct{
*/
void skiing_tracker_init(skiing_tracker_t *tracker);
int sensor_processing_task(signed short* acc_data_buf, signed short* gyr_data_buf, float* angle_data, float* quaternion);
uint16_t sensor_processing_task(signed short* acc_data_buf, signed short* gyr_data_buf, float* angle_data, float* quaternion);
#endif // SKIING_TRACKER_H

View File

@ -61,7 +61,7 @@ typedef struct {
// -- 磁力计 --
uint8_t mmc5603nj_buffer[9];
// -- 速度 --
int speed_cms;
uint16_t speed_cms;
// -- 气压计 --
//...
} BLE_send_data_t;
@ -70,7 +70,7 @@ static int count = 0;
// --- 环形缓冲区 ---
static circle_buffer_t BLE_send_buff; // 环形缓冲区管理结构体
BLE_send_data_t BLE_send_data[SENSOR_DATA_BUFFER_SIZE];
//END -- 变量定义
//////////////////////////////////////////////////////////////////////////////////////////////////
@ -124,7 +124,7 @@ void start_collect_fuc(void){
static int initialized = 0;
static int calibration_done = 0;
char status = 0;
BLE_send_data_t BLE_send_data;
BLE_send_data_t BLE_send_data_tmp;
uint8_t mmc5603nj_buffer[9];
signed short acc_data_buf[3];
signed short gyr_data_buf[3];
@ -140,14 +140,32 @@ void start_collect_fuc(void){
memcpy(acc_data_buf, &combined_raw_data[0], 3 * sizeof(signed short));
memcpy(gyr_data_buf, &combined_raw_data[3], 3 * sizeof(signed short));
int speed = sensor_processing_task(acc_data_buf,gyr_data_buf,angle, quaternion_output);
uint16_t speed = sensor_processing_task(acc_data_buf,gyr_data_buf,angle, quaternion_output);
// -- 数据包装进结构体 --
memcpy(BLE_send_data_tmp.acc_data, acc_data_buf, 3 * sizeof(signed short));
memcpy(BLE_send_data_tmp.gyr_data, gyr_data_buf, 3 * sizeof(signed short));
memcpy(BLE_send_data_tmp.mmc5603nj_buffer, mmc5603nj_buffer, 9);
BLE_send_data_tmp.speed_cms = speed;
// -- 放进缓冲区 --
if(circle_buffer_is_full(&BLE_send_buff) == 0){
circle_buffer_write(&BLE_send_buff, &BLE_send_data_tmp);
}
}
/**
* @brief ble数据发送
*
*/
void BLE_send_fuc(void){
BLE_send_data_t BLE_send_data_tmp;
if(circle_buffer_is_empty(&BLE_send_buff) == 0){
circle_buffer_read(&BLE_send_buff, &BLE_send_data_tmp);
}
memcpy(BLE_send_data.acc_data, acc_data_buf, 3 * sizeof(signed short));
memcpy(BLE_send_data.gyr_data, gyr_data_buf, 3 * sizeof(signed short));
memcpy(BLE_send_data.mmc5603nj_buffer, mmc5603nj_buffer, 9);
BLE_send_data.speed_cms = speed;
}
@ -171,6 +189,6 @@ void xtell_task_create(void){
xlog("xtell_task_create\n");
circle_buffer_init(&BLE_send_buff, sensor_read_buffer, SENSOR_DATA_BUFFER_SIZE, sizeof(BLE_send_data_t));
circle_buffer_init(&BLE_send_buff, BLE_send_data, SENSOR_DATA_BUFFER_SIZE, sizeof(BLE_send_data_t));
}

View File

@ -93,6 +93,7 @@ u8 MMC5603nj_init = 0; //地磁是否初始化
// -- 线程id --
u16 SC7U22_calibration_id;
u16 start_collect_fuc_id;
u16 BLE_send_fuc_id;
//
///////////////////////////////////////////////////////////////////////////////////////////////////
extern int bt_hci_event_handler(struct bt_event *bt);