📄 gprs_protocol.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 + -