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

📄 state.c~

📁 cam ui application for linux
💻 C~
📖 第 1 页 / 共 4 页
字号:
            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 + -