⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 endpoint.c.svn-base

📁 lwip协议在arm7+uCos系统上的移植
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:

****************************************************************************/

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 + -