This commit is contained in:
ZhuRui 2024-01-17 10:09:31 +08:00
parent 905f936721
commit c53933c3c6
2 changed files with 40 additions and 6 deletions

View File

@ -27,7 +27,7 @@
#define DEPTH_RESET_ADDR 510 #define DEPTH_RESET_ADDR 510
#define REBOOT_REW_ADDR 511 #define REBOOT_REW_ADDR 511
#define TIME 264
typedef struct typedef struct
{ {
uint16_t magic; uint16_t magic;

View File

@ -28,7 +28,7 @@
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#include "esp_timer.h"
static const char *TAG = "depth"; static const char *TAG = "depth";
@ -118,6 +118,7 @@ typedef struct{
uint8_t TAG; uint8_t TAG;
int16_t flow[2]; int16_t flow[2];
uint32_t total_flow[2]; uint32_t total_flow[2];
uint16_t time;
}send_to_bt_t2; }send_to_bt_t2;
#pragma pack() #pragma pack()
@ -128,8 +129,9 @@ typedef struct
int16_t depth; // 14 int16_t depth; // 14
uint16_t sample_count; // 15 uint16_t sample_count; // 15
uint16_t depth_flow[2]; // 16~17 uint16_t depth_flow[2]; // 16~17
uint32_t last_total_flow[2]; // 18~21 uint32_t last_total_flow[2]; //
int16_t depth_offset; // 22 int16_t depth_offset; // 22
uint16_t one_pile_work_time;//23 系统工作时间
// uint32_t update_time; // uint32_t update_time;
// int16_t tilt_x; // int16_t tilt_x;
// int16_t tilt_y; // int16_t tilt_y;
@ -336,6 +338,11 @@ void send_data_to_bt(void){
send_to_bt2.flow[1] = pflow[1].flow; send_to_bt2.flow[1] = pflow[1].flow;
send_to_bt2.total_flow[0] = pflow[0].total_flow; send_to_bt2.total_flow[0] = pflow[0].total_flow;
send_to_bt2.total_flow[1] = pflow[1].total_flow; send_to_bt2.total_flow[1] = pflow[1].total_flow;
/*计算开启后持续时间并传给EC600U*/
uint16_t time = 0;
gWordVar[TIME] = time;
send_to_bt2.time = time;
#endif #endif
ESP_LOGI(TAG, "flow 1 :%d\n",send_to_bt2.flow[0]); ESP_LOGI(TAG, "flow 1 :%d\n",send_to_bt2.flow[0]);
ESP_LOGI(TAG, "flow 2 :%d\n",send_to_bt2.flow[1]); ESP_LOGI(TAG, "flow 2 :%d\n",send_to_bt2.flow[1]);
@ -371,7 +378,7 @@ void depth_task(void *arg)
int time_diff = 0; int time_diff = 0;
int speed_timeout = 0; int speed_timeout = 0;
int last_speed_enc_value = 0; // 上次速度计算的编码器值 int last_speed_enc_value = 0; // 上次速度计算的编码器值
int speed_enc_update_time = 0; // 上次速度计算的编码器值 int speed_enc_update_time = 0;
int speed_calc_count = 0; int speed_calc_count = 0;
int enc_value = 0; int enc_value = 0;
//int count = 0; //int count = 0;
@ -383,9 +390,14 @@ void depth_task(void *arg)
//send_to_bt1.pile_id = ++last_pile_id; //send_to_bt1.pile_id = ++last_pile_id;
gWordVar[LAST_PILE_ID_ADDR] = last_pile_id; gWordVar[LAST_PILE_ID_ADDR] = last_pile_id;
/*获取当前时间*/
uint16_t last_work_time = 0;
uint16_t current_work_time = 0;
uint8_t is_work = 0;
while (1) while (1)
{ {
if (_enc1_update_time != enc1_update_time) if (_enc1_update_time != enc1_update_time)
{ {
ESP_LOGI(TAG, "_enc1_update_time != enc1_update_time\n"); ESP_LOGI(TAG, "_enc1_update_time != enc1_update_time\n");
@ -445,8 +457,26 @@ void depth_task(void *arg)
} }
} }
} }
if (depth_data->up_down > STOP) if (depth_data->up_down > STOP)
{ {
is_work ++;
if(is_work == 1){
depth_data->one_pile_work_time = 0;
last_work_time = (uint16_t)(esp_timer_get_time()/1000000);
}
if(is_work > 1){
current_work_time = (uint16_t)(esp_timer_get_time()/1000000);
depth_data->one_pile_work_time = current_work_time - last_work_time;
if(depth_data->one_pile_work_time < 0){
depth_data->one_pile_work_time = 0;
}
last_work_time = current_work_time;
}
depth_data->one_pile_work_time = current_work_time - last_work_time;
last_work_time = current_work_time;
ESP_LOGI(TAG, "depth_data->up_down > STOP\n"); ESP_LOGI(TAG, "depth_data->up_down > STOP\n");
if (enc_value > last_enc_value) if (enc_value > last_enc_value)
{ // 下钻,深度增加 { // 下钻,深度增加
@ -545,6 +575,10 @@ void depth_task(void *arg)
} }
} }
} }
else{
is_work = 0;
depth_data->one_pile_work_time = 0;
}
prev_depth = depth_data->depth; prev_depth = depth_data->depth;
prev_update_time = enc_update_time; prev_update_time = enc_update_time;
last_enc_value = enc_value; last_enc_value = enc_value;