📄 state.c~
字号:
}
memset(aCmdBuf,0,sizeof(aCmdBuf));
_itoa (Day_Chg , aCmdBuf);
printf("set_DAY = %d\n",Day_Chg);
printf("DAY_aCmdBuf %s\n",aCmdBuf);
PANEL_Output (LCM_LINE_2, aCmdBuf);
dateBuffer[7]=aCmdBuf[0];
dateBuffer[8]=aCmdBuf[1];
break;
case STATE_CHG_DAY:
if (Day_Chg>30)
Day_Chg=1;
else{
Day_Chg++;
}
break;
case STATE_SET_TIME:
PANEL_ClearDisplay (LCM_LINE_2);
iTimeDisplayMode = TIME_DISPLAY_TIME_HMS;
PANEL_Output (LCM_LINE_1, " Time");
PANEL_ShowTime ();
hour_state=0;
if (day_state==1){
Hour_Chg=tmTimeNow.tm_hour;
_itoa (Hour_Chg , TimeB);
dateBuffer[9]=TimeB[0];
dateBuffer[10]=TimeB[1];
Min_Chg=tmTimeNow.tm_min;
_itoa (Min_Chg , TimeB);
dateBuffer[11]=TimeB[0];
dateBuffer[12]=TimeB[1];
Sec_Chg=tmTimeNow.tm_sec;
_itoa (Sec_Chg , TimeB);
dateBuffer[18]=TimeB[0];
dateBuffer[19]=TimeB[1];
system(dateBuffer);
}
day_state=0;
break;
case STATE_SET_HOUR:
PANEL_Output (LCM_LINE_1, "Hour Set");
if (hour_state==0){
Hour_Chg = (tmTimeNow.tm_hour);
hour_state=1;
}
memset(aCmdBuf,0,sizeof(aCmdBuf));
_itoa (Hour_Chg , aCmdBuf);
printf("set_hour = %d\n",Hour_Chg );
printf("Hour_aCmdBuf %s\n",aCmdBuf);
PANEL_Output (LCM_LINE_2, aCmdBuf);
min_state=0;
dateBuffer[9]=aCmdBuf[0];
dateBuffer[10]=aCmdBuf[1];
break;
case STATE_CHG_HOUR:
if (Hour_Chg>22)
Hour_Chg=1;
else{
Hour_Chg++;
}
break;
case STATE_SET_MIN:
PANEL_Output (LCM_LINE_1, "Min Set");
if (min_state==0){
Min_Chg = (tmTimeNow.tm_min);
min_state=1;
}
memset(aCmdBuf,0,sizeof(aCmdBuf));
_itoa (Min_Chg , aCmdBuf);
printf("set_min = %d\n",Min_Chg );
printf("Min_aCmdBuf %s\n",aCmdBuf);
PANEL_Output (LCM_LINE_2, aCmdBuf);
sec_state=0;
dateBuffer[11]=aCmdBuf[0];
dateBuffer[12]=aCmdBuf[1];
break;
case STATE_CHG_MIN:
if (Min_Chg>58)
Min_Chg=0;
else{
Min_Chg++;
}
break;
case STATE_SET_SEC:
PANEL_Output (LCM_LINE_1, "Sec Set");
if (sec_state==0){
Sec_Chg = (tmTimeNow.tm_sec);
sec_state=1;
}
memset(aCmdBuf,0,sizeof(aCmdBuf));
_itoa (Sec_Chg , aCmdBuf);
printf("set_sec = %d\n",Sec_Chg );
printf("Sec_aCmdBuf %s\n",aCmdBuf);
PANEL_Output (LCM_LINE_2, aCmdBuf);
dateBuffer[18]=aCmdBuf[0];
dateBuffer[19]=aCmdBuf[1];
break;
case STATE_CHG_SEC:
if (Sec_Chg>58)
Sec_Chg=0;
else{
Sec_Chg++;
}
break;
case STATE_SET_FMT_SD:
PANEL_Output (LCM_LINE_1, "Fmt SD?");
PANEL_Output (LCM_LINE_2, " K2:Yes");
if(sec_state==1){
system(dateBuffer);
sec_state=0;
}
break;
case STATE_FMT_SD:
iSDStatus = UTL_CheckSDCard ();
if (iSDStatus == SD_NO_SD)
{
iErrCode = ERR_SD_NO_SD;
break;
}
if (iSDStatus == SD_READ_ONLY)
{
iErrCode = ERR_SD_READ_ONLY;
break;
}
if (system ("mkdosfs /dev/mmcblk0p1"))
iErrCode = ERR_SD_FMT_FAIL;
break;
case STATE_SET_UPG:
PANEL_Output (LCM_LINE_1, "Upg FW?");
PANEL_Output (LCM_LINE_2, " K2:Yes");
break;
case STATE_UPG:
if (UTL_CheckSDCard () == SD_NO_SD)
{
iErrCode = ERR_SD_NO_SD;
break;
}
if (UTL_MountSD ())
{
iErrCode = ERR_SD_MOUNT_FAIL;
break;
}
if (access ("/mnt/uzImage.bin", 0) || access ("/mnt/cramfs.bin", 0))
{
iErrCode = ERR_UPG_NO_NEW_FW;
break;
}
PANEL_Output (LCM_LINE_1, " UPG FW");
PANEL_Output (LCM_LINE_2, " Kernel");
system ("cp /mnt/uzImage.bin /var");
sync ();
system ("systool upkernel /var/uzImage.bin");
system ("rm /var/uzImage.bin");
PANEL_Output (LCM_LINE_1, " UPG FW");
PANEL_Output (LCM_LINE_2, " RootFS");
system ("cp /mnt/cramfs.bin /var");
sync ();
system ("systool upfs /var/cramfs.bin");
break;
case STATE_REBOOT:
PANEL_Output (LCM_LINE_1, " Reboot");
PANEL_Output (LCM_LINE_2, " System");
UTL_CloseHIU ();
UTL_CloseGPIO ();
system ("reboot");
break;
case STATE_SET_IMGDISP:
PANEL_Output (LCM_LINE_1, " IMGDISP");
strcpy (aCmdBuf, aImageDisp[iMAGE]);
aCmdBuf[0] = 0x7e; // Show Arrow
PANEL_Output (LCM_LINE_2, aCmdBuf);
break;
case STATE_CHG_IMGDISP:
if (iMAGE == IMAGE_END)
iMAGE = IMAGE_START;
else
iMAGE ++;
break;
default:
break;
}
iStateNow = iStateNext;
iStateNext = STATE_NO_CHANGE;encode_to_file(aCmdBuf, 0);
return 0;
}
int _ForkENCProcess (void)
{
iRecording=1;
if((ENCpid = vfork()) < 0)
{
printf("fork fail\n");
}
else if(ENCpid == 0)
{
system("testapp3 set script /var/streamer/qlcpgTest2m.sh");
sprintf (aCmdBuf, "/mnt/%s_%02d%02d%02d%02d.%s", aFileType[iFileType], tmTimeNow.tm_mon + 1, tmTimeNow.tm_mday, tmTimeNow.tm_hour, tmTimeNow.tm_min, aExtNmae[iFileType]);
execlp("testapp3", "testapp3", "encodev4", aCmdBuf, "0", (char *)0);
sleep(1);
}
}
void schedule_rec(void){
int iStatus;
if( !sch_status ) // Added by KCHong
return;
if (((TimeNow - time_sch) >= (default_rec_time*60)) && (SC_Value) ){
SC_Value=0;
sch_status=SCH_STOP;
iStateNext = STATE_STANDBY;
}
if( (tmTimeNow.tm_mday==default_sch_day) && (tmTimeNow.tm_hour==default_sch_hour) && (tmTimeNow.tm_min==default_sch_min) && (!SC_Value) ){
//time(&temps);
printf("default_rec_time %d \n",default_rec_time);
time_sch=TimeNow;
SC_Value=1;
//sch_status=SCH_STOP;
_ForkENCProcess ();
sprintf (aCmdBuf, "<%s_%02d%02d%02d%02d.%s>", aFileType[iFileType], tmTimeNow.tm_mon + 1, tmTimeNow.tm_mday, tmTimeNow.tm_hour, tmTimeNow.tm_min, aExtNmae[iFileType]);
PANEL_Output (LCM_LINE_1, aCmdBuf);
}
//}if
return;
}
void MD_RECFUN(void){
if(!MD_Status) // Added by RoberLo
return;
if (mcontrol.md_mode != MD_OFF)
{
if(mcontrol.md_state == MD_STOP)
{
start_motion_detection_vi();
mcontrol.md_state = MD_START;
MD_Value=1;
}
if (get_motion_detection_vi())
{
printf("Get md message\n");
MD_Value = 0;
mcontrol.md_det = 1;
//evt = EVT_ENCODE;
system("testapp3 set vid_stream_type ps");
stop_motion_detection_vi();
_ForkENCProcess();
mcontrol.md_state = MD_STOP;
}
}
else
{
if(MD_Result=0){
if (mcontrol.md_state != MD_STOP)
{
stop_motion_detection_vi();
mcontrol.md_state = MD_STOP;
system("testapp3 set vid_stream_type ps");
}
}
mcontrol.md_det = 0;
}
}
////////////Motion detection////////////////////
//rober
void MD_Service(){
if(!MD_Status) // Added by RoberLo
return;
if (((TimeNow - time_MD) >= ONE_MINUTE ) && (MD_Value)){
iStateNext = STATE_STANDBY;
PANEL_Output (LCM_LINE_1, "Rec Stop");
MD_Value = 0;
iRecording=0;
//bCtrlCReceived=FALSE;
start_motion_detection_vi();
}
// one minutes unit
if (!MD_Value){ // MD enable
//bCtrlCReceived=TRUE;
if(get_motion_detection_vi()){
MD_Value = 1;
stop_motion_detection_vi();
PANEL_Output (LCM_LINE_1, "Motion Start... " );
_ForkENCProcess ();
sprintf (aCmdBuf, "<%s_%02d%02d%02d%02d.%s>", aFileType[iFileType], tmTimeNow.tm_mon + 1, tmTimeNow.tm_mday, tmTimeNow.tm_hour,tmTimeNow.tm_min, aExtNmae[iFileType]);
PANEL_Output (LCM_LINE_2, aCmdBuf);
mcontrol.md_det = 0;
time_MD=TimeNow;//value of time
}
}//if
}
/////////////////////////////////////////////////////////////////////////////
void nv_sch_get(void){
int m=0;
value_time = nvram_get("NV_SCH_DAY");
printf("value_day %s \n",value_time);
SchBuffer[4]=value_time[0];
SchBuffer[5]=value_time[1];
default_sch_day = atoi(value_time);
//sch_save_day=m;
printf("default_sch_day=%d\n",default_sch_day);
value_time = nvram_get("NV_SCH_HOUR");
printf("value_hour %s \n",value_time);
SchBuffer[12]=value_time[0];
SchBuffer[13]=value_time[1];
default_sch_hour = atoi(value_time);
printf("default_sch_hour=%d\n",default_sch_hour);
value_time = nvram_get("NV_SCH_MIN");
printf("value_min %s \n",value_time);
SchBuffer[19]=value_time[0];
SchBuffer[20]=value_time[1];
default_sch_min = atoi(value_time);
printf("default_sch_min=%d\n",default_sch_min);
value_time = nvram_get("NV_REC_TIME");
printf("value_day %d \n",value_time);
Rec_Buffer[0]=value_time[0];
Rec_Buffer[1]=value_time[1];
Rec_Buffer[2]=value_time[2];
default_rec_time = atoi(value_time);
printf("default_rec_time=%d\n",default_rec_time);
value_time = nvram_get("BITRATE_STATUS");
printf("BITRATE %d \n",value_time);
Rec_Buffer[0]=value_time[0];
iBitRate = atoi(value_time);
printf("iBitRate=%d\n",iBitRate);
memset(value_time,0,sizeof(value_time));
memset(Rec_Buffer,0,sizeof(Rec_Buffer));
value_time = nvram_get("FRAMERATE_STATUS");
printf("FrameRate %d \n",value_time);
memset(Rec_Buffer,0,sizeof(Rec_Buffer));
Rec_Buffer[0]=value_time[0];
iFrameRate = atoi(value_time);
printf("iBitRate=%d\n",iBitRate);
}
/////////////////////////freeMb///////////////////////////////////
void getDeviceFreeMb(char *wkDirPtr){
int iStatus;
if(!iRecording) // Added by KCHong
return;
if ((TimeNow - timep_save_FreeMb) >= FIVE_SECOND ){
timep_save_FreeMb= TimeNow;
if ( (statusVfs=statvfs(wkDirPtr,pStatVfs8)) <0){ //statvfs failed
fprintf(stdout,"statvfs failed %d ! \n",statusVfs);
freeMb = 0;
goto getDeviceFreeMbX;
}
freeMb =pStatVfs8->f_bavail *(pStatVfs8->f_bsize/1000);
freeMb /=1000; // ==> Mb
getDeviceFreeMbX:
printf("FreeMB=(%dMB,%d)!\n",freeMb,pStatVfs8->f_bsize);
if (freeMb<=5){
/*if(!kill(ENCpid,2))
{
ENCpid = wait(&iStatus) ;
if ( ENCpid == -1 )
printf("\n Wait Error \n");
else if ( !iStatus )
printf("\n Child %d terminated normall\n", ENCpid);
else
printf("\n Child terminated failed!\n");
}
PANEL_Output (LCM_LINE_1, "Saving");
PANEL_Output (LCM_LINE_2, " File...");
sync();
UTL_UnMountSD ();
usleep(100);*/
iRecording=0;
PANEL_Output (LCM_LINE_1, "Memory ...");
PANEL_Output (LCM_LINE_2, " Full.....");
sleep(1);
iStateNext = STATE_STANDBY;
}
//ret freeMb: Dev free space in MB
}//if
return;
}
//mctest.c
/*int encode_to_file(char *file, int time)
{
int err = 0;
#if 1
err = EncodeAndStreamv4(file, time, 0);
sync();
#else
char cmd[64];
if (time != 0)
sprintf(cmd, "testapp3 -d0 encodev4 %s 0 0 %d", file, time);
else
sprintf(cmd, "testapp3 -d0 encodev4 %s 0 0", file);
system(cmd);
sync();
#endif
return err;
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -