📄 endpoint.c.svn-base
字号:
****************************************************************************/
void read_raw_data(void){
unsigned short data_num;
unsigned long r_time;
unsigned short e_time;
unsigned short step;
HReadS(DSP_CINT_TIME, &e_time);
HReadS(DSP_DATA_NUM, &data_num);
r_time = data_num-1;
if(r_time != 0){
if(info_A.step_starting != 1){
step = info_A.cur_step;
} else {
step = info_A.cur_step-1;
info_A.step_info[info_A.cur_step].start_num = data_num+1;
info_A.step_starting = 0;
}
if(p_rdata_A.erd_writer->counter !=10){
HReadC(DSP_DATA1, (unsigned short*)p_rdata_A.erd_writer->rd_frame->raw_data.data[p_rdata_A.erd_writer->counter].r_data, MAX_RAW_DATA_LENGTH);
p_rdata_A.erd_writer->rd_frame->raw_data.data[p_rdata_A.erd_writer->counter].relative_time = r_time;
p_rdata_A.erd_writer->rd_frame->raw_data.data[p_rdata_A.erd_writer->counter].step_num = step;
p_rdata_A.erd_writer->rd_frame->raw_data.data[p_rdata_A.erd_writer->counter].step_time = info_A.start_time;
p_rdata_A.erd_writer->rd_frame->raw_data.data[p_rdata_A.erd_writer->counter].s_parameter = info_A.step_info[step].step_parameter;
p_rdata_A.erd_writer->rd_frame->raw_data.data[p_rdata_A.erd_writer->counter].s_parameter.exposure_time = e_time;
p_rdata_A.erd_writer->counter += 1;
} else {
if(p_rdata_A.erd_writer->next->sending != 1){
p_rdata_A.erd_sender = p_rdata_A.erd_writer;
p_rdata_A.erd_writer = p_rdata_A.erd_writer->next;
p_rdata_A.erd_writer->counter = 0;
HReadC(DSP_DATA1, (unsigned short*)p_rdata_A.erd_writer->rd_frame->raw_data.data[p_rdata_A.erd_writer->counter].r_data, MAX_RAW_DATA_LENGTH);
p_rdata_A.erd_writer->rd_frame->raw_data.data[p_rdata_A.erd_writer->counter].relative_time = r_time;
p_rdata_A.erd_writer->rd_frame->raw_data.data[p_rdata_A.erd_writer->counter].step_num = step;
p_rdata_A.erd_writer->rd_frame->raw_data.data[p_rdata_A.erd_writer->counter].step_time = info_A.start_time;
p_rdata_A.erd_writer->rd_frame->raw_data.data[p_rdata_A.erd_writer->counter].s_parameter = info_A.step_info[step].step_parameter;
p_rdata_A.erd_writer->rd_frame->raw_data.data[p_rdata_A.erd_writer->counter].s_parameter.exposure_time = e_time;
p_rdata_A.erd_writer->counter += 1;
}
}
if(info_B.step_starting != 1){
step = info_B.cur_step;
} else {
step = info_B.cur_step-1;
info_B.step_info[info_B.cur_step].start_num = data_num+1;
info_B.step_starting = 0;
}
if(p_rdata_B.erd_writer->counter !=10){
HReadC(DSP_DATA2, (unsigned short*)p_rdata_B.erd_writer->rd_frame->raw_data.data[p_rdata_B.erd_writer->counter].r_data, MAX_RAW_DATA_LENGTH);
p_rdata_B.erd_writer->rd_frame->raw_data.data[p_rdata_B.erd_writer->counter].relative_time = r_time;
p_rdata_B.erd_writer->rd_frame->raw_data.data[p_rdata_B.erd_writer->counter].step_num = step;
p_rdata_B.erd_writer->rd_frame->raw_data.data[p_rdata_B.erd_writer->counter].step_time = info_B.start_time;
p_rdata_B.erd_writer->rd_frame->raw_data.data[p_rdata_B.erd_writer->counter].s_parameter = info_B.step_info[step].step_parameter;
p_rdata_B.erd_writer->rd_frame->raw_data.data[p_rdata_B.erd_writer->counter].s_parameter.exposure_time = e_time;
p_rdata_B.erd_writer->counter += 1;
} else {
if(p_rdata_B.erd_writer->next->sending != 1){
p_rdata_B.erd_sender = p_rdata_B.erd_writer;
p_rdata_B.erd_writer = p_rdata_B.erd_writer->next;
p_rdata_B.erd_writer->counter = 0;
HReadC(DSP_DATA2, (unsigned short*)p_rdata_B.erd_writer->rd_frame->raw_data.data[p_rdata_B.erd_writer->counter].r_data, MAX_RAW_DATA_LENGTH);
p_rdata_B.erd_writer->rd_frame->raw_data.data[p_rdata_B.erd_writer->counter].relative_time = r_time;
p_rdata_B.erd_writer->rd_frame->raw_data.data[p_rdata_B.erd_writer->counter].step_num = step;
p_rdata_B.erd_writer->rd_frame->raw_data.data[p_rdata_B.erd_writer->counter].step_time = info_B.start_time;
p_rdata_B.erd_writer->rd_frame->raw_data.data[p_rdata_B.erd_writer->counter].s_parameter = info_B.step_info[step].step_parameter;
p_rdata_B.erd_writer->rd_frame->raw_data.data[p_rdata_B.erd_writer->counter].s_parameter.exposure_time = e_time;
p_rdata_B.erd_writer->counter += 1;
}
}
} else {
//start_time = rtc_get();
HReadC(DSP_DATA1, (unsigned short*)p_rdata_A.erd_writer->rd_frame->raw_data.data[0].r_data, MAX_RAW_DATA_LENGTH);
p_rdata_A.erd_writer->rd_frame->raw_data.data[0].relative_time = 0;
p_rdata_A.erd_writer->rd_frame->raw_data.data[0].step_num = 0;
p_rdata_A.erd_writer->rd_frame->raw_data.data[0].step_time = info_A.start_time;
p_rdata_A.erd_writer->rd_frame->raw_data.data[0].s_parameter = info_A.step_info[0].step_parameter;
p_rdata_A.erd_writer->rd_frame->raw_data.data[0].s_parameter.exposure_time = e_time;
p_rdata_A.erd_writer->counter = 1;
if(p_rdata_A.erd_sender->sending == 0){
p_rdata_A.erd_sender = p_rdata_A.erd_writer;
}
p_rdata_A.erd_writer->next->counter = 0;
HReadC(DSP_DATA2, (unsigned short*)p_rdata_B.erd_writer->rd_frame->raw_data.data[0].r_data, MAX_RAW_DATA_LENGTH);
p_rdata_B.erd_writer->rd_frame->raw_data.data[0].relative_time = 0;
p_rdata_B.erd_writer->rd_frame->raw_data.data[0].step_num = 0;
p_rdata_B.erd_writer->rd_frame->raw_data.data[0].step_time = info_B.start_time;
p_rdata_B.erd_writer->rd_frame->raw_data.data[0].s_parameter = info_B.step_info[0].step_parameter;
p_rdata_B.erd_writer->rd_frame->raw_data.data[0].s_parameter.exposure_time = e_time;
p_rdata_B.erd_writer->counter = 1;
if(p_rdata_B.erd_sender->sending == 0){
p_rdata_B.erd_sender = p_rdata_B.erd_writer;
}
p_rdata_B.erd_writer->next->counter = 0;
}
}
void read_band_value(void){
if(p_bvalue_A.ebv_writer->writen == 0){
HReadC(DSP_BAND_VAL1, (unsigned short*)p_bvalue_A.ebv_writer->bv_frame->result.b_value, MAX_BAND_COUNT);
p_bvalue_A.ebv_writer->writen = 1;
} else {
if(p_bvalue_A.ebv_writer->next->sending == 0){
p_bvalue_A.ebv_sender = p_bvalue_A.ebv_writer;
p_bvalue_A.ebv_writer = p_bvalue_A.ebv_writer->next;
HReadC(DSP_BAND_VAL1, (unsigned short*)p_bvalue_A.ebv_writer->bv_frame->result.b_value, MAX_BAND_COUNT);
p_bvalue_A.ebv_writer->writen = 1;
} else {
HReadC(DSP_BAND_VAL1, (unsigned short*)p_bvalue_A.ebv_writer->bv_frame->result.b_value, MAX_BAND_COUNT);
p_bvalue_A.ebv_writer->writen = 1;
}
}
if(p_bvalue_B.ebv_writer->writen == 0){
HReadC(DSP_BAND_VAL2, (unsigned short*)p_bvalue_B.ebv_writer->bv_frame->result.b_value, MAX_BAND_COUNT);
p_bvalue_B.ebv_writer->writen = 1;
} else {
if(p_bvalue_B.ebv_writer->next->sending == 0){
p_bvalue_B.ebv_sender = p_bvalue_B.ebv_writer;
p_bvalue_B.ebv_writer = p_bvalue_B.ebv_writer->next;
HReadC(DSP_BAND_VAL2, (unsigned short*)p_bvalue_B.ebv_writer->bv_frame->result.b_value, MAX_BAND_COUNT);
p_bvalue_B.ebv_writer->writen = 1;
} else {
HReadC(DSP_BAND_VAL2, (unsigned short*)p_bvalue_B.ebv_writer->bv_frame->result.b_value, MAX_BAND_COUNT);
p_bvalue_B.ebv_writer->writen = 1;
}
}
}
void read_pre_data(){
unsigned short data_num;
unsigned short step_num;
unsigned long r_time;
HReadS(DSP_DATA_NUM, &data_num);
r_time = data_num-1;
if(info_A.pre_geting == 1){
step_num = 1;
while((data_num > info_A.step_info[step_num].start_num) && (step_num < 6)){
step_num++;
}
step_num--;
HReadC(DSP_DATA1, (unsigned short*)p_rdata_A.erd_writer->rd_frame->raw_data.data[0].r_data, MAX_RAW_DATA_LENGTH);
p_rdata_A.erd_writer->rd_frame->raw_data.data[0].relative_time = r_time;
p_rdata_A.erd_writer->rd_frame->raw_data.data[0].step_num = step_num;
p_rdata_A.erd_writer->rd_frame->raw_data.data[0].step_time = info_A.start_time;
p_rdata_A.erd_writer->rd_frame->raw_data.data[0].s_parameter = info_A.step_info[step_num].step_parameter;
p_rdata_A.erd_writer->counter = 1;
p_rdata_A.erd_sender = p_rdata_A.erd_writer;
OSSemPost(info_A.dsp_sem);
} else {
step_num = 1;
while((data_num > info_B.step_info[step_num].start_num) && (step_num < 6)){
step_num++;
}
step_num--;
HReadC(DSP_DATA2, (unsigned short*)p_rdata_B.erd_writer->rd_frame->raw_data.data[0].r_data, MAX_RAW_DATA_LENGTH);
p_rdata_B.erd_writer->rd_frame->raw_data.data[0].relative_time = r_time;
p_rdata_B.erd_writer->rd_frame->raw_data.data[0].step_num = step_num;
p_rdata_B.erd_writer->rd_frame->raw_data.data[0].step_time = info_B.start_time;
p_rdata_B.erd_writer->rd_frame->raw_data.data[0].s_parameter = info_B.step_info[step_num].step_parameter;
p_rdata_B.erd_writer->counter = 1;
p_rdata_B.erd_sender = p_rdata_B.erd_writer;
OSSemPost(info_B.dsp_sem);
}
}
void tranA_task(void){
struct netconn *conn;
struct netbuf *buf;
char *rq; //nothingbn 06_03_20
u16_t len;
//err_t err;
/* Create a new connection identifier. */
conn = netconn_new(NETCONN_TCP);
/* Bind connection to well known port number 7. */
netconn_bind(conn, NULL, port_A);
/* Tell connection to go into listening mode. */
netconn_listen(conn);
while(1) {
/* Grab new connection. */
info_A.conn = netconn_accept(conn);
if(info_A.conn != NULL) {
while((buf = netconn_recv(info_A.conn)) != NULL) {
netbuf_data(buf, (void**)&rq, &len);
do_response((struct commad_frame*)rq, len, &info_A);
netbuf_delete(buf);
}
netconn_delete(info_A.conn);
}
}
}
void tranB_task(void){
struct netconn *conn;
struct netbuf *buf;
char *rq; //nothingbn 06_03_20
u16_t len;
//err_t err;
/* Create a new connection identifier. */
conn = netconn_new(NETCONN_TCP);
/* Bind connection to well known port number 7. */
netconn_bind(conn, NULL, port_B);
/* Tell connection to go into listening mode. */
netconn_listen(conn);
while(1) {
/* Grab new connection. */
info_B.conn = netconn_accept(conn);
if(info_B.conn != NULL) {
while((buf = netconn_recv(info_B.conn)) != NULL) {
netbuf_data(buf, (void**)&rq, &len);
do_response((struct commad_frame*)rq, len, &info_B);
netbuf_delete(buf);
}
netconn_delete(info_B.conn);
}
}
}
void tranTest_task(void *pdata)
{
struct netconn *conn, *newconn;
struct netbuf *buf;
// char *rq; //nothingbn 06_03_20
// u16_t len;
unsigned short i;
endpoint_init();
rtc_get();
info_A.step_info[0].start_num = 0;
info_A.step_info[1].start_num = 20;
info_A.step_info[2].start_num = 40;
info_A.step_info[3].start_num = 60;
info_A.step_info[4].start_num = 80;
info_A.step_info[5].start_num = 100;
info_B.step_info[0].start_num = 0;
info_B.step_info[1].start_num = 20;
info_B.step_info[2].start_num = 40;
info_B.step_info[3].start_num = 60;
info_B.step_info[4].start_num = 80;
info_B.step_info[5].start_num = 100;
info_A.pre_list.numbers[0] = 5;
info_A.pre_list.numbers[1] = 15;
info_A.pre_list.numbers[2] = 25;
info_A.pre_list.numbers[3] = 35;
info_A.pre_list.numbers[4] = 45;
info_A.pre_list.numbers[5] = 55;
info_A.pre_list.numbers[6] = 65;
info_A.pre_list.numbers[7] = 75;
info_A.pre_list.numbers[8] = 85;
info_A.pre_list.numbers[9] = 95;
info_A.pre_list.numbers[10] = 105;
info_A.pre_list.numbers[11] = 40;
info_A.pre_list.numbers[12] = 80;
info_A.pre_list.numbers[13] = 0;
info_B.pre_list.numbers[0] = 33;
info_B.pre_list.numbers[1] = 3;
info_B.pre_list.numbers[2] = 87;
info_B.pre_list.numbers[3] = 12;
info_B.pre_list.numbers[4] = 60;
info_B.pre_list.numbers[5] = 59;
info_B.pre_list.numbers[6] = 26;
info_B.pre_list.numbers[7] = 110;
info_B.pre_list.numbers[8] = 0;
info_A.pre_list.send_counter = 0;
info_B.pre_list.send_counter = 0;
info_A.pre_need = 0;
info_A.pre_need = 0;
info_A.cur_step = 0;
info_A.step_info[0].step_parameter.exposure_time = 0x7;
info_A.step_info[0].step_parameter.b_wlength[0] = 0x50;
info_A.step_info[0].step_parameter.b_wlength[1] = 0x100;
info_A.step_info[0].step_parameter.b_wlength[2] = 0x150;
info_A.step_info[0].step_parameter.b_wlength[3] = 0x200;
info_A.step_info[0].step_parameter.b_wlength[4] = 0x250;
info_A.step_info[0].step_parameter.b_wlength[5] = 0x300;
info_A.step_info[0].step_parameter.b_wlength[6] = 0x350;
info_A.step_info[0].step_parameter.b_wlength[7] = 0x400;
info_A.step_info[0].step_parameter.b_binning[0] = 2;
info_A.step_info[0].step_parameter.b_binning[1] = 4;
info_A.step_info[0].step_parameter.b_binning[2] = 6;
info_A.step_info[0].step_parameter.b_binning[3] = 8;
info_A.step_info[0].step_parameter.b_binning[4] = 6;
info_A.step_info[0].step_parameter.b_binning[5] = 4;
info_A.step_info[0].step_parameter.b_binning[6] = 2;
info_A.step_info[0].step_parameter.b_binning[7] = 10;
/* Create a new connection identifier. */
conn = netconn_new(NETCONN_TCP);
/* Bind connection to well known port number 7. */
netconn_bind(conn, NULL, 80);
/* Tell connection to go into listening mode. */
netconn_listen(conn);
while(1) {
/* Grab new connection. */
newconn = netconn_accept(conn);
info_A.conn = newconn;
info_B.conn = newconn;
if(newconn != NULL) {
buf = netconn_recv(newconn);
netbuf_delete(buf);
/* HWriteS(DSP_INT_TIME, 0x1);
HWriteS(DSP_INT_TYPEF, SHK_CCD_RESTAR);
Hint();
while(1) {
OSTimeDly(200);
send_raw_data(&p_rdata_A, newconn);
send_raw_data(&p_rdata_B, newconn);
//endpoint_init();
}*/
/*
send_pre_data(&info_A);
send_pre_data(&info_B);*/
/*
HWriteS(DSP_INT_TIME, 0x1);
HWriteS(DSP_INT_TYPEF, SHK_CCD_RESTAR);
Hint();
OSTimeDly(50);
i = 5;
while(i--) {
OSTimeDly(10);
send_raw_data(&info_A);
send_raw_data(&info_B);
}
HWriteS(DSP_INT_TIME, 0x3);
HWriteS(DSP_INT_TYPEF, SHK_CCD_PARA);
Hint();
i = 5;
while(i--) {
OSTimeDly(10);
send_raw_data(&info_A);
send_raw_data(&info_B);
}
HWriteS(DSP_INT_TIME, 0x7);
HWriteS(DSP_INT_TYPEF, SHK_CCD_PARA);
Hint();
*/
set_sample_para(&info_A);
while(1){
OSTimeDly(20);
send_band_value(&info_A);
send_band_value(&info_B);
}
OSTaskSuspend(OS_PRIO_SELF); //suspend the TaskStart.
netconn_delete(newconn);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -