V2.0.3
This commit is contained in:
396
src/sensor.cpp
396
src/sensor.cpp
@ -1,3 +1,256 @@
|
||||
// #include "Sensor.h"
|
||||
// #include "driver/uart.h"
|
||||
|
||||
// sensor_data sensor_info;
|
||||
|
||||
// EventGroupHandle_t sensor_event_group;
|
||||
// uint16_t receive_buff1[516];
|
||||
// uint16_t receive_buff2[516];
|
||||
// volatile uint32_t count = 0;
|
||||
// uint32_t pos = 0;
|
||||
// volatile uint64_t frame_count = 0;
|
||||
// volatile bool read_flag = false;
|
||||
// #define trigger_pin GPIO_NUM_8
|
||||
// #define rst_pin GPIO_NUM_38
|
||||
// void IRAM_ATTR handleFallingEdge()
|
||||
// {
|
||||
// // read_flag = true;
|
||||
// // count = 0;
|
||||
// // if(count == 3) digitalWrite(rst_pin, 0);
|
||||
// if(digitalRead(trigger_pin) == 0) read_flag = true;
|
||||
// else read_flag = false;
|
||||
// }
|
||||
|
||||
// void sensor_init()
|
||||
// {
|
||||
// sensor_info.sn = 0;
|
||||
// if (SPIFFS.begin(true))
|
||||
// {
|
||||
// // Serial.println("SPIFFS mount ok!");
|
||||
// sensor_data_read(&sensor_info);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // Serial.println("SPIFFS mount failed!");
|
||||
// }
|
||||
|
||||
// if(sensor_info.flag != 1)
|
||||
// {
|
||||
// sensor_info.flag = 0;
|
||||
// sensor_info.a1 = 2.73e-8;
|
||||
// sensor_info.a2 = -0.000025;
|
||||
// sensor_info.a3 = -1.14675;
|
||||
// sensor_info.a4 = 1082.6422;
|
||||
// // sensor_info.sn = 1;
|
||||
// }
|
||||
|
||||
// pinMode(Shutter1_pin, OUTPUT);
|
||||
// pinMode(Shutter2_pin, OUTPUT);
|
||||
// pinMode(rst_pin, OUTPUT);
|
||||
|
||||
|
||||
// Shutter_Open(Shutter_1);
|
||||
// // digitalWrite(rst_pin, 1);
|
||||
// // vTaskDelay(36);
|
||||
// digitalWrite(rst_pin, 0);
|
||||
// vTaskDelay(36);
|
||||
|
||||
// Serial2.setTimeout(1);
|
||||
// Serial2.setRxBufferSize(1032);
|
||||
// Serial2.setTxBufferSize(256);
|
||||
// Serial2.begin(921600,SERIAL_8N1,rx,tx);
|
||||
|
||||
// Send_Shutter_Time(12);
|
||||
|
||||
// // Serial2.end();
|
||||
|
||||
// sensor_event_group = xEventGroupCreate();
|
||||
|
||||
// pinMode(trigger_pin, INPUT);
|
||||
// attachInterrupt(digitalPinToInterrupt(trigger_pin), handleFallingEdge, CHANGE);
|
||||
|
||||
// xTaskCreatePinnedToCore(sensor_read_task, "sensor_read_task", 1024*10, NULL, 30, NULL, 0);
|
||||
|
||||
// vTaskDelay(2000);
|
||||
// digitalWrite(rst_pin, 1);
|
||||
// shutter_stop();
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// void sensor_rest()
|
||||
// {
|
||||
// digitalWrite(rst_pin, 0);
|
||||
// // for(int i = 0; i < 10000; i++);
|
||||
// vTaskDelay(1);
|
||||
// // delayMicroseconds(50);
|
||||
// digitalWrite(rst_pin, 1);
|
||||
// }
|
||||
|
||||
// void sensor_write(uint8_t *data,uint32_t len)
|
||||
// {
|
||||
// Serial2.write(data,len);
|
||||
// }
|
||||
|
||||
// void Send_Shutter_Time(uint32_t shutter_time) {
|
||||
// uint32_t tt = shutter_time*1000;
|
||||
|
||||
// uint8_t t_buff[4];
|
||||
// t_buff[0] = *((uint8_t *)&tt+3);
|
||||
// t_buff[1] = *((uint8_t *)&tt+2);
|
||||
// t_buff[2] = *((uint8_t *)&tt+1);
|
||||
// t_buff[3] = *((uint8_t *)&tt);
|
||||
// sensor_write(t_buff,4);
|
||||
// }
|
||||
|
||||
|
||||
// void sensor_read_task(void *pvParameters)
|
||||
// {
|
||||
// uint8_t *p = new uint8_t[1040];
|
||||
// int indexnow=0;
|
||||
// while (1)
|
||||
// {
|
||||
// if(read_flag == true)
|
||||
// {
|
||||
// int lent=0;
|
||||
// u_char c=-1;
|
||||
// while (1)
|
||||
// {
|
||||
|
||||
// int temp = uart_read_bytes(2,p,1032,10);
|
||||
|
||||
// if(temp == 1032)
|
||||
// {
|
||||
// // p[lent] = c;
|
||||
// // lent++;
|
||||
// // if(lent >= 1032)
|
||||
// // {
|
||||
// lent = 1032;
|
||||
// break;
|
||||
// // }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// read_flag = false;
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
// memcpy(receive_buff2,p,lent);
|
||||
|
||||
// frame_count++;
|
||||
// read_flag = false;
|
||||
// continue;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// if(Serial2.available())
|
||||
// {
|
||||
// Serial2.readBytes((uint8_t *)p, Serial2.available());
|
||||
// }
|
||||
// vTaskDelay(1);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// void get_sensor_data(uint16_t *data_buff)
|
||||
// {
|
||||
// // sensor_rest();
|
||||
// // xEventGroupSetBits(sensor_event_group, START_READ_BIT);
|
||||
// uint32_t target = frame_count + 1;
|
||||
// while(frame_count < target)
|
||||
// {
|
||||
// vTaskDelay(1);
|
||||
// }
|
||||
// if(target == frame_count)
|
||||
// {
|
||||
// for (int i = 0; i < 516; i++)
|
||||
// {
|
||||
// data_buff[i] = receive_buff2[i];
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// // void get_sensor_data(uint16_t *data_buff,int timewaitinms)
|
||||
// // {
|
||||
// // sensor_rest();
|
||||
// // // xEventGroupSetBits(sensor_event_group, START_READ_BIT);
|
||||
// // vTaskDelay(timewaitinms);
|
||||
// // uint32_t target = frame_count + 1;
|
||||
// // while(frame_count < target)
|
||||
// // {
|
||||
// // vTaskDelay(1);
|
||||
// // }
|
||||
// // if(target == frame_count)
|
||||
// // {
|
||||
// // for (int i = 0; i < 516; i++)
|
||||
// // {
|
||||
// // data_buff[i] = receive_buff2[i];
|
||||
// // }
|
||||
// // }
|
||||
// // }
|
||||
// void Shutter_Open(uint8_t shutter)
|
||||
// {
|
||||
// digitalWrite(Shutter2_pin, 1);
|
||||
// digitalWrite(Shutter1_pin, 0);
|
||||
// // if (shutter == Shutter_1)
|
||||
// // {
|
||||
// // digitalWrite( Shutter2_pin, 1);
|
||||
// // digitalWrite(Shutter1_pin, 0);
|
||||
|
||||
// // }
|
||||
// // else if(shutter == Shutter_2)
|
||||
// // {
|
||||
// // digitalWrite(Shutter1_pin, 1);
|
||||
// // }
|
||||
// }
|
||||
|
||||
// void shutter_stop()
|
||||
// {
|
||||
// digitalWrite(Shutter1_pin, 0);
|
||||
// digitalWrite(Shutter2_pin, 0);
|
||||
// }
|
||||
|
||||
// void Shutter_Close(uint8_t shutter)
|
||||
// {
|
||||
// digitalWrite(Shutter2_pin, 0);
|
||||
// digitalWrite(Shutter1_pin, 1);
|
||||
// // if (shutter == Shutter_1)
|
||||
// // {
|
||||
// // digitalWrite( Shutter1_pin, 1);
|
||||
// // digitalWrite( Shutter2_pin, 0);
|
||||
// // }
|
||||
// // else if (shutter == Shutter_2)
|
||||
// // {
|
||||
// // digitalWrite(Shutter1_pin, 0);
|
||||
// // }
|
||||
// }
|
||||
|
||||
|
||||
// void sensor_data_save(sensor_data *sensor_data_struct)
|
||||
// {
|
||||
// File file;
|
||||
// file = SPIFFS.open("/system.bin", FILE_WRITE);
|
||||
// file.write((uint8_t *)sensor_data_struct,sizeof(sensor_data));
|
||||
// file.flush();
|
||||
// file.close();
|
||||
// }
|
||||
|
||||
// void sensor_data_read(sensor_data *sensor_data_struct)
|
||||
// {
|
||||
// File file;
|
||||
// file = SPIFFS.open("/system.bin", FILE_READ);
|
||||
// file.read((uint8_t *)sensor_data_struct,sizeof(sensor_data));
|
||||
// file.flush();
|
||||
// file.close();
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "Sensor.h"
|
||||
#include "driver/uart.h"
|
||||
|
||||
@ -14,13 +267,25 @@ volatile bool read_flag = false;
|
||||
#define rst_pin GPIO_NUM_38
|
||||
void IRAM_ATTR handleFallingEdge()
|
||||
{
|
||||
// read_flag = true;
|
||||
// count = 0;
|
||||
// if(count == 3) digitalWrite(rst_pin, 0);
|
||||
if(digitalRead(trigger_pin) == 0) read_flag = true;
|
||||
else read_flag = false;
|
||||
}
|
||||
|
||||
|
||||
void uart2_init(void)
|
||||
{
|
||||
const uart_config_t uart_config = {
|
||||
.baud_rate = 921600,
|
||||
.data_bits = UART_DATA_8_BITS,
|
||||
.parity = UART_PARITY_DISABLE,
|
||||
.stop_bits = UART_STOP_BITS_1,
|
||||
.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
|
||||
};
|
||||
// We won't use a buffer for sending data.
|
||||
uart_driver_install(UART_NUM_2, 1032, 1024 * 2, 0, NULL, 0);
|
||||
uart_param_config(UART_NUM_2, &uart_config);
|
||||
uart_set_pin(UART_NUM_2, tx, rx, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);
|
||||
}
|
||||
void sensor_init()
|
||||
{
|
||||
sensor_info.sn = 0;
|
||||
@ -55,14 +320,14 @@ void sensor_init()
|
||||
digitalWrite(rst_pin, 0);
|
||||
vTaskDelay(36);
|
||||
|
||||
Serial2.setTimeout(1);
|
||||
Serial2.setRxBufferSize(1032);
|
||||
Serial2.setTxBufferSize(256);
|
||||
Serial2.begin(921600,SERIAL_8N1,rx,tx);
|
||||
// Serial2.setTimeout(1);
|
||||
// Serial2.setRxBufferSize(1032);
|
||||
// Serial2.setTxBufferSize(256);
|
||||
// Serial2.begin(921600,SERIAL_8N1,rx,tx);
|
||||
|
||||
|
||||
|
||||
Send_Shutter_Time(12);
|
||||
|
||||
// Serial2.end();
|
||||
|
||||
sensor_event_group = xEventGroupCreate();
|
||||
|
||||
@ -71,9 +336,9 @@ void sensor_init()
|
||||
|
||||
xTaskCreatePinnedToCore(sensor_read_task, "sensor_read_task", 1024*10, NULL, 30, NULL, 0);
|
||||
|
||||
vTaskDelay(2000);
|
||||
digitalWrite(rst_pin, 1);
|
||||
shutter_stop();
|
||||
// vTaskDelay(100);
|
||||
// digitalWrite(rst_pin, 1);
|
||||
// shutter_stop();
|
||||
}
|
||||
|
||||
|
||||
@ -89,7 +354,8 @@ void sensor_rest()
|
||||
|
||||
void sensor_write(uint8_t *data,uint32_t len)
|
||||
{
|
||||
Serial2.write(data,len);
|
||||
// Serial2.write(data,len);
|
||||
uart_write_bytes(UART_NUM_2, data, len);
|
||||
}
|
||||
|
||||
void Send_Shutter_Time(uint32_t shutter_time) {
|
||||
@ -106,56 +372,55 @@ void Send_Shutter_Time(uint32_t shutter_time) {
|
||||
|
||||
void sensor_read_task(void *pvParameters)
|
||||
{
|
||||
uart2_init();
|
||||
vTaskDelay(100);
|
||||
uart_flush_input(UART_NUM_2);
|
||||
shutter_stop();
|
||||
Send_Shutter_Time(12);
|
||||
vTaskDelay(10);
|
||||
digitalWrite(rst_pin, 1);
|
||||
|
||||
|
||||
|
||||
uint8_t *p = new uint8_t[1040];
|
||||
int indexnow=0;
|
||||
while (1)
|
||||
{
|
||||
if(read_flag == true)
|
||||
uint32_t length = 0;
|
||||
uart_get_buffered_data_len(UART_NUM_2, (size_t*)&length);
|
||||
if(length > 0)
|
||||
{
|
||||
int lent=0;
|
||||
u_char c=-1;
|
||||
while (1)
|
||||
int temp = uart_read_bytes(2,p,1032,10);
|
||||
|
||||
if(temp == 1032 && p[0] == 0xff && p[1] == 0xff)
|
||||
{
|
||||
|
||||
int temp = uart_read_bytes(2,p,1032,10);
|
||||
|
||||
if(temp == 1032)
|
||||
{
|
||||
// p[lent] = c;
|
||||
// lent++;
|
||||
// if(lent >= 1032)
|
||||
// {
|
||||
lent = 1032;
|
||||
break;
|
||||
// }
|
||||
}
|
||||
else
|
||||
{
|
||||
read_flag = false;
|
||||
continue;
|
||||
}
|
||||
lent = 1032;
|
||||
memcpy(receive_buff2,p,lent);
|
||||
frame_count++;
|
||||
read_flag = false;
|
||||
}
|
||||
memcpy(receive_buff2,p,lent);
|
||||
|
||||
frame_count++;
|
||||
read_flag = false;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(Serial2.available())
|
||||
else
|
||||
{
|
||||
Serial2.readBytes((uint8_t *)p, Serial2.available());
|
||||
// read_flag = false;
|
||||
digitalWrite(rst_pin, 0);
|
||||
vTaskDelay(10);
|
||||
uart_flush_input(UART_NUM_2);
|
||||
vTaskDelay(10);
|
||||
digitalWrite(rst_pin, 1);
|
||||
|
||||
// continue;
|
||||
}
|
||||
vTaskDelay(1);
|
||||
}
|
||||
|
||||
vTaskDelay(1);
|
||||
}
|
||||
}
|
||||
|
||||
void get_sensor_data(uint16_t *data_buff)
|
||||
{
|
||||
// sensor_rest();
|
||||
// xEventGroupSetBits(sensor_event_group, START_READ_BIT);
|
||||
|
||||
uint32_t target = frame_count + 1;
|
||||
while(frame_count < target)
|
||||
{
|
||||
@ -170,38 +435,12 @@ void get_sensor_data(uint16_t *data_buff)
|
||||
}
|
||||
}
|
||||
|
||||
// void get_sensor_data(uint16_t *data_buff,int timewaitinms)
|
||||
// {
|
||||
// sensor_rest();
|
||||
// // xEventGroupSetBits(sensor_event_group, START_READ_BIT);
|
||||
// vTaskDelay(timewaitinms);
|
||||
// uint32_t target = frame_count + 1;
|
||||
// while(frame_count < target)
|
||||
// {
|
||||
// vTaskDelay(1);
|
||||
// }
|
||||
// if(target == frame_count)
|
||||
// {
|
||||
// for (int i = 0; i < 516; i++)
|
||||
// {
|
||||
// data_buff[i] = receive_buff2[i];
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
void Shutter_Open(uint8_t shutter)
|
||||
{
|
||||
digitalWrite(Shutter2_pin, 1);
|
||||
digitalWrite(Shutter1_pin, 0);
|
||||
// if (shutter == Shutter_1)
|
||||
// {
|
||||
// digitalWrite( Shutter2_pin, 1);
|
||||
// digitalWrite(Shutter1_pin, 0);
|
||||
|
||||
// }
|
||||
// else if(shutter == Shutter_2)
|
||||
// {
|
||||
// digitalWrite(Shutter1_pin, 1);
|
||||
// }
|
||||
}
|
||||
|
||||
void shutter_stop()
|
||||
@ -214,15 +453,7 @@ void Shutter_Close(uint8_t shutter)
|
||||
{
|
||||
digitalWrite(Shutter2_pin, 0);
|
||||
digitalWrite(Shutter1_pin, 1);
|
||||
// if (shutter == Shutter_1)
|
||||
// {
|
||||
// digitalWrite( Shutter1_pin, 1);
|
||||
// digitalWrite( Shutter2_pin, 0);
|
||||
// }
|
||||
// else if (shutter == Shutter_2)
|
||||
// {
|
||||
// digitalWrite(Shutter1_pin, 0);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -246,3 +477,4 @@ void sensor_data_read(sensor_data *sensor_data_struct)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user