📄 state.c~
字号:
break;
case STATE_SET_FMT_SD:
// Nothing to do
break;
case STATE_FMT_SD:
// Nothing to do
break;
case STATE_SET_UPG:
// Nothing to do
break;
case STATE_UPG:
if (iErrCode != ERR_SD_NO_SD || iErrCode != ERR_SD_MOUNT_FAIL)
UTL_UnMountSD ();
break;
case STATE_REBOOT:
// Nothing to do
break;
case STATE_SET_IMGDISP:
break;
case STATE_CHG_IMGDISP:
break;
default:
break;
}
}
int STATE_EnterNextState (void)
{
int iSDStatus;
if (iStateNext == STATE_NO_CHANGE)
return 0;
//pthread_create(&pidMDThreadID,NULL,ql201_get_motion_detection_info_vi,NULL);
//char TimeBuf[2];
switch (iStateNext)
{
case STATE_STANDBY:
PANEL_ClearDisplay (LCM_LINE_BOTH);
if (iErrCode)
ERROR_ShowErrMsg (iErrCode);
else{
PANEL_Output (LCM_LINE_1, "Qpixel Memory Cam");
}
system("systool commit");
PANEL_ShowTime ();
break;
case STATE_REC:
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 (UTL_MountSD ())
{
iErrCode = ERR_SD_MOUNT_FAIL;
break;
}
if (iFileType == FILE_TYPE_PS)
system ("testapp3 set script /var/streamer/qlcfg_PS.sh");
if (iVIOSD == VIOSD_END)
{
if((FORK_osd = vfork()) < 0)
{
printf("fork fail\n");
}
else if(FORK_osd == 0)
{
//system("testapp3 osd date &");
execlp("testapp3", "testapp3", "osd", "date" , "string", "Hello!",(char*)0);
}
}
else{
if(!kill(FORK_osd,2))
{
FORK_osd = wait(&osd) ;
if ( FORK_osd == -1 )
printf("\n Wait Error \n");
else if ( !osd )
printf("\n Child %d terminated normall\n", FORK_osd);
else
printf("\n Child terminated failed!\n");
}
}
if (iBitRate == BITRATE_1500)
{
system ("testapp3 set vid_avg_bitrate 1500000");
system ("testapp3 set vid_peak_bitrate 2000000");
system ("testapp3 set vid_min_bitrate 1000000");
}
else if (iBitRate == BITRATE_1000)
{
system ("testapp3 set vid_avg_bitrate 1000000");
system ("testapp3 set vid_peak_bitrate 1500000");
system ("testapp3 set vid_min_bitrate 512000");
}
else if (iBitRate == BITRATE_768)
{
system ("testapp3 set vid_avg_bitrate 768000");
system ("testapp3 set vid_peak_bitrate 1000000");
system ("testapp3 set vid_min_bitrate 256000");
}
else if (iBitRate == BITRATE_512)
{
system ("testapp3 set vid_avg_bitrate 512000");
system ("testapp3 set vid_peak_bitrate 1000000");
system ("testapp3 set vid_min_bitrate 128000");
}
else
{
system ("testapp3 set vid_avg_bitrate 384000");
system ("testapp3 set vid_peak_bitrate 768000");
system ("testapp3 set vid_min_bitrate 128000");
}
if (iFrameRate == FRAMERATE_30)
system ("testapp3 set vid_frame_skip_count 30");
else
system ("testapp3 set vid_frame_skip_count 15");
*tTimetoMemCam = 0;
printf("iSchRec = %d\n",iSchRec);
if(Rec_Status == REC_SCH){
sch_status=SCH_START;
PANEL_Output (LCM_LINE_1, "Schedule Mode...");
PANEL_Output (LCM_LINE_2, SchBuffer);
SC_Value=0;
printf("Rec_Status = REC_SCH\n");
}
else if(Rec_Status == REC_MD){
MD_Status=M_DETEC_START;
mcontrol.md_state = MD_STOP;
PANEL_Output (LCM_LINE_1, "Motion Detection");
PANEL_Output (LCM_LINE_2, "Mode........");
MD_Value=0;
printf("Rec_Status = REC_MD\n"); start_motion_detection_vi();
}
else{
//sch_status=M_DETEC_STOP;
sch_status=SCH_STOP;
printf("start NU\n");
_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);
}
break;
case STATE_SET_VIOSD:
PANEL_Output (LCM_LINE_1, " VI OSD");
strcpy (aCmdBuf, aFuncStatusDisp[iVIOSD]);
aCmdBuf[0] = 0x7e; // Show Arrow
PANEL_Output (LCM_LINE_2, aCmdBuf);
break;
case STATE_CHG_VIOSD:
if (iVIOSD == VIOSD_END)
iVIOSD = VIOSD_START;
else
iVIOSD ++;
//kill(FORK_osd,2);
break;
case STATE_SET_MD:
PANEL_Output (LCM_LINE_1, " MD");
strcpy (aCmdBuf, aFuncStatusDisp[iMD]);
aCmdBuf[0] = 0x7e; // Show Arrow
PANEL_Output (LCM_LINE_2, aCmdBuf);
break;
case STATE_CHG_MD:
if (iMD == MD_END){
iMD = MD_START_D;
MD_Value=1;
Rec_Status = REC_NU;
//bCtrlCReceived = TRUE;
MD_Status=M_DETEC_STOP;
mcontrol.md_mode = MD_OFF;
mcontrol.md_state = MD_START;
}
else{
iMD ++;
//MD_Value=0;
Rec_Status = REC_MD;
mcontrol.md_mode = MD_NOR;
}
break;
case STATE_SET_FILE_FMT:
PANEL_Output (LCM_LINE_1, "FileType");
strcpy (aCmdBuf, aFileTypeDisp[iFileType]);
aCmdBuf[0] = 0x7e; // Show Arrow
PANEL_Output (LCM_LINE_2, aCmdBuf);
break;
case STATE_CHG_FILE_FMT:
if (iFileType == FILE_TYPE_END)
iFileType = FILE_TYPE_START;
else
iFileType ++;
break;
case STATE_SET_BITRATE:
PANEL_Output (LCM_LINE_1, "Bit rate");
strcpy (aCmdBuf, aBitrateDisp[iBitRate]);
aCmdBuf[0] = 0x7e; // Show Arrow
_itoa( iBitRate , Rate );
printf("Rate %s",Rate);
nvbitrate[27]=Rate[1];
system(nvbitrate);
PANEL_Output (LCM_LINE_2, aCmdBuf);
break;
case STATE_CHG_BITRATE:
if (iBitRate == BITRATE_END)
iBitRate = BITRATE_START;
else
iBitRate ++;
break;
case STATE_SET_FRAMERATE:
PANEL_Output (LCM_LINE_1, "Frm rate");
strcpy (aCmdBuf, aFramerateDisp[iFrameRate]);
aCmdBuf[0] = 0x7e; // Show Arrow
_itoa( iFrameRate , Rate );
printf("Rate %s",Rate);
nvframerate[29]=Rate[1];
system(nvframerate);
PANEL_Output (LCM_LINE_2, aCmdBuf);
break;
case STATE_CHG_FRAMERATE:
if (iFrameRate == FRAMERATE_END)
iFrameRate = FRAMERATE_START;
else
iFrameRate ++;
break;
case STATE_SET_SCH_REC:
PANEL_Output (LCM_LINE_1, "Sche Rec");
strcpy (aCmdBuf, aFuncStatusDisp[iSchRec]);
aCmdBuf[0] = 0x7e; // Show Arrow
printf("iSchRec = %d\n",iSchRec);
if(Rec_Status==2)
printf("Rec_Status is REC_SCH\n");
else
printf("Rec_Status = %d\n",Rec_Status);
PANEL_Output (LCM_LINE_2, aCmdBuf);
break;
case STATE_CHG_SCH_REC:
if (iSchRec == SCHREC_END){
iSchRec = SCHREC_START;
SC_Value=1;
Rec_Status = REC_NU;
sch_status=SCH_STOP;
}
else{
iSchRec ++;
SC_Value=0;
Rec_Status = REC_SCH;
//sch_status=SCH_START;
}
break;
case STATE_SET_SCH_REC_START:
PANEL_Output (LCM_LINE_1, "St. time");
PANEL_Output (LCM_LINE_2, SchBuffer);
break;
case STATE_SET_SCH_REC_DAY:
PANEL_Output (LCM_LINE_1, "St. Day ");
memset(aCmdBuf,0,sizeof(aCmdBuf));
_itoa (default_sch_day , aCmdBuf);
aCmdBuf[2]=aCmdBuf[1];
aCmdBuf[1]=aCmdBuf[0];
aCmdBuf[0] = 0x7e;
printf("SCH_DAY = %d\n",default_sch_day);
printf("DAY_aCmdBuf %s\n",aCmdBuf);
PANEL_Output (LCM_LINE_2, aCmdBuf);
break;
case STATE_CHG_SCH_REC_DAY:
if (default_sch_day>30)
default_sch_day=1;
else{
default_sch_day++;
}
break;
case STATE_SET_SCH_REC_HOUR:
PANEL_Output (LCM_LINE_1, "St. Hour");
memset(aCmdBuf,0,sizeof(aCmdBuf));
_itoa (default_sch_hour , aCmdBuf);
aCmdBuf[2]=aCmdBuf[1];
aCmdBuf[1]=aCmdBuf[0];
aCmdBuf[0] = 0x7e;
printf("SCH_hour = %d\n",default_sch_hour);
printf("HOUR_aCmdBuf %s\n",aCmdBuf);
PANEL_Output (LCM_LINE_2, aCmdBuf);
break;
case STATE_CHG_SCH_REC_HOUR:
if (default_sch_hour>22)
default_sch_hour=1;
else{
default_sch_hour++;
}
break;
case STATE_SET_SCH_REC_MIN:
PANEL_Output (LCM_LINE_1, "St. Min ");
memset(aCmdBuf,0,sizeof(aCmdBuf));
_itoa (default_sch_min , aCmdBuf);
aCmdBuf[2]=aCmdBuf[1];
aCmdBuf[1]=aCmdBuf[0];
aCmdBuf[0] = 0x7e;
printf("SCH_MIN = %d\n",default_sch_min);
printf("MIN_aCmdBuf %s\n",aCmdBuf);
PANEL_Output (LCM_LINE_2, aCmdBuf);
break;
case STATE_CHG_SCH_REC_MIN:
if (default_sch_min>58)
default_sch_min=0;
else{
default_sch_min++;
}
break;
case STATE_SET_SCH_REC_TIME:
PANEL_Output (LCM_LINE_1, "Rec.time");
memset(aCmdBuf,0,sizeof(aCmdBuf));
_itoal (default_rec_time , aCmdBuf);
printf("TIME_aCmdBuf %s\n",aCmdBuf);
aCmdBuf[3]=aCmdBuf[2];
aCmdBuf[2]=aCmdBuf[1];
aCmdBuf[1]=aCmdBuf[0];
aCmdBuf[0] = 0x7e;
printf("SCH_TIME = %d\n",default_rec_time);
printf("TIME_aCmdBuf %s\n",aCmdBuf);
PANEL_Output (LCM_LINE_2, aCmdBuf);
break;
case STATE_CHG_SCH_REC_TIME:
if ( default_rec_time > 195 )
default_rec_time=0;
else{
default_rec_time=default_rec_time + 5;
}
break;
case STATE_SET_DATE:
PANEL_ClearDisplay (LCM_LINE_2);
iTimeDisplayMode = TIME_DISPLAY_TIME_DATE;
PANEL_Output (LCM_LINE_1, " Date");
PANEL_ShowTime ();
year_state=0;
break;
case STATE_SET_YEAR:
PANEL_Output (LCM_LINE_1, "Year Set");
if (year_state==0){
Year_Chg = tmTimeNow.tm_year%100;
year_state=1;
}
memset(aCmdBuf,0,sizeof(aCmdBuf));
_itoa (Year_Chg % 100, aCmdBuf);
printf("set_year = %d\n",Year_Chg % 100);
printf("year_aCmdBuf %s\n",aCmdBuf);
PANEL_Output (LCM_LINE_2, aCmdBuf);
dateBuffer[15]=aCmdBuf[0];
dateBuffer[16]=aCmdBuf[1];
month_state=0;
break;
case STATE_CHG_YEAR:
if (Year_Chg>29)
Year_Chg=0;
else{
Year_Chg++;
}
break;
case STATE_SET_MONTH:
PANEL_Output (LCM_LINE_1, "Mon Set");
if (month_state==0){
Month_Chg = 0;
Month_Chg = tmTimeNow.tm_mon;
Month_Chg=Month_Chg+1;
printf("tmTimeNow.tm_mon %d \n",(tmTimeNow.tm_mon+1));
printf("Month_Chg %d \n",Month_Chg);
month_state=1;
}
//memset(aCmdBuf,0,sizeof(aCmdBuf));
_itoa (Month_Chg , aCmdBuf);
printf("Month_Chg %d \n",Month_Chg);
PANEL_Output (LCM_LINE_2, aCmdBuf);
dateBuffer[5] = aCmdBuf[0];
dateBuffer[6] = aCmdBuf[1];
day_state=0;
break;
case STATE_CHG_MONTH:
if (Month_Chg > 11)
Month_Chg = 1;
else{
Month_Chg++;
}
break;
case STATE_SET_DAY:
PANEL_Output (LCM_LINE_1, "Day Set");
if (day_state==0){
Day_Chg = (tmTimeNow.tm_mday);
day_state=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -