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

📄 gprs_protocol.c

📁 bf533平台图像采集程序
💻 C
字号:
#include <string.h> 
#include <stdio.h> 
#include <stdlib.h>
#include <math.h>

#include "jpeg.h" 
//#include "sms.h"
#include "string.h"
#include "dsp_uart.h"
#include "camera.h"


//#define ALARM_THRED  (720*144*5/2)
int Init_time = 5;
//int administrator_flag;
//int arbiter_flag;
//char AUTO_DETECT_OPEN=0;
//cmd_pack_t	cmd_pack;

jpeg_pack_t  jpeg_pack;

unsigned char *pCur_Yuv,*pRef_Yuv;
int Get_Pic_Flag;

int frame_number = 0;
int auto_detect_count = 0;
extern unsigned int ctime;
extern int frame_flag;

unsigned char *YUV_656;
extern FILE *outfile;
extern void PPI_DMA_Restart();
//segment("sdram0") char SMMS_BUF[150000];
//segment("sdram0") sms_record_t sms_record[50];

//segment("sdram0") char Threshold[1000];
int test_points = 0;
//char smms_send[20];
//int smms_send_timeout = 0;
//int SMMS_Send(int aLen,char *aBuf,char iLen,char *iBuf,
//				char tLen,char *tBuf);
				

int i2a(int num, char* s, int len)
{
	char buf[20], token[20];
	
	sprintf(token, "%%0%dd", len);
	sprintf(buf, token, num);
	strcpy(s, buf);
	return 0;
}
	
void Free_MEM(char *buf)
{
   if(buf)
	  free(buf);
}			



int Start_Detect()
{
	//Reset_7180();
	videoin_init();
	videoin_start();
	//delay(1000000); //10ms
}

int Get_Picture(unsigned char *pYuv,jpeg_pack_t *pJPEG_pack)
{
	char pic_quality[4];
	

/*liu	memset((char*)pJPEG_pack,0,sizeof(jpeg_pack_t));
	
	pJPEG_pack->info.pic_big = 0;
	
	pic_quality[0] = 5;//85
	pic_quality[1] = 8;
	pic_quality[2] = 0;
	
	pJPEG_pack->info.quality = atoi(pic_quality);
	*/
//要删掉///////////////////////////////////////	

//////////////////////////////////////////	

	pJPEG_pack->data = (char*)malloc(100*1024);
	if(pJPEG_pack->data==0)
	         {
	         	while(1);
	         	
	         }
	sys_get_jpeg(pYuv,pJPEG_pack);
	
	return 1;
}



int JPEG_Proc(jpeg_pack_t *jpeg_pack)
{
	
	int jpeg_size,ret,smms_flag;
	char *title,*jpeg_buf,*phone_num;
	char phone_len,title_len;
	int k=0;
	//char *test;
	
	//char *phone_num ="13758193394";
	//test = 0x10000;
	

	
	jpeg_size = jpeg_pack->info.size;
	
	jpeg_buf = jpeg_pack->data;//SMMS_BUF;
	

	BF533_WDOG_WRITE_STAT();
	uart_send(jpeg_buf,jpeg_size);	    
		BF533_WDOG_WRITE_STAT();
	//保存图像到Flash,以后增加
	outfile=fopen("g:\\a.jpeg","wb");
	fwrite(jpeg_buf,1,jpeg_size,outfile);
	fclose(outfile);
	//然后释放内存
	if(jpeg_pack->data)
		free(jpeg_pack->data);

		
	return 1;

	
	
}

//return value:
//-3: valid command
//





//
//return value:
//-1: 进入modem模式失败
//-2:modem模式下at命令失败
//-3:退出modem模式失败
//-4;命令模式下at命令失败
//-5:读信息时超时
//>=0:it is ok

int command_proc()

{
	int cnt, ret,valid_user, j;
	int i = 0;
    int time,invalid_use;
    char temp_number[25];   

	

 BF533_WDOG_WRITE_STAT(); 
	
	i=uart_recv_buffer_proc(uart_recv_buffer);
	switch(i)
{
	//设置采集图像
	case 0:
		 		Reset_7180();
  				Start_Detect();
  					BF533_WDOG_WRITE_STAT();
		 		while(!frame_flag)
    			{
    			delay(100000);
    			}
    				BF533_WDOG_WRITE_STAT();
				videoin_stop();
				frame_flag = 0;
				BF533_WDOG_WRITE_STAT();		 
		 		Get_Picture(pCur_Yuv,&jpeg_pack);
		 		JPEG_Proc(&jpeg_pack);
				BF533_WDOG_WRITE_STAT();
				Free_MEM(jpeg_pack.data);
				break;
				
	case 1:
			jpeg_pack.info.pic_big=0;
			break;
	
	case 2:
			jpeg_pack.info.pic_big=1;
			break;
		
	case 3:
	jpeg_pack.info.quality=90;
	break;
	case 4:
	jpeg_pack.info.quality=80;				
	break;
	case 5:				
	jpeg_pack.info.quality=70;
	break;
	default:
	
//	jpeg_pack.info.pic_big=0;
//	jpeg_pack.info.quality=80;			
}
	

return 0;
	}

	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -