視頻監(jiān)控測試工程寶原理圖及PCB資料,有興趣的可以拿去研究下
單片機源程序如下:
- //******************************************************************************************************
- //
- // (c) Copyright 2009-2010, ZCQ
- // All Rights Reserved
- // V2.00.0
- //
- //-----------------------------------------文件信息-----------------------------------------------------
- //
- //文 件 名: F:\shoup\程序\New\AgeTwoV1.21\main.c(KEIL C V2.38a)
- //創(chuàng) 建 人: ZCQ
- //最后修改日期: 2010年02月05日
- //描 述:
- //
- //-----------------------------------------歷史版本信息-------------------------------------------------
- //
- // 創(chuàng)建人: ZCQ
- // 版 本: V1.20.0
- // 日 期: 2009年11月14日
- // 描 述:
- //
- //-----------------------------------------當前版本修訂-------------------------------------------------
- //
- // 修改人: ZCQ V1.21.0
- // 日 期: 2010年01月07日
- // 描 述: 對應硬件 工程寶2代原理圖.sch
- // cpu STC12C5A60S-37I-LQFP48 osc = 18.432MHZ
- //------------------------------------------------------------------------------------------------------
- //******************************************************************************************************/
- #include "headers\STC12C5A60S2.h"
- #include "headers\define.h"
- #include <stdio.h>
- #include <intrins.h>
- #include <math.h>
- #include <string.h>
- #include <MC51.h>
- //#include "headers\Eeprom.h"
- #include "headers\Serial.h"
- #include "headers\AD.h"
- #include "headers\74HC164.h"
- #include "headers\Key.h"
- #include "headers\Head.h"
- //chen++
- extern unsigned char Wipper_state;
- extern unsigned char Light_state;
- extern unsigned char Power_state;
- extern unsigned char Cruise_state;
- extern unsigned char ScanStop_Interface;
- extern void PtzFunction5(unsigned char uNumData, unsigned char uPresetAddrNum);//預置位設置
- extern void PtzFunction6(unsigned char uNumData); //預置位調(diào)用
- extern void PtzFunction7(unsigned char uNumData); //預置位清除
- /*******************************主程序*****************************/
- /*函數(shù)原型:main(void)
- /*函數(shù)功能:主程序
- /*輸入?yún)?shù):無
- /*輸出參數(shù):無
- /*調(diào)用模塊:無
- /*建立時間:2009/10/14
- /*作者:zcq
- /******************************************************************/
- void main(void)
- {
- unsigned char uTemp = 0x00;
- bit bFlag = FALSE;
- PowerOn(); //開機函數(shù)
- STATUS_LED = 1;
- EA =1; //初始化完成后打開總中斷
- WDT_CONTR = 0x3D; //1.3653S = 12*64(Pre-scale)*32768/18.43200000(OSC) /*0011 1100 EN_WDT = 1; CLR_WDT; IDLE_WDT = 1; PS2=1 PS1 = 0 PS0 =1*/
- while(1)
- {
- _nop_();
- _nop_();
- if(bPowerOnFlag)
- {
- PowerOff();//關機函數(shù)
- }
- if(!bPowerOnOffFlag)
- {
- WDT_CONTR = 0x3E;
- //LED閃爍
- if(gWorkLedTimes >= 200) //5ms中斷一次 200*5 = 1000ms 用示波器測試查看是否是1秒
- {
- gWorkLedTimes = 0;
- STATUS_LED = ~STATUS_LED; //1秒閃爍一下
- if(!bKeyNoPressFlag) // = FALSE 表示有按鍵按下
- {
- uMinutesNum = 0;
- uMinutesTime = 0;
- }
- ////////////////////////////////////////////以下是計時關機判斷/////////////////////////////////////////////
- if( uStandbyTime != 0 && bKeyNoPressFlag && !bAutoScanStartFlag) //關機時間為0 并且沒有按鍵按下
- {
- TimePowerOff(); //計時關機
- }
- }
- ///按鍵檢測
- if(uKeyDelay >= 3) //大概3*5ms*15檢測一次按鍵 大概0.5秒
- {
- uTemp = KeyScan();
- uKeyDelay = 0;
- if(uTemp == 0xAA || uTemp == 0x55 ) //按鍵按下或者彈起
- {
- // SendBufferOne(uKey_Data);
- // SendBufferOne(uTemp);
- KeyDealwith(uKey_Data,uTemp);
- WDT_CONTR = 0x3D; //chen++
- Delay100ms(5); //chen++
- WDT_CONTR = 0x3D; //chen++
- SOUND = 0; //chen++
- bKeyFlag = FALSE;
- uKey_Data = 0;
- }
- }
- //網(wǎng)線運行測試
- if(gNetSendRunTimes >= 200/uNetSpeed)
- {
- gNetSendRunTimes = 0;
- if(bNetSendRunFlag)
- {
- uTemp = 128/(pow(2,uNetSendRunLoop-1));
- SendOneData(uTemp); //74HC164
- uNetSendRunLoop = uNetSendRunLoop - 1;
- if(uNetSendRunLoop == 0)
- {
- uNetSendRunLoop = 8;
- }
- NetLineSendMode(TRUE, uNetMcuLedLoop);
- uNetMcuLedLoop = uNetMcuLedLoop + 1;
- if(uNetMcuLedLoop == 9)
- {
- uNetMcuLedLoop = 1;
- }
- }
- }
- //電池檢測
- //bPresetSet_Flag
- if(!bPresetSet_Flag)
- {
- if(!bPresetVideo_Flag)
- {
- if(gBatFlagTimes >= 150) //5ms中斷一次 200*5 = 1000ms
- {
- if(BAT_FLAG) //假設P3.2為高電平 表示有充電信號
- {
- DelayX1ms(2); //延時去抖
- if(BAT_FLAG)
- {
- bBatChargeFlag = TRUE;
- if(uInterfaceNum != 1 && uInterfaceNum != 10 && uInterfaceNum != 11 && !bLogoFlag && !bVideoGenerationFlag) //假設P3.2為高電平 表示有充電信號
- {
- //SendBufferOne(0x32);
- //顯示電池格數(shù)
- if(uBatGridNumTemp == 5)
- {
- uBatGridNumTemp = 0;
- }
- else
- {
- uBatGridNumTemp = uBatGridNumTemp+1;
- }
- TopRight(bAlarmSoundFlag, bKeyLockFlag, bPowerInOutFlag, uBatGridNumTemp); //充電顯示
- }
- }
- }
- else
- {
- bBatChargeFlag = FALSE;
- }
- if(bBatEmptyFlag && !bBatChargeFlag) //電池為空 并且沒有在充電 要求閃爍空電池圖標
- {
- if(!bFlashFlag)
- {
- bFlashFlag = TRUE;
- if(!bAlarmSoundFlag && !bKeyLockFlag) //當長按模式鍵時關閉報警聲音
- {
- SOUND = 1;
- }
- if(uInterfaceNum != 1 && !bLogoFlag && !bVideoGenerationFlag)
- {
- TopRight(bAlarmSoundFlag, bKeyLockFlag, bPowerInOutFlag, 0); //空
- }
- }
- else
- {
- bFlashFlag = FALSE;
- SOUND = 0;
- if(uInterfaceNum != 1 && !bLogoFlag && !bVideoGenerationFlag)
- {
- TopRight(bAlarmSoundFlag, bKeyLockFlag, bPowerInOutFlag, 6); // 6表示 下畫線 空
- }
- }
- }
- gBatFlagTimes = 0;
- }
- //電壓檢測
- if(uVolAdChangeTimes >= 100 ) //100*5ms執(zhí)行一次AD采樣。
- {
- VolAdChangeOpen(); //得到電壓
- DealWithVolAdDispBat(FALSE); //處理電壓報警 并顯示對于電池格數(shù)
- uVolAdChangeTimes = 0;
- }
- }
- }
- //串口數(shù)據(jù)接收顯示LED
- if(uGetComDataTimes >= 10 && bComuRecLedFlashFlag)
- {
- //顯示LED
- if(bLedStartFlag)
- {
- ComuRecLedFlash(uDataLedLoop);
- uDataLedLoop = uDataLedLoop + 1;
- if(uDataLedLoop == 9)
- {
- uDataLedLoop = 1;
- }
- }
- bLedStartFlag = FALSE;
- uGetComDataTimes = 0;
- }
- //球機地址自動停止命令
- if(bAutoScanFlag && bAutoScanStartFlag && !bAutoScanEndFlag) //當TRUE時發(fā)送命令
- {
- // uComSereialItem = 1; //測試
- if(!bAutoFirstFlag)
- {
- uAutoSendTempAddr = uAutoStartAddr;
- uAutoScanSendData1Time = 0;
- uAutoScanSendData1Time = 0;
- bAutoFirstFlag = TRUE;
- }
- //分4次發(fā)送命令 上 停止下 停止 時間/2 500ms為一單位發(fā)送 uAutoSpaceTime
- if(uAutoSendTempAddr<= uAutoEndAddr && !bAutoFullExitFlag)
- {
- if(uAutoRunTimes == 1)
- {
- DE = 1;
- AutoPtzUp(uAutoControlRuleItem);
- DE = 0;
- uAutoRunTimes = 2;
- uAutoScanSend1Times = 0;
- uAutoScanSendData1Time = 0;
- }
- if(uAutoRunTimes == 2)
- {
- if(uAutoScanSendData1Time>=100) //500ms
- {
- uAutoScanSendData1Time = 0;
- uAutoScanSend1Times = uAutoScanSend1Times+1;
- }
- if(uAutoScanSend1Times >= uAutoSpaceTime)
- {
- DE = 1;
- AutoStopPtzRunFun();
- Delay100ms(1);
- DE = 0;
- uAutoRunTimes = 3;
- uAutoScanSend2Times = 0;
- }
- }
- if(uAutoRunTimes == 3)
- {
- DE = 1;
- AutoPtzDown(uAutoControlRuleItem);
- DE = 0;
- uAutoRunTimes = 4;
- uAutoScanSend2Times = 0;
- uAutoScanSendData2Time = 0;
- }
- if(uAutoRunTimes == 4)
- {
- if(uAutoScanSendData2Time>=100) //500ms
- {
- uAutoScanSendData2Time = 0;
- uAutoScanSend2Times = uAutoScanSend2Times+1;
- }
- if(uAutoScanSend2Times >= uAutoSpaceTime)
- {
- DE = 1;
- AutoStopPtzRunFun();
- Delay100ms(1);
- DE = 0;
- uAutoRunTimes = 1;
- uAutoScanSend1Times = 0;
- if(uAutoSendTempAddr < 255)
- {
- uAutoSendTempAddr = uAutoSendTempAddr +1;
- }
- else
- {
- uAutoSendTempAddr = 255;
- bAutoFullExitFlag = TRUE;
- }
- }
- }
- }
- else
- {
- bAutoFirstFlag = FALSE;
- bAutoScanStartFlag = FALSE;
- bAutoScanEndFlag = FALSE;
- uAutoScanSend1Times = 0;
- uAutoScanSend2Times = 0;
- uAutoScanSendData1Time = 0;
- uAutoScanSendData2Time = 0;
-
- if(bAutoFullExitFlag)
- {
- uAutoSendTempAddr = 255;
- }
- else
- {
- uAutoSendTempAddr = uAutoSendTempAddr-1; //地址退出時要求減一
- }
-
- DE = 1;
- AutoStopPtzRunFun();
- DE = 0;
- bAutoFullExitFlag = FALSE;
-
- CD4053_A = 0; //chen++
- CD4053_B = 0; //視頻信號輸入
- CD4053_C = 0;
-
- //顯示相關信息 比方 地址 波特率等
- TopLeftNew(2,8); //球機地址自動燒描
- BottomLeft(0,0x073); //空
- BottomRight(2,0x076); //返回
- AutoScanStopDisplay(1, uAutoSendTempAddr,uAutoBaudRateItem,uAutoControlRuleItem);//自動掃描 結束
- bAutoScanStopFlag = TRUE;
-
- uInterfaceNum = 7;
- bManualStopFlag = TRUE; //手動停止自動掃描
- }
- }
- //球機地址自動掃描的手動停止命令
- if(bAutoScanFlag && bAutoScanEndFlag && !bAutoScanStartFlag)//停止命令
- {
- bAutoFirstFlag = FALSE;
- bAutoScanStartFlag = FALSE;
- bAutoScanEndFlag = FALSE;
- uAutoScanSend1Times = 0;
- uAutoScanSend2Times = 0;
- uAutoScanSendData1Time = 0;
- uAutoScanSendData2Time = 0;
- bAutoFullExitFlag = FALSE;
- DE = 1;
- AutoStopPtzRunFun();
- DE = 0;
- //顯示相關信息 比方 地址 波特率等
- TopLeftNew(2,8); //球機地址自動燒描
- BottomLeft(0,0x073); //空
- BottomRight(2,0x076); //返回
- if(!bManualStopFlag)
- {
- AutoScanStopDisplay(0, uAutoSendTempAddr,uAutoBaudRateItem,uAutoControlRuleItem);
- bManualStopFlag = FALSE; //手動停止自動掃描
- }
- else
- {
- AutoScanStopDisplay(1, uAutoSendTempAddr,uAutoBaudRateItem,uAutoControlRuleItem);
- bManualStopFlag = TRUE; //手動停止自動掃描
- }
- bAutoScanStopFlag = TRUE;
- uInterfaceNum = 7;
- }
- }//end if (!bPowerOnOffFlag)
- _nop_();
- _nop_();
- WDT_CONTR = 0x3D;
- _nop_();
- _nop_();
- WDT_CONTR = 0x3D;}
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- }
- /****************************初始化函數(shù)****************************/
- /*函數(shù)原型:MainInit(void)
- /*函數(shù)功能:對CPU各IO口及變量做初始化
- /*輸入?yún)?shù):無
- /*輸出參數(shù):無
- /*調(diào)用模塊:無
- /*建立時間:2009/06/20
- /*作者:zcq
- /*****************************************************************/
- void MainInit(void)
- {
- //CPU IO口配置
- P4SW = 0x70; //設置P4.4為IO口 P4.5為IO口 P4.6為IO口
-
- P0M0 = 0x00; //原來是F0
- P0M1 = 0x00; //P0為準雙向口,用于4X4鍵盤檢測
-
- // P1口設置在AD.C中 設置
-
- P2M0 = 0x0A; // P2.0 = BAT_FLAG 設置為高阻輸入 (充電檢測)
- P2M1 = 0x01; // P2.1 = LCD_ON (LCD電源開關)
- // P2.3 = OPEN 推挽輸出 (MCU電源維持開關)
-
- P3M0 = 0xB8; // P3.3 = LCD_KEY2 開始為推挽輸出(未用)
- // P3.4 = DE 開始為推挽輸出(RS485)
- P3M1 = 0x40; // P3.5 = STATUS 開始為推挽輸出(運行狀態(tài)指示)
- // P3.6 = KEY_FLAG 設置為高阻輸入(PowerOn按鍵檢測)
- // P3.7 = IN_OUT 開始為推挽輸出(繼電器控制)
-
- P4M0 = 0x84; // P4.2 = CS 推挽輸出(片選MB90092)
- P4M1 = 0x00; // P4.7 = LCD_KYE1 推挽輸出(RST)量產(chǎn)要改成P4.3 P4M0 = 0xC0;
-
- P5M0 = 0x02; // P5.2 = DAT_164; P5.1 = SOUND 推挽輸出
- P5M1 = 0x00; // P5.3 = CLK_164;
-
- IN_OUT = 0; //關閉繼電器
- LCD_ON = 0; //先關閉LCD電源
- OPEN = 0; //先關閉電源
- SOUND = 0; //關閉BUZZ
- CLK = 1; //MB90092 CLK先置高
- /*
- //DelayX1ms(10);
- CLK = 1; //MB90092 CLK先置高
- MainScreen_Init (B_COLOR_WHITE); //MB90092初始化
- MB90092_ClearScreen (); //
- //DelayX1ms(10);
- MainLogo(); //測試LCD顯示
- */
- //CD4053_A = 0; //該程序已經(jīng)跳過線 登量產(chǎn)時改過來
-
- CD4053_A = 0; //chen++
- CD4053_C = 0;
- CD4053_B = 0;
- /*
- Init74HC164();
-
- AUXR = 0x00;
- InitTimer();
- InitAdRegister();
- uBaudRateItem = 3;
- SerialPortOneInitial(uBaudRateItem); //開始為2400 uBaudRateItem= 3
- SerialPortTwoInitial(uBaudRateItem); //開始為2400
- InitKeyData(); //初始化按鍵數(shù)據(jù)
- */
- //中斷優(yōu)先級設置 暫時省略
- ET1 =0; //關閉Timer1中斷
-
- //EADC = 1;
- //EADC_SPI = 1;
- //IT1 = 0; //外部中斷1為邊沿觸發(fā) = 1 = 0電平觸發(fā) TCON 復位 =0x00
- //EX1 = 0; //關外部中斷1
- //IT0 = 1; //外部中斷0 下降沿觸發(fā) = 1 = 0電平觸發(fā)
- //EX0 = 0; //開外部中斷0
- RS1=0;
- RS0=0;
-
- //設置優(yōu)先級
- //串口2中斷最高
- IP2 = 0x01; //PS2H = 1;
- IPH2 = 0x01; //PS2 = 1;
-
- IE2 = 0x00; //關閉串口2中斷
- ES = 0; //關閉串口1中斷
-
- return;
- }
- /***************************************用戶運行環(huán)境設置函數(shù)******************************************/
- /*函數(shù)原型:void UserSetup(void)
- /*函數(shù)功能:用戶數(shù)據(jù)相關變量初始化
- /*輸入?yún)?shù):無
- /*輸出參數(shù):無
- /*調(diào)用模塊:無
- /*建立時間:2009/06/20
- /*作者:zcq
- //*****************************************************************************************************/
- void UserSetup(void)
- {
- uPowerKeyTime = 0; //電源按鍵長按時間
-
- uInterfaceNum = 0;
-
- gPowerOnOffTimes = 0;
- gKeyNoPressTimes = 0;
- bPowerOnOffFlag = TRUE;
- bPowerOnFlag = FALSE; //開機標志 = TRUE 表示開機
- bPowerOffFlag= FALSE;
-
- uRcTimes = 0;
- gWorkLedTimes = 0; //初始化
- gBatFlagTimes = 0;
- bBatChargeFlag= FALSE;
-
- // uBatFullRunTimes = 0; //滿電池狀態(tài)下的充電圖標循環(huán)次數(shù)
- // bBatFullFlag = FALSE; //電池滿標志
- bBatEmptyFlag= FALSE;
- bFlashFlag = FALSE;
-
- uVolAdChangeTimes = 0;
- uKeyDelay = 0;
- bKeyFlag = FALSE;
- uLoop164 = 0;
- DE = 0;
- STATUS_LED = 0; //關閉狀態(tài)燈
- IN_OUT = 0; //關閉繼電器
-
- //菜單相關
- bLogoFlag = TRUE;
- bPowerOffMMIFlag = FALSE;
- bMainMenuFlag = FALSE;
- bSysSetupFlag = FALSE;
- bPreset_Page = 0;
- bPresetVideo_Flag = 0;
- bPresetSet_Flag = 0;
- uPtzOtherFunNum_Preset = 0;
-
- //2 PTZ云臺合視頻輸入控制
- bModeKeyVideoFlag = FALSE;
-
- bPtzVideoFlag = FALSE; //主控制口
-
- bVideoSignInFlag = FALSE;
- bVideoSignInGenFlag = FALSE; //已經(jīng)有視頻信號 標志
-
- bOtherFunFlag = FALSE;
-
- bAutoScanFlag = FALSE;
- bAutoScanStartFlag= FALSE;
- bAutoScanEndFlag = FALSE;
- bAutoFirstFlag = FALSE;
- bAutoFullExitFlag = FALSE;
- bAutoScanStopFlag = FALSE;
- bManualStopFlag = FALSE; //手動停止自動掃描
-
- bNetSendBarFlag = FALSE;
- bNetSendRunFlag = FALSE;
- bVideoGenerationFlag = FALSE;
-
- bComuDataBarFlag = FALSE; //通信數(shù)據(jù)測試功能界面標志
- bComuStartRecFlag = FALSE;
- bComuStopRecFlag = FALSE;
- bComuDispDataFlag = FALSE;
-
- uDataLedLoop = 0;
- bComuRecLedFlashFlag = FALSE;
- bLedStartFlag = FALSE;
-
- bComuRunFlag = FALSE; //通信數(shù)據(jù)開始分析標志
- bPowerManageBarFlag = FALSE;
-
- bAboutHelpBarFlag = FALSE;
-
- uPowerManageBarTimes = 1;//默認為電源輸入方式
-
- uMainMenuTimes = 1; //表示進入主菜單后是第幾條bar
- uSysSetupTimes = 1; //表示進入系統(tǒng)參數(shù)設置后是第幾條bar
- uControlRuleItem = 1;
- uComSereialItem = 2; //2表示485
- uBaudRateItem = 3; //默認2400bps
- uRunSpeedData = 0x30; //運行速度 0-3F
- uStandbyTime = 2; //待機時間 0到 30分鐘 0表示不關機 2*5 = 10分鐘
- uNetSpeed = 3; //網(wǎng)線速度 1到5 1表示慢 5表示快
- uLcdBright = 10; //屏幕亮度 1到15
- uVideoGenTimes = 0; //開始為0
-
- uPtzMainBarNum = 1; //云臺球機和視頻輸入控制 界面的第幾
- uPresetAddr = 0; //預置位地址
- uPtzOtherFunNum = 1;
-
- uAutoScanSetupTimes = 1; //表示進入AUTOSCAN菜單后是第幾條bar
- uAutoBaudRateItem = 3; //自動掃描波特率 默認2400bps
- uAutoControlRuleItem = 1; //自動掃描控制協(xié)議是第幾個
- uAutoStartAddr = 0; //開始地址
- uAutoEndAddr = 255; //結束地址
- uAutoSpaceTime = 3; //間隔時間
- uAutoScanSendData1Time = 0;
- uAutoScanSend1Times = 0;
- uAutoScanSendData2Time = 0;
- uAutoScanSend2Times = 0;
- uAutoSendTempAddr = 0;
- uAutoRunTimes = 1; //共4部執(zhí)行 1 UP STOP DOWN STOP
-
-
- uVideoSignInAddr = 0x00; //視頻輸入時的 云臺地址
- uVideoSignInType = 1; //視頻格式 = 1 AUTO =2 PAL =3 NTSC
- uVideoSignInBarNum = 1; //選中的是數(shù)字 默認為0
- gNetSendRunTimes = 0; //網(wǎng)線發(fā)送測試時間基數(shù) 計數(shù)
- uNetSendRunLoop = 8;
- uNetMcuLedLoop = 1;
-
- bPowerInOutFlag = FALSE; //接口圖標
- bKeyLockFlag = FALSE; //鍵盤鎖圖標 表示未鎖
- bKeyIconFlag = FALSE;
- bAlarmSoundFlag = FALSE;
- bAlarmIconFlag = FALSE;
-
- // bSoundFindLineFlag = FALSE; //聲音圖標
- uBatGridNum = 0; //電池格式
- uBatGridNumTemp = 0; //電池格式零時存放
-
- uGetSerialDataNum = 0;
- uGetComDataTimes = 0;
- uComuPageNum = 0; //顯示當前頁數(shù) ES
-
- uMinutesTime = 0;
- uMinutesNum = 0;
- bKeyNoPressFlag = TRUE;
-
- //鍵盤上鎖標志
- bLockDisplayFlag = FALSE; //鍵盤上鎖標志
- bLockTimeFlag = FALSE;
- uLockDisplayTime = 0;
- uLockDisplayTimes = 0;
-
- }
- /***************************************初始化定時器1函數(shù)*********************************************/
- /*函數(shù)原型:void InitTimer(void)
- /*函數(shù)功能:用戶數(shù)據(jù)相關變量初始化
- /*輸入?yún)?shù):無
- /*輸出參數(shù):無
- /*調(diào)用模塊:無
- /*建立時間:2009/10/20
- /*作者:zcq
- //*****************************************************************************************************/
- void InitTimer(void)
- {
- AUXR &= T0_12_DIV_AND; //TIME0's clock : fosc dived by 12.
- // AUXR |= T0_01_DIV_OR; //TIME0's clock : fosc dived by 1. 1T模式
-
- TMOD = 0x21; //time1 is mode 2(auto reload) timer0 is mode 1(16bits)
-
- TL0 = 0x00; //12/FOSC = 機器周期 TC= 5ms = 5000/0.65104166666666666666666666666667 = 7680 2^16 - 7680 =
- TH0 = 0xE2; //57856 = 0xE200;
-
- ET0 = 1; //打開定時器0中斷
- TR0 = 1; //啟動Timer0開始計數(shù)
- return;
- }
- //開機函數(shù)
- void PowerOn(void)
- {
- EA = 0; //初始化完成前,先關閉總中斷
- IN_OUT = 0; //先關閉繼電器
- LCD_ON = 0; //先關閉LCD電源
- OPEN = 0; //先關閉電源
- SOUND = 0; //關閉BUZZ
- STATUS_LED = 0; //關閉狀態(tài)燈
- MainInit(); //相關寄存器初始化
- UserSetup(); //用戶參數(shù)初始化
- EA = 0; //初始化完成前,先關閉總中斷
- Delay100ms(10); //等等電源穩(wěn)定
- CLK = 1; //MB90092 CLK先置高
- Delay100ms(10); //等等電源穩(wěn)定
- WDT_CONTR = 0x3D;
- bPowerOnOffFlag = TRUE;
- EA = 0; //初始化完成前,先關閉總中斷
- LCD_ON = 0; //先關閉LCD電源
- OPEN = 0; //先關閉電源
- LCD_ON = 0; //先關閉LCD電源
- WDT_CONTR = 0x3D;
- //檢測是否有按鍵 //by zcq 2010 02 03
- do
- {
- _nop_();
- _nop_();
- Delay100ms(5); //等等電源穩(wěn)定
- _nop_();
- if(KEY_FLAG)
- {
- Delay100ms(5); //等等電源穩(wěn)定
- if(KEY_FLAG)
- {
- OPEN = 1;
- LCD_ON = 1; //打開LCD電源
-
- Init74HC164();
- AUXR = 0x00;
- InitTimer();
- InitAdRegister();
- uBaudRateItem = 3;
- SerialPortOneInitial(uBaudRateItem); //開始為2400 uBaudRateItem= 3
- SerialPortTwoInitial(uBaudRateItem); //開始為2400
- InitKeyData(); //初始化按鍵數(shù)據(jù)
- //DelayX1ms(10);
- CLK = 1; //MB90092 CLK先置高
- MainScreen_Init (B_COLOR_WHITE); //MB90092初始化
- MB90092_ClearScreen (); //
- //DelayX1ms(10);
- MainLogo(); //顯示LOGO
- SOUND = SOUND_ON;
- uInterfaceNum = 1; //公司標志界面為1
- bPowerOffMMIFlag = FALSE;
- bLogoFlag = TRUE;
- bMainMenuFlag = FALSE;
- bSysSetupFlag = FALSE;
- bPtzVideoFlag = FALSE;
- bVideoSignInFlag = FALSE; //視頻信號輸入模式
- bVideoSignInGenFlag = FALSE; //已經(jīng)有視頻信號 標志
- bAutoScanFlag = FALSE;
- bOtherFunFlag = FALSE;
- bNetSendBarFlag = FALSE;
- bNetSendRunFlag = FALSE;
- bVideoGenerationFlag = FALSE;
- bComuDataBarFlag = FALSE;
- bPowerManageBarFlag = FALSE;
- bAboutHelpBarFlag = FALSE;
-
- bAutoScanStopFlag = FALSE;
-
-
- VolAdChangeOpen(); //得到電壓
- DealWithVolAdDispBat(TRUE);
-
- uPowerKeyTime = 0;
- gPowerOnOffTimes = 0;
- gKeyNoPressTimes = 0;
-
- bPowerOnFlag = TRUE;
- bPowerOffFlag = TRUE;
- bPowerOnOffFlag = FALSE;
-
- LCD_ON = 1; //打開LCD電源
- Delay100ms(5);
- WDT_CONTR = 0x3D;
- OPEN = 1;
- LCD_ON = 1;
- Delay100ms(5);
- WDT_CONTR = 0x3D;
- OPEN = 1;
- LCD_ON = 1;
- Delay100ms(5);
- WDT_CONTR = 0x3D;
- OPEN = 1;
- LCD_ON = 1;
- Delay100ms(5);
- WDT_CONTR = 0x3D;
- SOUND = SOUND_OFF;
- //chen++1 自動從公司標識頁進入主菜單頁。
- Delay100ms(50);
- WDT_CONTR = 0x3D;
- Delay100ms(50);
- WDT_CONTR = 0x3D;
- RightSoftKeyFun();
- //chen++2
- _nop_();
- _nop_();
- }
- }
- _nop_();
- _nop_();
- WDT_CONTR = 0x3D;
- _nop_();
- _nop_();
- }
- while(bPowerOnOffFlag);
- return;
- }
- //關機函數(shù)
- void PowerOff(void)
- {
- bit bFlag;
- if(KEY_FLAG)
- {
- gKeyNoPressTimes = 0;
- }
- if(!KEY_FLAG && gKeyNoPressTimes >= 150) //表示彈起按鍵最少 100*5 = 500ms
- {
- bPowerOffFlag = FALSE;
- bPowerOnOffFlag = FALSE;
- gPowerOnOffTimes = 0;
- uPowerKeyTime = 0;
- gKeyNoPressTimes = 0;
- }
- if(!bPowerOffFlag && !bPowerOffMMIFlag)
- {
- if(gPowerOnOffTimes >= 50 && KEY_FLAG) //1秒 檢測 當KEY_FLAG = 1 表示有按鍵按下
- {
- uPowerKeyTime = uPowerKeyTime+1;
- gPowerOnOffTimes = 0;
- }
- if(uPowerKeyTime >= 5 ) //3秒 長按
- {
- //切換到關機界面
- SOUND = SOUND_ON;
-
- CD4053_A = 0; //chen++
- CD4053_C = 0;
- CD4053_B = 0;
-
- if(uInterfaceNum != 1 && uInterfaceNum != 10 && uInterfaceNum != 11)
- {
- // TopLeft(0,0);
- bFlag = FALSE;
- }
- else
- {
- bFlag = TRUE;
- }
- BottomLeft(2,0x140); //確定
- BottomRight(2,0x076); //返回
- PowerOffMMI(bFlag);
- /* if(uMainMenuTimes == 4 && bVideoGenerationFlag)
- {
- TopRight(bAlarmSoundFlag, bKeyLockFlag, bPowerInOutFlag, uBatGridNumTemp); //1格電池
- }
- */
- bPowerOffMMIFlag = TRUE;
- bLogoFlag = FALSE;
- bMainMenuFlag = FALSE;
- bSysSetupFlag = FALSE;
- bPtzVideoFlag = FALSE;
-
- bModeKeyVideoFlag = FALSE;
-
- bVideoSignInFlag = FALSE; //視頻信號輸入模式
- bVideoSignInGenFlag = FALSE; //已經(jīng)有視頻信號 標志
-
- if(bAutoScanStopFlag) //有
- {
- bAutoScanFlag = bAutoScanFlag;
- }
- else
- {
- bAutoScanFlag = FALSE;
- }
- bOtherFunFlag = FALSE;
- bNetSendBarFlag = FALSE;
- bNetSendRunFlag = FALSE;
- bVideoGenerationFlag = FALSE;
- bComuDataBarFlag = FALSE;
- bPowerManageBarFlag = FALSE;
- bAboutHelpBarFlag = FALSE;
- bAutoScanStopFlag = FALSE;
- Delay100ms(5);
- WDT_CONTR = 0x3D;
- OPEN = 1;
- LCD_ON = 1;
- Delay100ms(5);
- WDT_CONTR = 0x3D;
- OPEN = 1;
- LCD_ON = 1;
- Delay100ms(5);
- WDT_CONTR = 0x3D;
- OPEN = 1;
- SOUND = SOUND_OFF;
- }
- }
- return;
- }
- //計時關機 函數(shù)
- void TimePowerOff(void)
- {
- uMinutesTime = uMinutesTime +1;
- if(uMinutesTime>= 60)
- {
- uMinutesNum = uMinutesNum +1;
- uMinutesTime = 0;
- }
- if(uMinutesNum >= uStandbyTime*5)
- {
- EA = 0;
- SOUND = SOUND_ON;
- uMinutesNum = 0;
- uMinutesNum = 0;
- uPowerKeyTime = 0;
- bPowerOnFlag = TRUE;
- bPowerOffFlag = FALSE;
- bPowerOnOffFlag = TRUE;
- WDT_CONTR = 0x3D;
- WDT_CONTR = 0x3D;
- Delay100ms(20);
- WDT_CONTR = 0x3D;
- Delay100ms(20);
- WDT_CONTR = 0x3D;
- Delay100ms(20);
- WDT_CONTR = 0x3D;
- LCD_ON = 0;
- Delay100ms(5);
- OPEN = 0;
- WDT_CONTR = 0x3D;
- Delay100ms(10);
- WDT_CONTR = 0x3D;
- SOUND = SOUND_OFF;
- OPEN = 0;
- LCD_ON = 0;
- OPEN = 0;
- while(1)
- {
- _nop_();
- _nop_();
- WDT_CONTR = 0x3D;
- _nop_();
- _nop_();
- OPEN = 0;
- LCD_ON = 0;
- OPEN = 0;
- }
- EA = 1;
- }
- }
- //處理電壓 并顯示電池格數(shù)
- void DealWithVolAdDispBat(bit bDispBar)
- {
- unsigned int iTemp = 0;
- unsigned int iResult = 0;
- float fResult = 0.0;
- unsigned char result[7];
-
-
- //計算并報警
- iTemp = 0;
- iTemp = (unsigned int)(AD_channel_result[0]-0x30)*1000;
- iTemp+= (unsigned int)(AD_channel_result[1]-0x30)*100;
- iTemp+= (unsigned int)(AD_channel_result[2]-0x30)*10;
- iTemp+= (unsigned int)(AD_channel_result[3]-0x30)*1;
- iTemp = iTemp;
- fResult = (float)(iTemp);
- iResult = (unsigned int)(fResult*2.681);
-
- /*
- SendBufferOne('*');
- SendBufferOne(AD_channel_result[0]);
- SendBufferOne(AD_channel_result[1]);
- SendBufferOne(AD_channel_result[2]);
- SendBufferOne(AD_channel_result[3]);
- SendBufferOne('*');
- */
- iResult = iResult + 700; //chen++ 修正,計入串聯(lián)二極管的管壓降 2013-01-30
-
- //轉化成能識別的電壓 0.373 (分壓比) 當為 4.525時。12.13 3.333 是關閉 3.400為低電
- if(iResult<9800) //9V多
- {
- uBatGridNum = 0;
- bBatEmptyFlag = TRUE;
- // bBatFullFlag = FALSE;
- }
- if(iResult >= 9800 && iResult < 10800)
- {
- uBatGridNum = 1;
- bBatEmptyFlag = FALSE;
- // bBatFullFlag = FALSE;
-
- }
- if(iResult >= 10800 && iResult < 11200)
- {
- uBatGridNum = 2;
- bBatEmptyFlag = FALSE;
- // bBatFullFlag = FALSE;
- }
- if(iResult >= 11200 && iResult < 11500)
- {
- uBatGridNum = 3;
- bBatEmptyFlag = FALSE;
- // bBatFullFlag = FALSE;
- }
- if(iResult >= 11500 && iResult < 11800)
- {
- uBatGridNum = 4;
- bBatEmptyFlag = FALSE;
- // bBatFullFlag = FALSE;
- }
- if(iResult>= 11800)//>11800 表示電壓滿格
- {
- uBatGridNum = 5;
- bBatEmptyFlag = FALSE;
- // bBatFullFlag = TRUE;//電池滿標志
- }
- if(uInterfaceNum != 1 && uInterfaceNum != 10 && uInterfaceNum != 11 && !BAT_FLAG && !bDispBar && !bLogoFlag && !bVideoGenerationFlag)
- {
- //chen++
- if(!bPreset_Page)
- {
- TopRight(bAlarmSoundFlag, bKeyLockFlag, bPowerInOutFlag, uBatGridNum); //?格電池
- }
- }
- //把采樣值轉化為有用電壓信號
- uVolData = 0;
- result[0] = iResult/10000+0x30;
- result[1] = iResult%10000/1000+0x30;
- result[2] = iResult%1000/100+0x30;
- result[3] = iResult%100/10+0x30;
- result[4] = iResult%10+0x30;
- result[5] = '\m';
- result[6] = '\V';
- result[7] = '\0';
- uVolData = result;
-
- //如果在電源管理界面 刷新電池電壓顯示值
- if(uMainMenuTimes == 6 && !bMainMenuFlag && bPowerManageBarFlag)
- {
- PowerManageBarFun(uPowerManageBarTimes, uVolData); //網(wǎng)線連接測試功能 選擇
- }
- return;
- }
- //按鍵處理函數(shù)
- void KeyDealwith(unsigned char uDealData, unsigned char uKeyType)
- {
- if(uKeyType == 0xAA)
- {
- bKeyNoPressFlag = FALSE;
- uMinutesNum = 0;
- uMinutesTime = 0;
- if(!bKeyLockFlag && uDealData != 0x81)
- {
- SOUND = 1;
- }
-
- switch (uDealData)
- {
- case 0x11://焦距近
- {
- if(bVideoSignInGenFlag || bPresetVideo_Flag)
- {
- DE = 1;
- PtzFocusNear(uControlRuleItem);
- DE = 0;
- }
- break;
- }
- case 0x12://光圈開
- {
- if(bVideoSignInGenFlag || bPresetVideo_Flag)
- {
- DE = 1;
- PtzIrisOpen(uControlRuleItem);
- DE = 0;
- }
- break;
- }
- case 0x14://左軟鍵盤
- {
- LeftSoftKeyFun();
- break;
- }
- case 0x18://向上
- {
- if(bVideoSignInGenFlag || bPresetVideo_Flag)
- {
- DE = 1;
- PtzUp(uControlRuleItem);
- DE = 0;
- }
- else
- {
- DownUpItem(FALSE);
- }
- break;
- }
- case 0x21://焦距遠
- {
- if(bVideoSignInGenFlag || bPresetVideo_Flag)
- {
- DE = 1;
- PtzFocusFar(uControlRuleItem);
- DE = 0;
- }
- break;
- }
- case 0x22://光圈關
- {
- if(bVideoSignInGenFlag || bPresetVideo_Flag)
- {
- DE = 1;
- PtzIrisClose(uControlRuleItem);
- DE = 0;
- }
- break;
- }
- case 0x24://主菜單
- {
- MainMenuKeyFun();
- break;
- }
- case 0x28://向左鍵
- {
- if(bVideoSignInGenFlag || bPresetVideo_Flag)
- {
- DE = 1;
- PtzLeft(uControlRuleItem);
- DE = 0;
- }
- else
- {
- LeftRightItem(FALSE);
- }
- break;
- }
- case 0x41://模式鍵 主要切換視頻顯示方式
- {
- if(bPreset_Page != 1)
- {
- ModeKeyFun();
- /*
- if(uInterfaceNum != 1 && !bLogoFlag && !bVideoGenerationFlag)
- {
- SOUND = 1;
- if(!bAlarmIconFlag)
- {
- bAlarmSoundFlag = TRUE;
- bAlarmIconFlag = TRUE;
- }
- else
- {
- bAlarmSoundFlag = FALSE;
- bAlarmIconFlag = FALSE;
- }
- TopRight(bAlarmSoundFlag, bKeyLockFlag, bPowerInOutFlag, uBatGridNum);
- }
- */
- }
- break;
- }
- case 0x42://放大 鏡頭近
- {
- if(bVideoSignInGenFlag || bPresetVideo_Flag)
- {
- DE = 1;
- PtzZoomWide(uControlRuleItem);
- DE = 0;
- }
- break;
- }
- case 0x44://向下鍵
- {
- //chen--g
- if(bVideoSignInGenFlag || bPresetVideo_Flag) //在視頻輸入或 預設值視頻 界面下
- {
- DE = 1;
- PtzDown(uControlRuleItem);
- DE = 0;
- }
- else
- {
- DownUpItem(TRUE);
- }
- break;
- }
- case 0x48://確定鍵
- {
- LeftSoftKeyFun(); //確定鍵 有多個功能
- break;
- }
- case 0x81://鎖定鍵 用于鎖定鍵盤 或者關閉報警聲音
- {
- SOUND = 1;
- if(!bKeyIconFlag)
- {
- bKeyLockFlag = TRUE;
- bKeyIconFlag = TRUE;
- }
- else
- {
- bKeyLockFlag = FALSE;
- bKeyIconFlag = FALSE;
- }
- if(uInterfaceNum != 1 && !bLogoFlag && !bVideoGenerationFlag)
- {
- TopRight(bAlarmSoundFlag, bKeyLockFlag, bPowerInOutFlag, uBatGridNum); //1格電池
- }
- break;
- }
- case 0x82://縮小 鏡頭遠
- {
-
- if(bVideoSignInGenFlag || bPresetVideo_Flag)
- {
- DE = 1;
- PtzZoomTele(uControlRuleItem);
- DE = 0;
- }
- break;
- }
- case 0x84://向右鍵
- {
-
- if(bVideoSignInGenFlag || bPresetVideo_Flag)
- {
- DE = 1;
- PtzRight(uControlRuleItem);
- DE = 0;
- }
- else
- {
- LeftRightItem(TRUE);
- }
- break;
- }
- case 0x88://右軟鍵盤 返回鍵
- {
- RightSoftKeyFun();
- break;
- }
- default: //無按鍵 或者同時按鍵無效
- break;
- }
- }
- else if(uKeyType == 0x55)
- {
- bKeyNoPressFlag = TRUE; //按鍵彈起后,球機工作停止
- uMinutesNum = 0;
- uMinutesTime = 0;
- switch (uDealData)
- {
- case 0x18://上
- case 0x44://下
- case 0x28://左
- case 0x84://右
- case 0x12://光圈開
- case 0x22://光圈關
- case 0x42://鏡頭近
- case 0x82://鏡頭遠
- case 0x11://聚焦近
- case 0x21://聚焦遠
- {
- if(bVideoSignInGenFlag || bPresetVideo_Flag)
- {
- DE = 1;
- StopPtzRunFun(); //停止PTZ命令
- DE = 0;
- }
- SOUND = 0;
- break;
- }
- case 0x14://左軟鍵
- case 0x88://右軟鍵
- case 0x48://確定
- case 0x24://主菜單
- case 0x41://模式鍵
- {
- SOUND = 0;
- break;
- }
- case 0x81://鎖定鍵
- {
- SOUND = 0;
- break;
- }
- default: //無按鍵 或者同時按鍵無效
- break;
- }
- }
- else
- {
- _nop_();
- }
- return;
- }
- //模式按鍵函數(shù)
- void ModeKeyFun(void)
- {
- CD4053_A = 0; //chen++
- CD4053_B = 0; //OSD - LCD
- CD4053_C = 0;
- if(bAutoScanStartFlag) //球機地址自動掃描,跳出
- {
- return;
- }
- if(!bModeKeyVideoFlag)
- {
- TopRight(bAlarmSoundFlag, bKeyLockFlag, bPowerInOutFlag, uBatGridNumTemp);
- uInterfaceNum = 5;
- MMI_DisplayFun(7);
- uMainMenuTimes = 2;
- uPtzMainBarNum = 1;
- return;
- }
- if(uMainMenuTimes == 2 && uPtzMainBarNum == 1 && bVideoSignInGenFlag && !bVideoSignInFlag)
- {
- CD4053_B = 0; //OSD - LCD
- AddressSave = uVideoSignInAddr; //保存485 的發(fā)送地址
-
- bVideoSignInGenFlag = FALSE; //已經(jīng)有視頻信號
- bVideoSignInFlag = TRUE;
- return;
- }
- if(uMainMenuTimes == 2 && uPtzMainBarNum == 1 && !bVideoSignInGenFlag && bVideoSignInFlag)
- {
- CD4053_B = 1; //視頻信號輸入
- //保存485 的發(fā)送地址
- AddressSave = uVideoSignInAddr;
-
- bVideoSignInGenFlag = TRUE; //已經(jīng)有視頻信號
- bVideoSignInFlag = FALSE;
- return;
- }
- }
- //主菜單
- void MainMenuKeyFun(void)
- {
- if(!bMainMenuFlag && !bAutoScanStartFlag && !bVideoSignInGenFlag)
- {
- MB90092_ClearScreen();
-
- CD4053_A = 0; //chen++
- CD4053_B = 0; //OSD - LCD
- CD4053_C = 0;
-
- TopLeft(3, 0x070); //主菜單
- TopRight(bAlarmSoundFlag, bKeyLockFlag, bPowerInOutFlag, uBatGridNum); //1格電池
- //chen--g BottomLeft(2,0x074); //選擇
- BottomLeft(2,0x140); //確定
- //chen--g BottomRight(2,0x076); //返回
- BottomRight(0,0x078); //chen++ ---
- MainMenu(uMainMenuTimes);
- bPowerOffMMIFlag = FALSE;
- bLogoFlag = FALSE;
- bMainMenuFlag = TRUE;
- bSysSetupFlag = FALSE;
- bPtzVideoFlag = FALSE;
- bVideoSignInFlag = FALSE; //視頻信號輸入模式
- bVideoSignInGenFlag = FALSE; //已經(jīng)有視頻信號 標志
- bAutoScanFlag = FALSE;
- bOtherFunFlag = FALSE;
- bNetSendBarFlag = FALSE;
- bNetSendRunFlag = FALSE;
- bVideoGenerationFlag = FALSE;
-
- bComuDataBarFlag = FALSE; //通信數(shù)據(jù)測試功能
- bComuStartRecFlag= FALSE;
- bComuStopRecFlag = FALSE;
- bComuDispDataFlag= FALSE;
-
- bPowerManageBarFlag = FALSE;
- bAboutHelpBarFlag = FALSE;
-
- //其他參數(shù)設置
- uNetSendRunLoop = 8;
- uNetMcuLedLoop = 1;
-
- uVideoGenTimes = 1;
-
- uInterfaceNum = 2;
- }
- }
- //右軟件功能函數(shù)
- void RightSoftKeyFun(void)
- {
- //chen++ 預置界面 返回
- if(bPreset_Page == 1)
- {
- if(bPresetVideo_Flag ==1)
- {
- bPreset_Page = 0;
- bPresetVideo_Flag = 0;
- bPresetSet_Flag = 0;
- MB90092_WriteByte(0xA2|0);//command 4,內(nèi)、外同步選擇 SYN_INTERNAL = 0、4
- MB90092_WriteByte(0x2B);
- CD4053_A = 0;
- CD4053_B = 0;
- CD4053_C = 0;
- MB90092_ClearScreen();
-
- uInterfaceNum = 6;
- uPtzOtherFunNum = 13;
- MMI_DisplayFun(9);
- //chen test MB90092_DisChar (7,2,RingForm_adr,2,B_COLOR_CYAN,0,0);
- }
- else
- {
-
- bPreset_Page = 1;
- bPresetVideo_Flag = 1;
- bPresetSet_Flag = 0;
- MB90092_WriteByte(0xA2|4);//command 4,內(nèi)、外同步選擇 SYN_INTERNAL = 0內(nèi)、4外
- MB90092_WriteByte(0x2B);
- CD4053_A = 0;
- CD4053_B = 0;
- CD4053_C = 1;
- MB90092_ClearScreen();
- uPtzOtherFunNum = 13;
- //chen test MB90092_DisChar (7,3,RoundForm_adr,2,B_COLOR_CYAN,0,0);
-
- }
- return;
- }
- //bit bFlag;
- if(uPtzMainBarNum == 3 && bAutoScanFlag && !bAutoScanEndFlag && bAutoScanStartFlag)
- {
- return;
- }
- //;從其他多個界面返回到主菜單
- if((bPowerOffMMIFlag && uInterfaceNum == 2 && !bPowerManageBarFlag) || bLogoFlag || bSysSetupFlag || bPtzVideoFlag || bVideoGenerationFlag || bComuDataBarFlag || bPowerManageBarFlag ||bAboutHelpBarFlag)
- {
- uInterfaceNum = 2;
- MMI_DisplayFun(2); //主菜單
- return;
- }
- //chen++ 從網(wǎng)線測試功能各界面返回到主菜單
- //chen++ bNetSendBarFlag 標志,=1代表返回到主菜單。 =0,不返回
- if(bNetSendBarFlag)
- {
- uNetSendRunLoop = 8;
- uNetMcuLedLoop = 1;
- SendOneData(0x00); //74HC164
- NetLineSendMode(0, uNetMcuLedLoop); //先靜止
-
- MMI_EnableFlag();
-
- bNetSendBarFlag = TRUE;
- uInterfaceNum = 2;
- MMI_DisplayFun(2); //主菜單
- return;
- }
- //Logo
- //chen--g if((bPowerOffMMIFlag && uInterfaceNum == 1)|| bMainMenuFlag)
- //chen++1
- if(bPowerOffMMIFlag && uInterfaceNum == 1)
- //chen++2
- {
- uInterfaceNum = 1;
- MMI_DisplayFun(1); //Logo
- return;
- }
- //2 云臺球機和視頻輸入控制
- if(bVideoSignInFlag || (!bPowerOffMMIFlag && bAutoScanFlag && !bAutoScanStopFlag) || bOtherFunFlag)
- {
- uInterfaceNum = 4;
- //chen--g MMI_DisplayFun(4); //4 視頻二級菜單 (三行)
- MMI_DisplayFun(2); //2 主菜單
- return;
- }
- //球機地址自動停止
- if(bPowerOffMMIFlag && uInterfaceNum == 7)
- {
- uInterfaceNum = 7;
- MMI_DisplayFun(10);
- return;
- }
- //球機地址自動掃描
- if((bPowerOffMMIFlag && uInterfaceNum == 8) || (bAutoScanStopFlag && bAutoScanFlag))
- {
- uInterfaceNum = 8;
- MMI_DisplayFun(12);
-
- bManualStopFlag = FALSE; //手動停止自動掃描標志
- return;
- }
-
- if(bPowerOffMMIFlag && uInterfaceNum == 3)
- {
- uInterfaceNum = 3;
- MMI_DisplayFun(3);
- return;
- }
- if(bPowerOffMMIFlag && uInterfaceNum == 4)
- {
- uInterfaceNum = 4;
- MMI_DisplayFun(4);
- return;
- }
- if(bPowerOffMMIFlag && uInterfaceNum == 5)
- {
- uInterfaceNum = 5;
- MMI_DisplayFun(7);
- return;
- }
- if(bPowerOffMMIFlag && uInterfaceNum == 6)
- {
- uInterfaceNum = 6;
- MMI_DisplayFun(9);
- return;
- }
- //chen--??
- if(bPowerOffMMIFlag && uInterfaceNum == 9)
- {
- uInterfaceNum = 9;
- MMI_DisplayFun(14);
- return;
- }
- if(bPowerOffMMIFlag && uInterfaceNum == 10) //視頻信號發(fā)生器
- {
- //TopRight(bAlarmSoundFlag, bKeyLockFlag, bPowerInOutFlag, uBatGridNumTemp); //1格電池
- uVideoGenTimes = uVideoGenTimes -1;
- uInterfaceNum = 10;
- MMI_DisplayFun(15);
- return;
- }
- if(bPowerOffMMIFlag && uInterfaceNum == 11)
- {
- //TopRight(bAlarmSoundFlag, bKeyLockFlag, bPowerInOutFlag, uBatGridNumTemp); //1格電池
- uInterfaceNum = 11;
- MMI_DisplayFun(16);
- return;
- }
- if(bPowerOffMMIFlag && uInterfaceNum == 12)
- {
- uInterfaceNum = 12;
- MMI_DisplayFun(17);
- return;
- }
- if(bPowerOffMMIFlag && uInterfaceNum == 13)
- {
- bComuStartRecFlag = ~bComuStartRecFlag;
- uInterfaceNum = 13;
- MMI_DisplayFun(18);
- return;
- }
- if(bPowerOffMMIFlag && uInterfaceNum == 14)
- {
- uInterfaceNum = 14;
- MMI_DisplayFun(19);
- return;
- }
- if(bPowerOffMMIFlag && uInterfaceNum == 15)
- {
- uInterfaceNum = 15;
- MMI_DisplayFun(20);
- return;
- }
- if(bPowerOffMMIFlag && uInterfaceNum == 16)
- {
- uInterfaceNum = 16;
- MMI_DisplayFun(21);
- return;
- }
- if(bPowerOffMMIFlag && uInterfaceNum == 17)
- {
- uInterfaceNum = 17;
- MMI_DisplayFun(22);
- return;
- }
- //chen++ 自動巡航 界面顯示
- if(bPowerOffMMIFlag && uInterfaceNum == 19)
- {
- uInterfaceNum = 1;
- MMI_DisplayFun(1);
- return;
- }
- }
- //左軟件功能函數(shù) 確認鍵功能
- void LeftSoftKeyFun(void)
- {
- unsigned char uPowerOffTimes = 0;
- if(bAutoScanStopFlag && !bPowerOffMMIFlag) //球機地址自動掃描 停止 后只有 右軟件有用
- return;
- //關機實現(xiàn)功能
- if(bPowerOffMMIFlag && !bPowerOnOffFlag)
- {
- EA = 0;
- SOUND = SOUND_ON;
- STATUS_LED = 0;
- OPEN = 0;
- LCD_ON = 0;
- uPowerKeyTime = 0;
- gPowerOnOffTimes = 0;
- bPowerOnFlag = TRUE;
- bPowerOffFlag = TRUE;
- bPowerOnOffFlag = TRUE; //為下面執(zhí)行運行其他程序作準備
- do
- {
- WDT_CONTR = 0x3D;
- DelayX1ms(25);
- uPowerOffTimes = uPowerOffTimes+1;
- if(uPowerOffTimes>=200)
- {
- SOUND = SOUND_OFF;
- }
- OPEN = 0;
- LCD_ON = 0;
- }
- while(1);
- }
- //主菜單
- if(uMainMenuTimes == 1 && !bMainMenuFlag && bSysSetupFlag)
- {
- uInterfaceNum = 2;
- MMI_DisplayFun(2); //主菜單 顯示
- return;
- }
- //1 系統(tǒng)參數(shù)設置
- if(uMainMenuTimes == 1 && bMainMenuFlag && !bSysSetupFlag)
- {
- uInterfaceNum = 3;
- MMI_DisplayFun(3); //
- return;
- }
- //2 云臺球機和視頻輸入控制
-
- /* chen--
- if(uMainMenuTimes == 2 && bMainMenuFlag && !bPtzVideoFlag)///
- {
- uInterfaceNum = 5;
- MMI_DisplayFun(5); //4 云臺球機和視頻輸入控制 顯示
- uPtzMainBarNum = 1;
- return;
- }
- */
- //>1:視頻輸入和云臺控制
- if(uPtzMainBarNum == 1 && !bVideoSignInFlag && bVideoSignInGenFlag) //該語句一定在 AAAAA語句前
- {
- uInterfaceNum = 5;
- MMI_DisplayFun(5);
- return;
- }
- if( uPtzMainBarNum == 1 && bVideoSignInFlag && !bVideoSignInGenFlag) //該語句一定在 AAAAA語句前
- {
- uInterfaceNum = 5;
- MMI_DisplayFun(6);
- return;
- }
- if(uPtzMainBarNum == 1 && bPtzVideoFlag && !bVideoSignInFlag) //AAAAA
- {
- uInterfaceNum = 5;
- MMI_DisplayFun(7);
- return;
- }
- //chen++ 7 云臺球機和視頻輸入控制 顯
- if(uMainMenuTimes == 2 && bMainMenuFlag && !bPtzVideoFlag)///
- {
- uInterfaceNum = 5;
- MMI_DisplayFun(7); //7 云臺球機和視頻輸入控制 顯示
- uPtzMainBarNum = 1;
- return;
- }
- //>2云臺其他功能操作
- if(uPtzMainBarNum == 2 && !bPtzVideoFlag && bOtherFunFlag)
- {
- uInterfaceNum = 6;
- if(bPresetVideo_Flag == 0)
- {
- MMI_DisplayFun(8); //進入預設頁 視頻界面
- return;
- }
- }
- if(uPtzMainBarNum == 2 && bPtzVideoFlag && !bOtherFunFlag) //CCCC
- {
- uInterfaceNum = 6;
- MMI_DisplayFun(9);
- return;
- }
- //chen++ 預設值功能有效
- if(bPresetSet_Flag == 1)
- {
- if((uPtzOtherFunNum == 10)||(uPtzOtherFunNum == 11)||(uPtzOtherFunNum == 12))
- {
- MMI_DisplayFun(8);
- }
- }
- //chen++ 預設值界面
- if(bPreset_Page == 1 && bPresetVideo_Flag == 1)
- {
- uPtzOtherFunNum_Preset = uPtzOtherFunNum;
- uPtzOtherFunNum = 9;
- MMI_DisplayFun(26); //進入預設 設置界面
- bPresetVideo_Flag = 0;
- bPresetSet_Flag = 1;
-
-
- }
- else
- {
- if(bPreset_Page == 1 && bPresetSet_Flag == 1)
- {
- MMI_DisplayFun(25); //進入預設 視頻界面
- bPresetVideo_Flag = 1;
- bPresetSet_Flag = 0;
- }
- }
- //chen++ 其他
- if(uMainMenuTimes == 9 && bMainMenuFlag && !bPtzVideoFlag)
- {
- uInterfaceNum = 6; //其他 操作界面
- MMI_DisplayFun(9); //9 其他 顯示界面
- uPtzMainBarNum = 2;
- return;
- }
-
- //>3球機地址自動掃描
- if(uPtzMainBarNum == 3 && bAutoScanFlag && !bAutoScanEndFlag && bAutoScanStartFlag) //BBBBB
- {
- uInterfaceNum = 7;
- MMI_DisplayFun(10); //10 球機自動掃描 開始界面
- return;
- }
- if(uPtzMainBarNum == 3 && bAutoScanFlag && !bAutoScanStartFlag && !bAutoScanEndFlag) //BBBBB
- {
- uInterfaceNum = 8;
- MMI_DisplayFun(11); //11 球機自動掃描 結束界面
- return;
- }
- if(uPtzMainBarNum == 3 && bPtzVideoFlag && !bAutoScanFlag) //BBBBB
- {
- uInterfaceNum = 8;
- MMI_DisplayFun(12); //12 球機地址自動掃描 界面顯示、參數(shù)設定
- return;
- }
- //chen++ 2 尋址
- if(uMainMenuTimes == 8 && bMainMenuFlag && !bPtzVideoFlag)
- {
- uInterfaceNum = 8;
- MMI_DisplayFun(12); //12 球機地址自動掃描 界面顯示、參數(shù)設定
- uPtzMainBarNum = 3; //chen++
- return;
- }
-
- //3 網(wǎng)線輸出測試功能
- //chen++ 在網(wǎng)線測試功能界面下,按確定鍵,開始或者停止網(wǎng)線測試
- if(uMainMenuTimes == 3 && bNetSendBarFlag)
- {
- uInterfaceNum = 9;
- MMI_DisplayFun(13);
- return;
- }
- //chen++ 在主菜單界面下,按確定鍵,進入網(wǎng)線測試功能界面
- if(uMainMenuTimes == 3 && bMainMenuFlag && !bNetSendBarFlag)
- {
- uInterfaceNum = 9;
- MMI_DisplayFun(14);
- return;
- }
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //4 視頻信號發(fā)生器
- if(uMainMenuTimes == 4 && bVideoGenerationFlag)
- {
- uInterfaceNum = 10;
- MMI_DisplayFun(15);
- return;
- }
- if(uMainMenuTimes == 4 && bMainMenuFlag &&!bVideoGenerationFlag)
- {
- uInterfaceNum = 11;
- MMI_DisplayFun(16);
- return;
- }
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //5 通信數(shù)據(jù)測試功能
- if(uMainMenuTimes == 5 && bComuDataBarFlag && bComuStopRecFlag && !bComuDispDataFlag)//顯示數(shù)據(jù)
- {
- uInterfaceNum = 12;
- MMI_DisplayFun(17);
- return;
- }
- if(uMainMenuTimes == 5 && bComuDataBarFlag && !bComuDispDataFlag)
- {
- uInterfaceNum = 13;
- MMI_DisplayFun(18);
- return;
- }
- if(uMainMenuTimes == 5 && bMainMenuFlag && !bComuDataBarFlag && !bComuDispDataFlag)
- {
- uInterfaceNum = 14;
- MMI_DisplayFun(19);
- return;
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //6 電源管理功能
- if(uMainMenuTimes == 6 && !bMainMenuFlag && bPowerManageBarFlag)
- {
- uInterfaceNum = 15;
- MMI_DisplayFun(20);
- return;
- }
- if(uMainMenuTimes == 6 && bMainMenuFlag && !bPowerManageBarFlag)
- {
- uInterfaceNum = 16;
- MMI_DisplayFun(21);
- return;
- }
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //7 關于幫助
- if(uMainMenuTimes == 7 && bMainMenuFlag && !bAboutHelpBarFlag)
- {
- uInterfaceNum = 17;
- MMI_DisplayFun(22);
- return;
- }
- }
- void MMI_EnableFlag(void)
- {
- bPowerOffMMIFlag = FALSE;
- bLogoFlag = FALSE;
- bMainMenuFlag = FALSE;
- bSysSetupFlag = FALSE;
- bPtzVideoFlag = FALSE;
- bVideoSignInFlag = FALSE; //視頻信號輸入模式
- bVideoSignInGenFlag = FALSE; //已經(jīng)有視頻信號 標志
- bAutoScanFlag = FALSE;
- bOtherFunFlag = FALSE;
- bNetSendBarFlag = FALSE;
- bNetSendRunFlag = FALSE;
- bVideoGenerationFlag = FALSE;
- bComuDataBarFlag = FALSE;
- bPowerManageBarFlag = FALSE;
- bAboutHelpBarFlag = FALSE;
-
- bAutoScanStopFlag = FALSE;
- bModeKeyVideoFlag = FALSE;
-
-
- return;
- }
- //所有顯示函數(shù)在一起
- void MMI_DisplayFun(unsigned char uMMI_Num)
- {
- bit bFlag = FALSE;
- unsigned char uEndNum = 0;
- switch(uMMI_Num)
- {
- //顯示LOGO
- case 1:
- {
- MainLogo();
- MMI_EnableFlag();
- bLogoFlag = TRUE;
- break;
- }
- //顯示主菜單
- case 2:
- {
- CD4053_A = 0; //chen++
- CD4053_B = 0; //OSD - LCD
- CD4053_C = 0;
- MB90092_ClearScreen(); //chen++
- TopLeft(3, 0x070); //主菜單
- //chen-- TopLeft(0, 0x073); //chen++ _ _ _
- TopRight(bAlarmSoundFlag, bKeyLockFlag, bPowerInOutFlag, uBatGridNum); //1格電池
- //chen--BottomLeft(2,0x074); //選擇
- BottomLeft(2,0x140); //確定
- //chen-- BottomRight(2,0x076); //返回
- BottomRight(0,0x078); //chen++ ---
- MainMenu(uMainMenuTimes);
- //保存數(shù)據(jù)到EEPROM 等待加入 。。。。。。
- uControlRuleItem = uControlRuleItem; //控制協(xié)議是第幾個
- uComSereialItem = uComSereialItem; //串口選擇
- uBaudRateItem = uBaudRateItem; //波特率選擇
- uRunSpeedData = uRunSpeedData;//運行速度
- uStandbyTime = uStandbyTime;//待機時間
- uNetSpeed = uNetSpeed; //網(wǎng)線速度 其實忙也不用但是項目
- uLcdBright = uLcdBright; //屏幕亮度
-
- if(uComSereialItem == 1) //232
- SerialPortOneInitial(uBaudRateItem);
- if(uComSereialItem == 2) //485
- SerialPortTwoInitial(uBaudRateItem);
-
- MMI_EnableFlag();
- bMainMenuFlag = TRUE;
- bComuDataBarFlag = FALSE; //通信數(shù)據(jù)測試功能
- bComuStartRecFlag= FALSE;
- bComuStopRecFlag = FALSE;
- bComuDispDataFlag= FALSE;
- bComuRecLedFlashFlag = FALSE;
- uDataLedLoop = 0;
- uGetSerialDataNum = 0; //接收到數(shù)據(jù)個數(shù)
- ES = 0;
- IE2 = 0x00;
- break;
- }
- //顯示 1 系統(tǒng)參數(shù)設置
- case 3:
- {
- TopLeft(6, 0x0F0);
- BottomLeft(2,0x14E); //保存
- BottomRight(2,0x076); //返回
- SysSetupLeft(6,0x150); //系統(tǒng)參數(shù)設置左邊
- SysSetupBarFun(uSysSetupTimes);
- MMI_EnableFlag();
- bSysSetupFlag = TRUE;
- break;
- }
- //顯示 2 云臺球機和視頻輸入控制 顯示界面(三列)
- case 4:
- {
- TopLeftNew(0,11); //云臺球機和視頻輸入控制
- BottomLeft(2,0x140); //確定
- BottomRight(2,0x076); //返回
-
- PtzVideoControl(uPtzMainBarNum); //顯示地址 視頻格式
-
- MMI_EnableFlag();
- bPtzVideoFlag = TRUE;
- break;
- }
- //顯示 >1:視頻輸入和云臺控制
- case 5:
- {
- CD4053_A = 0; //chen++
- CD4053_B = 0; //OSD - LCD
- CD4053_C = 0;
- //保存485 的發(fā)送地址
- AddressSave = uVideoSignInAddr;
- bVideoSignInGenFlag = FALSE; //已經(jīng)有視頻信號
- bVideoSignInFlag = TRUE;
- bModeKeyVideoFlag = TRUE;
- break;
- }
- //顯示 //>1:視頻輸入和云臺控制 1
- //chen++ ;從視頻輸入和云臺控制界面(地址、視頻模式界面),進入到視頻顯示。
- case 6:
- {
- CD4053_A = 0; //chen++
- CD4053_B = 1; //視頻信號直接輸入到LCD
- CD4053_C = 0;
- //保存485 的發(fā)送地址
- AddressSave = uVideoSignInAddr;
- bVideoSignInGenFlag = TRUE; //已經(jīng)有視頻信號
- bVideoSignInFlag = FALSE;
- bModeKeyVideoFlag = TRUE;
- break;
- }
- //顯示 //>1:視頻輸入和云臺控制 2
- case 7:
- {
- SerialPortOneInitial(uBaudRateItem); //開始為2400 uBaudRateItem= 3
- SerialPortTwoInitial(uBaudRateItem); //開始為2400
-
- TopLeftNew(1, 9); //視頻輸入和云臺控制
- BottomLeft(2,0x140); //確定
- BottomRight(2,0x076); //返回
- if(uVideoSignInBarNum == 1)
- {
- bFlag = TRUE;
- }
- else if(uVideoSignInBarNum == 2)
- {
- bFlag = FALSE;
- }
- else
- {
- _nop_();
- }
- VideoSignInMode(uVideoSignInAddr, uVideoSignInType, bFlag); //顯示地址 視頻格式
-
- MMI_EnableFlag();
- bVideoSignInGenFlag = FALSE; //已經(jīng)有視頻信號
- bVideoSignInFlag = TRUE; //視頻信號輸入模式
- bModeKeyVideoFlag = TRUE;
- break;
- }
- //顯示 //>2云臺其他功能操作
- case 8:
- {
- DE =1;
- PtzOtherFunSendOrder(uPtzOtherFunNum); //其他功能命令
- //PtzFunction2(uPtzOtherFunNum);
- DE =0;
- break;
- }
- //顯示 //>2云臺其他功能操作 1
- case 9:
- {
- SerialPortOneInitial(uBaudRateItem); //開始為2400 uBaudRateItem= 3
- SerialPortTwoInitial(uBaudRateItem); //開始為2400
- MB90092_ClearScreen();//chen++
- TopLeftNew(3,8); //云臺其他功能操作
- BottomLeft(2,0x140); //確定
- if(!bPreset_Page)
- {
- TopRight(bAlarmSoundFlag, bKeyLockFlag, bPowerInOutFlag, uBatGridNum); //?格電池
- }
- BottomRight(2,0x076); //返回
- //chen-- PtzOtherFun(uPtzOtherFunNum,uPresetAddr);
- PtzFunction1(uPtzOtherFunNum);
- MMI_EnableFlag();
- bOtherFunFlag = TRUE;
- break;
- }
- //顯示 //>3球機地址自動掃描 按確定鍵停止
- case 10:
- {
- MMI_EnableFlag();
- bAutoScanFlag = TRUE;
- bAutoScanEndFlag = TRUE;
- bAutoScanStartFlag = FALSE;
- CD4053_A = 0; //chen++
- CD4053_B = 0; //LCD顯示 文字界面
- CD4053_C = 0;
- break;
- }
- //顯示 ////>3球機地址自動掃描 1
- case 11:
- {
- MMI_EnableFlag();
- bAutoScanFlag = TRUE;
- bAutoScanStartFlag = TRUE;
- bAutoScanEndFlag = FALSE;
-
- CD4053_A = 0; //chen++
- CD4053_B = 1; //LCD顯示 視頻信號輸入
- CD4053_C = 0;
- ScanStop_Interface = 1;
-
- if(uAutoStartAddr > uAutoEndAddr )
- {
- uAutoEndAddr = uAutoStartAddr;
- }
- uAutoSendTempAddr = uAutoStartAddr;
- //初始化串口
- SerialPortOneInitial(uAutoBaudRateItem); //開始為2400 uBaudRateItem= 3
- SerialPortTwoInitial(uAutoBaudRateItem); //開始為2400
- uAutoScanSend1Times = 0;
- uAutoScanSend2Times = 0;
- uAutoScanSendData1Time = 0;
- uAutoScanSendData2Time = 0;
- bAutoScanStopFlag = FALSE;
- break;
- }
- //顯示//>3球機地址自動掃描 2
- case 12: //功能包括:設置頁顯示界面、參數(shù)設定
- {
- TopLeftNew(2,8); //球機地址自動掃描
- BottomLeft(2,0x144); //開始
- BottomRight(2,0x076); //返回
- AutoScanSetupLeft(); //球機地址自動掃描 設置頁的左邊 顯示界面
-
- PtzAddrAutoScan(uAutoScanSetupTimes);
- bAutoScanStartFlag = FALSE;
- bAutoScanEndFlag = FALSE;
-
- MMI_EnableFlag();
-
- bAutoScanFlag = TRUE;
- ScanStop_Interface = 0; //chen++ 0:不在自動掃面停止界面;1:在自動掃面停止界面
- break;
- }
- //顯示//3 網(wǎng)線連接測試功能
- //bNetSendRunFlag =1 含義: 網(wǎng)線信號輸出已停止,可再執(zhí)行網(wǎng)線輸出測試功能。
- // =0 含義:網(wǎng)線信號輸出正進行,網(wǎng)線接口有信號輸出。
- case 13:
- {
- if(!bNetSendRunFlag)
- {
- BottomLeft(2,0x14A); //停止
- bNetSendRunFlag = TRUE;
- }
- else
- {
- BottomLeft(2,0x144); //開始
- bNetSendRunFlag = FALSE;
- }
- break;
- }
- //顯示 //3 網(wǎng)線連接測試功能 1
- case 14:
- {
- TopLeft(8, 0x100); //網(wǎng)線輸出測試功能
- BottomLeft(2,0x144); //開始
- BottomRight(2,0x076); //返回
-
- uNetSendRunLoop = 8;
- uNetMcuLedLoop = 1;
- SendOneData(0x00); //74HC164
- NetLineSendMode(0, uNetMcuLedLoop); //先靜止
-
- MMI_EnableFlag();
-
- bNetSendBarFlag = TRUE;
- break;
- }
- //顯示//4 視頻信號發(fā)生器
- case 15:
- {
-
- CD4053_B = 0; //OSD - LCD
- //chen--g CD4053_C = 1;
- CD4053_C = 0;
- CD4053_A = 1; //chen++
-
- //按開始執(zhí)行該視頻信號模式
- uVideoGenTimes = uVideoGenTimes+1;
- if(uVideoGenTimes == 7)
- {
- uVideoGenTimes = 1;
- }
-
- VideoGeneration(uVideoGenTimes);
- MMI_EnableFlag();
- bVideoGenerationFlag = TRUE;
- break;
- }
- //顯示 //4 視頻信號發(fā)生器 2
- case 16:
- {
- CD4053_B = 0; //OSD - LCD
- //chen--g CD4053_C = 1;
- CD4053_A = 1; //chen++
- //按開始執(zhí)行該視頻信號模式
- uVideoGenTimes = 1;
-
- VideoGeneration(uVideoGenTimes);
-
- BottomLeft(3,0x2D0); //下一色
- BottomRight(2,0x14C); //結束
- MMI_EnableFlag();
- bVideoGenerationFlag = TRUE;
- break;
- }
- //顯示//5 通信數(shù)據(jù)測試功能
- case 17:
- {
- TopLeft(8, 0x108); //
- BottomLeft(2,0x2EE); //結果
- BottomRight(2,0x076); //返回
-
- if(uGetSerialDataNum>0)
- {
- if(!bPowerOffMMIFlag) //如果重新來,剛開始為第一頁
- uComuPageNum = 1; //表示顯示第一頁
- // uGetSerialDataNum = 2;
- if(uGetSerialDataNum < 7)
- {
- uEndNum = uGetSerialDataNum%7;
- }
- else
- {
- uEndNum = 7;
- }
- ComuDisplayData(uComuPageNum, uEndNum, uInbox); //顯示收到數(shù)據(jù)
- ComuDisplayBarNum(uComuPageNum, uGetSerialDataNum); //顯示下拉條
- }
- else //顯示 Not Receive Data 表示沒有收到一個字節(jié)
- {
- ComuDisplayNoData();
- }
- bComuDispDataFlag = TRUE; //表示進入顯示數(shù)據(jù)界面
-
- MMI_EnableFlag();
- bComuDataBarFlag = TRUE;
- bComuRecLedFlashFlag = FALSE;
- uDataLedLoop = 0;
- break;
- }
- //顯示 //5 通信數(shù)據(jù)測試功能 1
- case 18:
- {
- TopLeft(8, 0x108); //
- if(!bComuStartRecFlag)
- {
- BottomLeft(2,0x14A); //停止
- uDataLedLoop = 0;
- bComuRecLedFlashFlag = TRUE;
- uGetSerialDataNum = 0;
- //ES = 1; //打開串口1中斷
- IE2= 0x01; //打開串口2中斷 ES2 = 0;
- }
- else
- {
- BottomLeft(4,0x2EC); //查看結果
- bComuRecLedFlashFlag = FALSE;
- ES = 0; //關閉串口1中斷
- IE2= 0x00; //打開串口2中斷 ES2 = 0;
- uDataLedLoop = 0;
-
- }
- BottomRight(2,0x076);
-
- if(!bComuStartRecFlag)
- {
- ComuStartReceive();
- bComuStartRecFlag = TRUE;
- }
- else
- {
- ComuStopReceive();
- bComuStartRecFlag = FALSE;
- bComuStopRecFlag = TRUE;
- }
- MMI_EnableFlag();
- bComuDataBarFlag = TRUE;
- break;
- }
- //顯示 //5 通信數(shù)據(jù)測試功能 2
- case 19:
- {
- TopLeft(8, 0x108); //
- BottomLeft(2,0x144); //開始
- BottomRight(2,0x076); //返回
-
- ComuDataBarFun();
- uGetSerialDataNum = 0;
- ES = 0;
- IE2 = 0x00;
-
- MMI_EnableFlag();
-
- bComuDataBarFlag = TRUE;
- bComuStartRecFlag = FALSE;
- bComuStopRecFlag = FALSE;
- bComuDispDataFlag = FALSE;
- bComuRecLedFlashFlag = FALSE;
- uDataLedLoop = 0;
- break;
- }
- //顯示//6 電源管理功能
- case 20:
- {
- if(uPowerManageBarTimes == 2)
- {
- bPowerInOutFlag = TRUE;
- IN_OUT = 1;
- }
- else
- {
- bPowerInOutFlag = FALSE;
- IN_OUT = 0;
- }
- MB90092_ClearScreen(); //chen++
- TopLeft(3, 0x070); //主菜單
- if(!bPreset_Page)
- {
- TopRight(bAlarmSoundFlag, bKeyLockFlag, bPowerInOutFlag, uBatGridNum); //?格電池
- }
- BottomLeft(2,0x140); //chen++ 確定
- BottomRight(0,0x078); //chen++ ---
- MainMenu(uMainMenuTimes);
-
- //保存數(shù)據(jù)到EEPROM 等待加入 。。。。。。
- MMI_EnableFlag();
- bMainMenuFlag = TRUE;
- break;
- }
- //顯示 //6 電源管理功能 1
- case 21:
- {
- TopLeft(6, 0x119); //電源管理功能
- if(!bPreset_Page)
- {
- TopRight(bAlarmSoundFlag, bKeyLockFlag, bPowerInOutFlag, uBatGridNum); //?格電池
- }
- //chen--gBottomLeft(2,0x074); //選擇
- BottomLeft(2,0x140); //chen++ 確定
- BottomRight(2,0x076); //返回
-
- PowerManageBarFun(uPowerManageBarTimes, uVolData);
- VolAdChangeOpen(); //得到電壓
- DealWithVolAdDispBat(FALSE);
- MMI_EnableFlag();
- bPowerManageBarFlag = TRUE;
- break;
- }
- //顯示 //7 關于幫助
- case 22:
- {
- TopLeft(4, 0x0EC); //關于幫助
- BottomLeft(1,0x078); //----
- BottomRight(2,0x076); //返回
- uVerData = "Version-2.11.0";
- uSNData = "SN-B0A00B2123.12";
- uNetAddr = "www.hzshoup.com";
- uTelNum = "0571-85121925";
- AboutHelpBarFun(uVerData,uSNData,uNetAddr,uTelNum); //網(wǎng)線連接測試功能 選擇
- MMI_EnableFlag();
- bAboutHelpBarFlag = TRUE;
- break;
- }
- //顯示 //8 自動尋址 chen++
- case 23:
- {
- TopLeft(6, 0x119); //電源管理功能
- //chen--gBottomLeft(2,0x074); //選擇
- BottomLeft(2,0x140); //chen++ 確定
- BottomRight(2,0x076); //返回
-
- PowerManageBarFun(uPowerManageBarTimes, uVolData);
- VolAdChangeOpen(); //得到電壓
- DealWithVolAdDispBat(FALSE);
- MMI_EnableFlag();
- bPowerManageBarFlag = TRUE;
- break;
- }
- //顯示 9 自動巡航 chen++
- case 24: //6 電源管理功能 1
- {
- TopLeft(6, 0x119); //電源管理功能
- //chen--gBottomLeft(2,0x074); //選擇
- BottomLeft(2,0x140); //chen++ 確定
- BottomRight(2,0x076); //返回
-
- PowerManageBarFun(uPowerManageBarTimes, uVolData);
- VolAdChangeOpen(); //得到電壓
- DealWithVolAdDispBat(FALSE);
- MMI_EnableFlag();
- bPowerManageBarFlag = TRUE;
- break;
- }
- //顯示 預設值視頻 界面 chen++
- case 25:
- {
- MB90092_ClearScreen();
- break;
- }
- //顯示 預設值設置 界面 chen++
- case 26:
- {
- MB90092_ClearScreen();
- PtzOtherFun(uPtzOtherFunNum,uPresetAddr);
- break;
- }
- }
- return;
- }
- //左右選中數(shù)字 遞減或者遞加
- //bLeftRightFlag = FALSE;表示向右移動 遞減
- //bLeftRightFlag = TRUE; 表示向左移動 遞加
- void LeftRightItem(bit bLeftRightFlag)
- {
- //chen++1
- //主菜單
- if(bMainMenuFlag)
- {
- if(bLeftRightFlag)
- {
- switch(uMainMenuTimes)
- {
- case 1: uMainMenuTimes = 3; break;
- case 2: uMainMenuTimes = 4; break;
- case 3: uMainMenuTimes = 5; break;
- case 4: uMainMenuTimes = 6; break;
- case 5: uMainMenuTimes = 2; break;
- case 6: uMainMenuTimes = 8; break;
- case 8: uMainMenuTimes = 9; break;
- case 9: uMainMenuTimes = 1; break;
- default: uMainMenuTimes = 1;
- }
- }
- else
- { switch(uMainMenuTimes)
- {
- case 1: uMainMenuTimes = 9; break;
- case 2: uMainMenuTimes = 5; break;
- case 3: uMainMenuTimes = 1; break;
- case 4: uMainMenuTimes = 2; break;
- case 5: uMainMenuTimes = 3; break;
- case 6: uMainMenuTimes = 4; break;
- case 8: uMainMenuTimes = 6; break;
- case 9: uMainMenuTimes = 8; break;
- default: uMainMenuTimes = 1;
- }
- }
- MainMenu(uMainMenuTimes);
- }
- //chen++2
- //參數(shù)設置 界面
- if(bSysSetupFlag && uSysSetupTimes == 1) //控制協(xié)議
- {
- if(bLeftRightFlag)
- {
- if(uControlRuleItem == 10)
- uControlRuleItem = 1;
- else
- uControlRuleItem = uControlRuleItem+1;
- }
- else
- {
- if(uControlRuleItem == 1)
- uControlRuleItem = 10;
- else
- uControlRuleItem = uControlRuleItem-1;
- }
- SysSetupBarFun(uSysSetupTimes);
- }
- /*
- if(bSysSetupFlag && uSysSetupTimes == 2) //通信串口
- {
- if(bLeftRightFlag)
- {
- if(uComSereialItem == 2)
- uComSereialItem = 1;
- else
- uComSereialItem = uComSereialItem+1;
- }
- else
- {
- if(uComSereialItem == 1)
- uComSereialItem = 2;
- else
- uComSereialItem = uComSereialItem-1;
- }
- SysSetupBarFun(uSysSetupTimes);
- }
- */
- if(bSysSetupFlag && uSysSetupTimes == 3) //波特率
- {
- if(bLeftRightFlag)
- {
- if(uBaudRateItem == 8)
- uBaudRateItem = 1;
- else
- uBaudRateItem = uBaudRateItem+1;
- }
- else
- {
- if(uBaudRateItem == 1)
- uBaudRateItem = 8;
- else
- uBaudRateItem = uBaudRateItem-1;
- }
- SysSetupBarFun(uSysSetupTimes);
- }
- if(bSysSetupFlag && uSysSetupTimes == 4) //運行速度 0---255
- {
- if(bLeftRightFlag)
- {
- if(uRunSpeedData == 255) //0到3F
- uRunSpeedData = 0;
- else
- uRunSpeedData = uRunSpeedData+1;
- }
- else
- {
- if(uRunSpeedData == 0)
- uRunSpeedData = 255; //0到3F
- else
- uRunSpeedData = uRunSpeedData-1;
- }
- SysSetupBarFun(uSysSetupTimes);
- }
- if(bSysSetupFlag && uSysSetupTimes == 5) //待機時間 00 到30分鐘 當為0時表示不待機
- {
- if(bLeftRightFlag)
- {
- if(uStandbyTime == 6) //uStandbyTime*5
- uStandbyTime = 0;
- else
- uStandbyTime = uStandbyTime+1;
- }
- else
- {
- if(uStandbyTime == 0)
- uStandbyTime = 6;
- else
- uStandbyTime = uStandbyTime-1;
- }
- SysSetupBarFun(uSysSetupTimes);
- }
- if(bSysSetupFlag && uSysSetupTimes == 6) //網(wǎng)線速度 1-5
- {
- if(bLeftRightFlag)
- {
- if(uNetSpeed == 5)
- uNetSpeed = 1;
- else
- uNetSpeed = uNetSpeed+1;
- }
- else
- {
- if(uNetSpeed == 1)
- uNetSpeed = 5;
- else
- uNetSpeed = uNetSpeed-1;
- }
- SysSetupBarFun(uSysSetupTimes);
- }
- /*
- if(bSysSetupFlag && uSysSetupTimes == 7) //屏幕亮度 1-15
- {
- if(bLeftRightFlag)
- {
- if(uLcdBright == 15)
- uLcdBright = 1;
- else
- uLcdBright = uLcdBright+1;
- }
- else
- {
- if(uLcdBright == 1)
- uLcdBright = 15;
- else
- uLcdBright = uLcdBright-1;
- }
- SysSetupBarFun(uSysSetupTimes);
-
- }
- */
- //chen
- //視頻輸入和云臺控制
- if(bVideoSignInFlag && uVideoSignInBarNum == 1) //地址 選擇
- {
- if(bLeftRightFlag)
- {
- if(uVideoSignInAddr == 255)
- uVideoSignInAddr = 0;
- else
- uVideoSignInAddr = uVideoSignInAddr+1;
- }
- else
- {
- if(uVideoSignInAddr == 0)
- uVideoSignInAddr = 255;
- else
- uVideoSignInAddr = uVideoSignInAddr-1;
- }
- VideoSignInMode(uVideoSignInAddr, uVideoSignInType, TRUE); //顯示地址 視頻格式
- }
- if(bVideoSignInFlag && uVideoSignInBarNum == 2) //視頻制式 選擇
- {
- if(bLeftRightFlag)
- {
- if(uVideoSignInType == 3)
- uVideoSignInType = 1;
- else
- uVideoSignInType = uVideoSignInType+1;
- }
- else
- {
- if(uVideoSignInType == 1)
- uVideoSignInType = 3;
- else
- uVideoSignInType = uVideoSignInType-1;
- }
- VideoSignInMode(uVideoSignInAddr, uVideoSignInType, FALSE); //顯示地址 視頻格式
- }
-
- //chen
- //預置位設置界面菜單選擇
- // if(bOtherFunFlag == 1 && bPreset_Page ==1)
- if(bPreset_Page ==1)
- {
- //chen-- if(bLeftRightFlag)
- MB90092_DisChar (2,5,0x0B,2,B_COLOR_CYAN,0,0);
- switch(uPtzOtherFunNum)
- {
- case 9: uPtzOtherFunNum = 10; break;
- case 10:
- case 11:
- case 12: uPtzOtherFunNum = 9; break;
- default: break;
- }
- PtzOtherFun(uPtzOtherFunNum,uPresetAddr);
- }
- /*chen--取消左右按鍵功能,改左右按鍵為上下按鍵。
- if(bLeftRightFlag)
- {
- //橫向的第1行
- if(uPtzOtherFunNum == 1)
- {
- uPtzOtherFunNum = 2;
- }
- else if(uPtzOtherFunNum == 2)
- {
- uPtzOtherFunNum = 3;
- }
- else if(uPtzOtherFunNum == 3)
- {
- uPtzOtherFunNum = 1;
- }
- //橫向的第2行
- else if(uPtzOtherFunNum == 4)
- {
- uPtzOtherFunNum = 5;
- }
- else if(uPtzOtherFunNum == 5)
- {
- uPtzOtherFunNum = 6;
- }
- else if(uPtzOtherFunNum == 6)
- {
- uPtzOtherFunNum = 4;
- }
-
- //橫向的第3行
- else if(uPtzOtherFunNum == 7)
- {
- uPtzOtherFunNum = 8;
- }
- else if(uPtzOtherFunNum == 8)
- {
- uPtzOtherFunNum = 7;
- }
-
- //橫向的第4行
- else if(uPtzOtherFunNum == 10)
- {
- uPtzOtherFunNum = 11;
- }
- else if(uPtzOtherFunNum == 11)
- {
- uPtzOtherFunNum = 12;
- }
- else if(uPtzOtherFunNum == 12)
- {
- uPtzOtherFunNum = 3;
- }
- //數(shù)字改變
- else if(uPtzOtherFunNum == 9)
- {
- if(uPresetAddr == 255)
- uPresetAddr = 0;
- else
- uPresetAddr = uPresetAddr+1;
- }
- else
- {
- uPtzOtherFunNum =1;
- }
- }
- else
- {
- //橫向的第1行
- if(uPtzOtherFunNum == 2)
- {
- uPtzOtherFunNum = 1;
- }
- else if(uPtzOtherFunNum == 3)
- {
- uPtzOtherFunNum = 2;
- }
- else if(uPtzOtherFunNum == 1)
- {
- uPtzOtherFunNum = 3;
- }
- //橫向的第2行
- else if(uPtzOtherFunNum == 5)
- {
- uPtzOtherFunNum = 4;
- }
- else if(uPtzOtherFunNum == 6)
- {
- uPtzOtherFunNum = 5;
- }
- else if(uPtzOtherFunNum == 4)
- {
- uPtzOtherFunNum = 6;
- }
-
- //橫向的第3行
- else if(uPtzOtherFunNum == 8)
- {
- uPtzOtherFunNum = 7;
- }
- else if(uPtzOtherFunNum == 7)
- {
- uPtzOtherFunNum = 8;
- }
-
- //橫向的第4行
- else if(uPtzOtherFunNum == 12)
- {
- uPtzOtherFunNum = 11;
- }
- else if(uPtzOtherFunNum == 11)
- {
- uPtzOtherFunNum = 10;
- }
- else if(uPtzOtherFunNum == 10)
- {
- uPtzOtherFunNum = 9;
- }
- //數(shù)字改變
- else if(uPtzOtherFunNum == 9)
- {
- if(uPresetAddr == 255)
- uPresetAddr = 0;
- else
- uPresetAddr = uPresetAddr-1;
- }
- else
- {
- uPtzOtherFunNum =1;
- }
- }
- */
- //chen
- //球機地址自動掃描 設置界面
-
- //新增加內(nèi)容 地址自動掃描
- if(!ScanStop_Interface) //chen++ 確定當前界面不是自動掃描停止界面。
- {
- if(bAutoScanFlag && uAutoScanSetupTimes == 1)//自動掃描波特率
- {
- if(bLeftRightFlag)
- {
- if(uAutoBaudRateItem == 8)
- uAutoBaudRateItem = 1;
- else
- uAutoBaudRateItem = uAutoBaudRateItem+1;
- }
- else
- {
- if(uAutoBaudRateItem == 1)
- uAutoBaudRateItem = 8;
- else
- uAutoBaudRateItem = uAutoBaudRateItem-1;
- }
- PtzAddrAutoScan(uAutoScanSetupTimes);
- }
- if(bAutoScanFlag && uAutoScanSetupTimes == 2) //自動掃描控制協(xié)議是第幾個
- {
- if(bLeftRightFlag)
- {
- if(uAutoControlRuleItem == 10)
- uAutoControlRuleItem = 1;
- else
- uAutoControlRuleItem = uAutoControlRuleItem+1;
- }
- else
- {
- if(uAutoControlRuleItem == 1)
- uAutoControlRuleItem = 10;
- else
- uAutoControlRuleItem = uAutoControlRuleItem-1;
- }
- PtzAddrAutoScan(uAutoScanSetupTimes);
- }
- if(bAutoScanFlag && uAutoScanSetupTimes == 3) //開始地址
- {
- if(bLeftRightFlag)
- {
- if(uAutoStartAddr == 255)
- uAutoStartAddr = 0;
- else
- uAutoStartAddr = uAutoStartAddr+1;
- }
- else
- {
- if(uAutoStartAddr == 0)
- uAutoStartAddr = 255;
- else
- uAutoStartAddr = uAutoStartAddr-1;
- }
- PtzAddrAutoScan(uAutoScanSetupTimes);
- }
- if(bAutoScanFlag && uAutoScanSetupTimes == 4) //結束地址
- {
- if(bLeftRightFlag)
- {
- if(uAutoEndAddr == 255)
- uAutoEndAddr = 0;
- else
- uAutoEndAddr = uAutoEndAddr+1;
- }
- else
- {
- if(uAutoEndAddr == 0)
- uAutoEndAddr = 255;
- else
- uAutoEndAddr = uAutoEndAddr-1;
- }
- PtzAddrAutoScan(uAutoScanSetupTimes);
- }
- if(bAutoScanFlag && uAutoScanSetupTimes == 5) //間隔時間
- {
- if(bLeftRightFlag)
- {
- if(uAutoSpaceTime == 10)
- uAutoSpaceTime = 1;
- else
- uAutoSpaceTime = uAutoSpaceTime+1;
- }
- else
- {
- if(uAutoSpaceTime == 1)
- uAutoSpaceTime = 10;
- else
- uAutoSpaceTime = uAutoSpaceTime-1;
- }
- PtzAddrAutoScan(uAutoScanSetupTimes);
- }
- }
- return;
- }
- //選擇項的移動
- //bDownUp = FALSE;表示向下移動
- //bDownUp = TRUE;表示向上移動
- void DownUpItem(bit bDownUp)
- {
- bit bFlag = FALSE;
- unsigned char uData[7] = {0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A};
- unsigned char i = 0;
- unsigned char uEndNumTemp = 0;
- unsigned char uTemp1 = 0;
- unsigned int uTemp2 = 0;
- //主菜單
- if(bMainMenuFlag)
- {
- if(bDownUp)
- {
- switch(uMainMenuTimes)
- {
- case 1: uMainMenuTimes = 4; break;
- case 2: uMainMenuTimes = 9; break;
- case 3: uMainMenuTimes = 6; break;
- case 4: uMainMenuTimes = 1; break;
- case 5: uMainMenuTimes = 8; break;
- case 6: uMainMenuTimes = 3; break;
- case 8: uMainMenuTimes = 5; break;
- case 9: uMainMenuTimes = 2; break;
- default: uMainMenuTimes = 1;
- }
- }
- else
- { switch(uMainMenuTimes)
- {
- case 1: uMainMenuTimes = 4; break;
- case 2: uMainMenuTimes = 9; break;
- case 3: uMainMenuTimes = 6; break;
- case 4: uMainMenuTimes = 1; break;
- case 5: uMainMenuTimes = 8; break;
- case 6: uMainMenuTimes = 3; break;
- case 8: uMainMenuTimes = 5; break;
- case 9: uMainMenuTimes = 2; break;
- default: uMainMenuTimes = 1;
- }
- }
- /*chen--g
- if(uMainMenuTimes == 6)
- {
- uMainMenuTimes = 1;
- }
- else
- {
- uMainMenuTimes = uMainMenuTimes+1;
- }
- }
- else
- {
- if(uMainMenuTimes == 1)
- {
- uMainMenuTimes = 6;
- }
- else
- {
- uMainMenuTimes = uMainMenuTimes-1;
- }
- }
- chen--g*/
- MainMenu(uMainMenuTimes);
- }
- //系統(tǒng)參數(shù)設置
- if(bSysSetupFlag)
- {
- if(bDownUp)
- {
- if(uSysSetupTimes == 6) //chen--g 7-->6 取消屏幕亮度調(diào)節(jié)
- {
- uSysSetupTimes = 1;
- }
- else
- {
- uSysSetupTimes = uSysSetupTimes+1;
- }
- }
- else
- {
- if(uSysSetupTimes == 1)
- {
- uSysSetupTimes = 6; //chen--g 7-->6 取消屏幕亮度調(diào)節(jié)
- }
- else
- {
- uSysSetupTimes = uSysSetupTimes-1;
- }
- }
- SysSetupBarFun(uSysSetupTimes);
- }
- //云臺球機和視頻輸入控制
- if(bPtzVideoFlag)
- {
- if(bDownUp)
- {
- if(uPtzMainBarNum == 3)
- {
- uPtzMainBarNum = 1;
- }
- else
- {
- uPtzMainBarNum = uPtzMainBarNum+1;
- }
- }
- else
- {
- if(uPtzMainBarNum == 1)
- {
- uPtzMainBarNum = 3;
- }
- else
- {
- uPtzMainBarNum = uPtzMainBarNum-1;
- }
- }
- PtzVideoControl(uPtzMainBarNum); //顯示地址 視頻格式
- }
- //視頻輸入和云臺控制
- if(bVideoSignInFlag)
- {
- if(uVideoSignInBarNum == 1)
- {
- uVideoSignInBarNum = 2;
- bFlag = FALSE;
- }
- else if(uVideoSignInBarNum == 2)
- {
- uVideoSignInBarNum = 1;
- bFlag = TRUE;
- }
- else
- {
- _nop_();
- }
- VideoSignInMode(uVideoSignInAddr, uVideoSignInType, bFlag); //顯示地址 視頻格式
- }
- //球機其他功能操作
- if(bOtherFunFlag)
- {
- if(bDownUp)
- {
- switch(uPtzOtherFunNum)
- {
- case 1: uPtzOtherFunNum = 2; break;
- case 2: uPtzOtherFunNum = 3; break;
- case 3: uPtzOtherFunNum = 7; break;
- case 7: uPtzOtherFunNum = 13; break;
- case 13: uPtzOtherFunNum = 1; break;
- //預設值界面下的三個坐標
- case 10: uPtzOtherFunNum = 11; break; //10 預設置
- case 11: uPtzOtherFunNum = 12; break; //11 預設調(diào)用
- case 12: uPtzOtherFunNum = 10; break; //12 預設清除
- default: break;
- }
- if(bPreset_Page == 1 && uPtzOtherFunNum == 9)
- {
- if(uPresetAddr == 255)
- uPresetAddr = 0;
- else
- uPresetAddr = uPresetAddr+1;
- }
- }
- else
- {
- switch(uPtzOtherFunNum)
- {
- case 1: uPtzOtherFunNum = 13; break; //1 雨刷
- case 2: uPtzOtherFunNum = 1; break; //2 燈光
- case 3: uPtzOtherFunNum = 2; break; //3 電源
- case 7: uPtzOtherFunNum = 3; break; //7 自動巡航
- case 13: uPtzOtherFunNum = 7; break; //13 預設值界面進入標志
- //預設值界面下的三個坐標
- case 10: uPtzOtherFunNum = 12; break; //10 預設置
- case 11: uPtzOtherFunNum = 10; break; //11 預設調(diào)用
- case 12: uPtzOtherFunNum = 11; break; //12 預設清除
- default: break;
- }
- if(bPreset_Page == 1 && uPtzOtherFunNum == 9)
- {
- if(uPresetAddr == 0)
- {uPresetAddr = 255;}
-
- else
- {uPresetAddr = uPresetAddr-1;}
- }
- }
- if(bPreset_Page == 0)
- PtzFunction2(uPtzOtherFunNum); //其他功能命令
- else
- PtzOtherFun(uPtzOtherFunNum,uPresetAddr); //在預設值頁面
- }
-
- //地址自動掃描
- if((bAutoScanFlag)&&(!ScanStop_Interface))
- {
- if(bDownUp)
- {
- if(uAutoScanSetupTimes == 5)
- {
- uAutoScanSetupTimes = 1;
- }
- else
- {
- uAutoScanSetupTimes = uAutoScanSetupTimes+1;
- }
- }
- else
- {
- if(uAutoScanSetupTimes == 1)
- {
- uAutoScanSetupTimes = 5;
- }
- else
- {
- uAutoScanSetupTimes = uAutoScanSetupTimes-1;
- }
- }
- PtzAddrAutoScan(uAutoScanSetupTimes);
- }
- //電源管理
- if(bPowerManageBarFlag)
- {
- if(uPowerManageBarTimes == 1)
- {
- uPowerManageBarTimes = 2;
- }
- else
- {
- uPowerManageBarTimes = 1;
- }
- PowerManageBarFun(uPowerManageBarTimes, uVolData);
- }
- //串口數(shù)據(jù)接收
- if(bComuDispDataFlag)
- {
- uTemp1 = uGetSerialDataNum/7; //頁數(shù)
- if(bDownUp)
- {
- if(uComuPageNum >= uTemp1+1)
- {
- uComuPageNum = 1;
- }
- else
- {
- uComuPageNum = uComuPageNum+1;
- }
- }
- else
- {
- if(uComuPageNum == 1)
- {
- uComuPageNum = uTemp1+1;
- }
- else
- {
- uComuPageNum = uComuPageNum-1;
- }
- }
-
- uTemp2 = (uComuPageNum-1)*7; //第uComuPageNum剩下
-
- if(uComuPageNum<= uTemp1)
- {
- uEndNumTemp = 7;
- }
- else
- {
- uEndNumTemp = uGetSerialDataNum-uTemp2;
- }
-
- for(i=0; i<uEndNumTemp; i++)
- {
- uData[i] = uInbox[uTemp2+i];
- }
-
- //處理得到uEndNumTemp 數(shù)據(jù)
- ComuDisplayData(uComuPageNum,uEndNumTemp,uData);
- ComuDisplayBarNum(uComuPageNum, uGetSerialDataNum);
- }
- return;
- }
- //>2云臺其他功能操作 發(fā)送相關命令
- void PtzOtherFunSendOrder(unsigned char uPtzOtherFunNumTemp)
- {
- // unsigned char uTemp;
- // uPresetAddrTemp = uPresetAddrTemp;
- switch(uPtzOtherFunNumTemp)
- {
- case 1:
- if (Wipper_state == 0)
- {
- Wipper_state = 1;
- PtzBrushOpen(uControlRuleItem); //雨刷開
- MB90092_DisChar (12,2,Open_adr,2,B_COLOR_CYAN,C_COLOR_BLACK,1); //開
- //chen test MB90092_DisChar (15,2,RingForm_adr,2,B_COLOR_CYAN,C_COLOR_RED,1); //環(huán)
- }
- else
- {
- Wipper_state = 0;
- PtzBrushClose(uControlRuleItem); //雨刷關
- MB90092_DisChar (12,2,Close_adr,2,B_COLOR_CYAN,C_COLOR_BLACK,1); //關
- //chen test MB90092_DisChar (15,2,RoundForm_adr,2,B_COLOR_CYAN,C_COLOR_RED,1); //園
- }
- break;
- case 2:
- if(Light_state ==0)
- {
- Light_state = 1;
- PtzLightOpen(uControlRuleItem); //燈光開
- MB90092_DisChar (12,3,Open_adr,2,B_COLOR_CYAN,C_COLOR_BLACK,1); //開
- //chen test MB90092_DisChar (15,3,RingForm_adr,2,B_COLOR_CYAN,C_COLOR_RED,1); //環(huán)
- }
- else
- {
- Light_state = 0;
- PtzLightClose(uControlRuleItem); //燈光關
- MB90092_DisChar (12,3,Close_adr,2,B_COLOR_CYAN,C_COLOR_BLACK,1); //關
- //chen test MB90092_DisChar (15,3,RoundForm_adr,2,B_COLOR_CYAN,C_COLOR_RED,1); //園
- }
- break;
- case 3:
- if(Power_state == 0)
- {
- Power_state = 1;
- PtzPowerOpen(uControlRuleItem); //電源開
- MB90092_DisChar (12,4,Open_adr,2,B_COLOR_CYAN,C_COLOR_BLACK,1); //開
- //chen test MB90092_DisChar (15,4,RingForm_adr,2,B_COLOR_CYAN,C_COLOR_RED,1); //環(huán)
- }
- else
- {
- Power_state = 0;
- PtzPowerClose(uControlRuleItem); //電源關
- MB90092_DisChar (12,4,Close_adr,2,B_COLOR_CYAN,C_COLOR_BLACK,1); //關
- //chen test MB90092_DisChar (15,4,RoundForm_adr,2,B_COLOR_CYAN,C_COLOR_RED,1); //園
- }
- break;
- case 7:
- if(Cruise_state ==0)
- {
- Cruise_state =1;
- PtzAutoOpen(uControlRuleItem); //自動巡航開
- MB90092_DisChar (12,5,Open_adr,2,B_COLOR_CYAN,C_COLOR_BLACK,0); //開
- //chen test MB90092_DisChar (15,5,RingForm_adr,2,B_COLOR_CYAN,C_COLOR_RED,1); //環(huán)
- }
- else
- {
- Cruise_state = 0;
- PtzAutoClose(uControlRuleItem); //自動巡航關
- MB90092_DisChar (12,5,Close_adr,2,B_COLOR_CYAN,C_COLOR_BLACK,0); //開
- //chen test MB90092_DisChar (15,5,RoundForm_adr,2,B_COLOR_CYAN,C_COLOR_RED,1); //園
- }
- break;
- case 10:
- PtzSetPreset(uControlRuleItem); //設置預置點
- //chen test MB90092_DisChar (1,1,RingForm_adr,2,B_COLOR_CYAN,C_COLOR_RED,1); //環(huán)
- break;
- case 11:
- PtzCallPreset(uControlRuleItem); //調(diào)用預置點
- //chen test MB90092_DisChar (1,2,RingForm_adr,2,B_COLOR_CYAN,C_COLOR_RED,1); //環(huán)
- break;
- case 12:
- PtzDelPreset(uControlRuleItem); //清除預置點
- //chen test MB90092_DisChar (1,1,RoundForm_adr,2,B_COLOR_CYAN,C_COLOR_RED,1); //環(huán)
- //chen test MB90092_DisChar (1,2,RoundForm_adr,2,B_COLOR_CYAN,C_COLOR_RED,1); //環(huán)
- break;
- case 13:
- //chen++
- MB90092_ClearScreen();
- MB90092_WriteByte(0xA2|4);//command 4,內(nèi)、外同步選擇 SYN_INTERNAL = 0、4
- MB90092_WriteByte(0x2B);
- CD4053_A = 0;
- CD4053_B = 0;
- CD4053_C = 1;
- // PtzOtherFun(uPtzOtherFunNum,uPresetAddr);
- bPreset_Page = 1;
- bPresetVideo_Flag = 1;
- bPresetSet_Flag = 0;
- break;
- }
-
- }
- //>3球機地址自動掃描
- void PtzAddrAutoScan(unsigned char uAutoScanBarNum)
- {
- unsigned char *pData = 0;
- unsigned char uTemp = 0;
- unsigned char uData[6] = 0;
-
- switch(uAutoBaudRateItem)
- {
- //case 1:
- // pData = "300bps";
- // break;
- case 1:
- pData = "600bps";
- break;
- case 2:
- pData = "1200bps";
- break;
- case 3:
- pData = "2400bps";
- break;
- case 4:
- pData = "4800bps";
- break;
- case 5:
- pData = "9600bps";
- break;
- case 6:
- pData = "19200bps";
- break;
- case 7:
- pData = "38400bps";
- break;
- case 8:
- pData = "57600bps";
- break;
- // case 10:
- // pData = "115200bps";
- // break;
- }
- AutoScanSetupRight(pData,1,uAutoScanBarNum-1); //波特率:
- switch(uAutoControlRuleItem) //控制協(xié)議目前范圍 1到10
- {
- case 1:
- pData = "PELCO-D";
- break;
- case 2:
- pData = "PELCO-P";
- break;
- case 3:
- pData = "KRE-302";
- break;
- case 4:
- pData = "Philips";
- break;
- case 5:
- pData = "Samsung";
- break;
- case 6:
- pData = "ADR8060";
- break;
- case 7:
- pData = "Dali";
- break;
- case 8:
- pData = "HIKVISION";
- break;
- case 9:
- pData = "Howell";
- break;
- case 10:
- pData = "Siemens";
- break;
- }
- AutoScanSetupRight(pData,2,uAutoScanBarNum-2); //控制協(xié)議: PELCO-P PELCO-D
-
-
- //把數(shù)字轉換成字符 開始地址
- pData = 0;
- uData[0] = uAutoStartAddr/100+0x30;
- uData[1] = uAutoStartAddr%100/10+0x30;
- uData[2] = uAutoStartAddr%10+0x30;
- uData[3] = '\0';
- pData = uData;
- AutoScanSetupRight(pData,3,uAutoScanBarNum-3); //開始地址:
-
-
- //把數(shù)字轉換成字符 結束地址
- pData = 0;
- uData[0] = uAutoEndAddr/100+0x30;
- uData[1] = uAutoEndAddr%100/10+0x30;
- uData[2] = uAutoEndAddr%10+0x30;
- uData[3] = '\0';
- pData = uData;
- AutoScanSetupRight(pData,4,uAutoScanBarNum-4); //結束地址:
-
- //關機機時間 1秒 2秒 3秒 4秒 5秒
- pData = 0;
- uData[5] = 0;
- uData[0] = (uAutoSpaceTime)%100/10+0x30;
- uData[1] = (uAutoSpaceTime)%10+0x30;
- uData[2] = '\S';
- uData[3] = '\0';
- pData = uData;
- AutoScanSetupRight(pData,5,uAutoScanBarNum-5); //待機時間:
- }
- //系統(tǒng)參數(shù)設置 界面
- void SysSetupBarFun(unsigned char uSysSetupTimes)
- {
- unsigned char *pData = 0;
- unsigned char uTemp = 0;
- unsigned char uData[6] = 0;
-
- switch(uControlRuleItem) //控制協(xié)議目前范圍 1到10
- {
- case 1:
- pData = "PELCO-D";
- break;
- case 2:
- pData = "PELCO-P";
- break;
- case 3:
- pData = "KRE-302";
- break;
- case 4:
- pData = "Philips";
- break;
- case 5:
- pData = "Samsung";
- break;
- case 6:
- pData = "ADR8060";
- break;
- case 7:
- pData = "Dali";
- break;
- case 8:
- pData = "HIKVISION";
- break;
- case 9:
- pData = "Howell";
- break;
- case 10:
- pData = "Siemens";
- break;
- }
- SysSetupRight(pData,1,uSysSetupTimes-1); //控制協(xié)議: PELCO-P PELCO-D
- switch(uComSereialItem)
- {
- case 1:
- pData = "232";
- break;
- case 2:
- pData = "485";
- break;
- }
- SysSetupRight(pData,2,uSysSetupTimes-2); //通信串口:
- switch(uBaudRateItem)
- {
- //case 1:
- // pData = "300bps";
- // break;
- case 1:
- pData = "600bps";
- break;
- case 2:
- pData = "1200bps";
- break;
- case 3:
- pData = "2400bps";
- break;
- case 4:
- pData = "4800bps";
- break;
- case 5:
- pData = "9600bps";
- break;
- case 6:
- pData = "19200bps";
- break;
- case 7:
- pData = "38400bps";
- break;
- case 8:
- pData = "57600bps";
- break;
- //case 10:
- // pData = "115200bps";
- // break;
- }
-
- SysSetupRight(pData,3,uSysSetupTimes-3); //波特率:
- //把數(shù)字轉換成字符 運行速度
- pData = 0;
- uData[0] = uRunSpeedData/100+0x30;
- uData[1] = uRunSpeedData%100/10+0x30;
- uData[2] = uRunSpeedData%10+0x30;
- uData[3] = '\@';
- uData[4] = '\#';
- uData[5] = '\0';
- pData = uData;
- SysSetupRight(pData,4,uSysSetupTimes-4); //運行速度:
-
- //關機機時間
- pData = 0;
- uData[5] = 0;
- uData[0] = (uStandbyTime*5)%100/10+0x30;
- uData[1] = (uStandbyTime*5)%10+0x30;
- uData[2] = '\
- ;
- uData[3] = '\%';
- uData[4] = '\0';
- pData = uData;
- SysSetupRight(pData,5,uSysSetupTimes-5); //待機時間:
-
- //網(wǎng)線速度
- pData = 0;
- uData[5] = 0;
- uData[0] = uNetSpeed%100/10+0x30;
- uData[1] = uNetSpeed%10+0x30;
- uData[2] = '\@';
- uData[3] = '\#';
- uData[4] = '\0';
- pData = uData;
- SysSetupRight(pData,6,uSysSetupTimes-6);
- /* chen-- 取消屏幕亮度顯示
- //屏幕亮度
- pData = 0;
- uData[5] = 0;
- uData[0] = uLcdBright%100/10+0x30;
- uData[1] = uLcdBright%10+0x30;
- // uData[0] = '\(';
- // uData[1] = '\)';
- uData[2] = '\&'; //級
- uData[3] = '\0';
- pData = uData;
- SysSetupRight(pData,7,uSysSetupTimes-7); //屏幕亮度: 暫無
- */
- }
- /////////////////////////////////////////////PTZ///////////////////////////////////////////////////////
- //============================
- //函數(shù)名:ProtocolCalculation
- //作用:用于不同協(xié)議碼地址的更新和校驗碼的計算
- //輸入?yún)?shù):無
- //輸出參數(shù):無
- //============================
- void ProtocolCalculation(unsigned char uSerialType)
- {
- if(uControlRuleItem == 1)
- {
- PELCO_D[1]=(unsigned char)AddressSave;
- PELCO_D[6]=(unsigned char)(PELCO_D[1]+PELCO_D[2]+PELCO_D[3]+PELCO_D[4]+PELCO_D[5]);
- if(uSerialType == 2) //485
- Send_UART_Two(PELCO_D,7); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(PELCO_D,7); //發(fā)送串口數(shù)據(jù)
- }
- if(uControlRuleItem == 2)
- {
- PELCO_P[1]=(unsigned char)AddressSave-1;
- PELCO_P[7]=(unsigned char)(PELCO_P[0]^PELCO_P[1]^PELCO_P[2]^PELCO_P[3]^PELCO_P[4]^PELCO_P[5]^PELCO_P[6]);
- if(uSerialType == 2) //485
- Send_UART_Two(PELCO_P,8); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(PELCO_P,8); //發(fā)送串口數(shù)據(jù)
- }
- if(uControlRuleItem == 3)
- {
- KRE_302[2]=(unsigned char)AddressSave;
- if(uSerialType == 2) //485
- Send_UART_Two(KRE_302,6); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(KRE_302,6); //發(fā)送串口數(shù)據(jù)
- }
- if(uControlRuleItem == 4)
- {
- Philips[2]=(unsigned char)AddressSave;
- Philips[7]=(unsigned char)(Philips[0]+Philips[1]+Philips[2]+Philips[3]+Philips[4]+Philips[5]+Philips[6]);
- if(uSerialType == 2) //485
- Send_UART_Two(Philips,8); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(Philips,8); //發(fā)送串口數(shù)據(jù)
- }
- if(uControlRuleItem == 5)
- {
- Samsung[1]=(unsigned char)AddressSave;
- Samsung[8]=(unsigned char)(~(Samsung[1]+Samsung[2]+Samsung[3]+Samsung[4]+Samsung[5]+Samsung[6]+Samsung[7]));
- if(uSerialType == 2) //485
- Send_UART_Two(Samsung,9); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(Samsung,9); //發(fā)送串口數(shù)據(jù)
- }
- if(uControlRuleItem == 6)
- {
- ADR8060[2]=(unsigned char)AddressSave;
- ADR8060[4]=(unsigned char)(ADR8060[0]+ADR8060[1]+ADR8060[2]+ADR8060[3]);
- if(uSerialType == 2) //485
- Send_UART_Two(ADR8060,5); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(ADR8060,5); //發(fā)送串口數(shù)據(jù)
- }
- if(uControlRuleItem == 7)
- {
- Dali[1]=(unsigned char)AddressSave;
- Dali[5]=(unsigned char)(Dali[0]^Dali[1]^Dali[2]^Dali[3]^Dali[4]);
- if(uSerialType == 2) //485
- Send_UART_Two(Dali,6); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(Dali,6); //發(fā)送串口數(shù)據(jù)
- }
- if(uControlRuleItem == 8)
- {
- HIKVISION[1]=(unsigned char)AddressSave;
- HIKVISION[7]=(unsigned char)(HIKVISION[0]+HIKVISION[1]+HIKVISION[2]+HIKVISION[3]+HIKVISION[4]+HIKVISION[5]+HIKVISION[6]);
- if(uSerialType == 2) //485
- Send_UART_Two(HIKVISION,8); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(HIKVISION,8); //發(fā)送串口數(shù)據(jù)
- }
- if(uControlRuleItem == 9)
- {
- Howell[1]=(unsigned char)AddressSave;
- if(uSerialType == 2) //485
- Send_UART_Two(Howell,4); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(Howell,4); //發(fā)送串口數(shù)據(jù)
- }
- if(uControlRuleItem == 10)
- {
- Siemens[1]=(unsigned char)AddressSave;
- if(KeyValueSave==0) //向上
- {
- Siemens[2]=0x84;
- }
- else if(KeyValueSave==3) //向左
- {
- Siemens[2]=0x81;
- }
- else if(KeyValueSave==4) //向右
- {
- Siemens[2]=0x82;
- }
- else if(KeyValueSave==7)//向下
- {
- Siemens[2]=0x85;
- }
- else
- {
- Siemens[2]=~(Siemens[0]+Siemens[1])+1;
- }
- Siemens[4]=~(Siemens[0]+Siemens[1]+Siemens[2]+Siemens[3])+1;
-
- if(uSerialType == 2) //485
- Send_UART_Two(Siemens,5); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(Siemens,5); //發(fā)送串口數(shù)據(jù)
- }
- }
- //============================
- //函數(shù)名:AutoProtocolCalculation
- //作用:用于不同協(xié)議碼地址的更新和校驗碼的計算
- //輸入?yún)?shù):無
- //輸出參數(shù):無
- //============================
- void AutoProtocolCalculation(unsigned char uSerialType)
- {
- if(uAutoControlRuleItem == 1)
- {
- PELCO_D[1]=(unsigned char)uAutoSendTempAddr;
- PELCO_D[6]=(unsigned char)(PELCO_D[1]+PELCO_D[2]+PELCO_D[3]+PELCO_D[4]+PELCO_D[5]);
- if(uSerialType == 2) //485
- Send_UART_Two(PELCO_D,7); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(PELCO_D,7); //發(fā)送串口數(shù)據(jù)
- }
- if(uAutoControlRuleItem == 2)
- {
- PELCO_P[1]=(unsigned char)uAutoSendTempAddr-1;
- PELCO_P[7]=(unsigned char)(PELCO_P[0]^PELCO_P[1]^PELCO_P[2]^PELCO_P[3]^PELCO_P[4]^PELCO_P[5]^PELCO_P[6]);
- if(uSerialType == 2) //485
- Send_UART_Two(PELCO_P,8); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(PELCO_P,8); //發(fā)送串口數(shù)據(jù)
- }
- if(uAutoControlRuleItem == 3)
- {
- KRE_302[2]=(unsigned char)uAutoSendTempAddr;
- if(uSerialType == 2) //485
- Send_UART_Two(KRE_302,6); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(KRE_302,6); //發(fā)送串口數(shù)據(jù)
- }
- if(uAutoControlRuleItem == 4)
- {
- Philips[2]=(unsigned char)uAutoSendTempAddr;
- Philips[7]=(unsigned char)(Philips[0]+Philips[1]+Philips[2]+Philips[3]+Philips[4]+Philips[5]+Philips[6]);
- if(uSerialType == 2) //485
- Send_UART_Two(Philips,8); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(Philips,8); //發(fā)送串口數(shù)據(jù)
- }
- if(uAutoControlRuleItem == 5)
- {
- Samsung[1]=(unsigned char)uAutoSendTempAddr;
- Samsung[8]=(unsigned char)(~(Samsung[1]+Samsung[2]+Samsung[3]+Samsung[4]+Samsung[5]+Samsung[6]+Samsung[7]));
- if(uSerialType == 2) //485
- Send_UART_Two(Samsung,9); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(Samsung,9); //發(fā)送串口數(shù)據(jù)
- }
- if(uAutoControlRuleItem == 6)
- {
- ADR8060[2]=(unsigned char)uAutoSendTempAddr;
- ADR8060[4]=(unsigned char)(ADR8060[0]+ADR8060[1]+ADR8060[2]+ADR8060[3]);
- if(uSerialType == 2) //485
- Send_UART_Two(ADR8060,5); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(ADR8060,5); //發(fā)送串口數(shù)據(jù)
- }
- if(uAutoControlRuleItem == 7)
- {
- Dali[1]=(unsigned char)uAutoSendTempAddr;
- Dali[5]=(unsigned char)(Dali[0]^Dali[1]^Dali[2]^Dali[3]^Dali[4]);
- if(uSerialType == 2) //485
- Send_UART_Two(Dali,6); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(Dali,6); //發(fā)送串口數(shù)據(jù)
- }
- if(uAutoControlRuleItem == 8)
- {
- HIKVISION[1]=(unsigned char)uAutoSendTempAddr;
- HIKVISION[7]=(unsigned char)(HIKVISION[0]+HIKVISION[1]+HIKVISION[2]+HIKVISION[3]+HIKVISION[4]+HIKVISION[5]+HIKVISION[6]);
- if(uSerialType == 2) //485
- Send_UART_Two(HIKVISION,8); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(HIKVISION,8); //發(fā)送串口數(shù)據(jù)
- }
- if(uAutoControlRuleItem == 9)
- {
- Howell[1]=(unsigned char)uAutoSendTempAddr;
- if(uSerialType == 2) //485
- Send_UART_Two(Howell,4); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(Howell,4); //發(fā)送串口數(shù)據(jù)
- }
- if(uAutoControlRuleItem == 10)
- {
- Siemens[1]=(unsigned char)uAutoSendTempAddr;
- if(KeyValueSave==0) //向上
- {
- Siemens[2]=0x84;
- }
- else if(KeyValueSave==3) //向左
- {
- Siemens[2]=0x81;
- }
- else if(KeyValueSave==4) //向右
- {
- Siemens[2]=0x82;
- }
- else if(KeyValueSave==7)//向下
- {
- Siemens[2]=0x85;
- }
- else
- {
- Siemens[2]=~(Siemens[0]+Siemens[1])+1;
- }
- Siemens[4]=~(Siemens[0]+Siemens[1]+Siemens[2]+Siemens[3])+1;
-
- if(uSerialType == 2) //485
- Send_UART_Two(Siemens,5); //發(fā)送串口數(shù)據(jù)
- if(uSerialType == 1) //232
- Send_UART_One(Siemens,5); //發(fā)送串口數(shù)據(jù)
- }
- }
- //光圈關
- void PtzIrisClose(unsigned char uProtocolType)
- {
- if(uProtocolType == 1) //PELCO_D
- {
- PELCO_D[2]=0x04;
- PELCO_D[3]=0x00;
- PELCO_D[4]=0x00;
- PELCO_D[5]=0x00;
- }
- if(uProtocolType == 2)//PELCO_P
- {
- PELCO_P[2]=0x08;
- PELCO_P[3]=0x00;
- PELCO_P[4]=0x00;
- PELCO_P[5]=0x00;
- }
- if(uProtocolType == 3) //KRE_302
- {
- KRE_302[4]=0x07;
- }
- if(uProtocolType == 4) //Philips
- {
- Philips[3]=0x00;
- Philips[4]=0x00;
- Philips[5]=0x00;
- Philips[6]=0x00;
- }
- if(uProtocolType == 5) //Samsung
- {
- Samsung[4]=0x08;
- Samsung[5]=0x00;
- Samsung[6]=0x00;
- Samsung[7]=0x00;
- }
- if(uProtocolType == 6) //ADR8060
- {
- ADR8060[3]=0x60;
- }
- if(uProtocolType == 7) //Dali
- {
- Dali[3]=0x06;
- }
- if(uProtocolType == 8) //HIKVISION
- {
- HIKVISION[2]=0x0E;
- HIKVISION[3]=0x00;
- HIKVISION[4]=0x00;
- }
- if(uProtocolType == 9) //Howell
- {
- Howell[2]=0xB7;
- Howell[3]=0xF1;
- }
- if(uProtocolType == 10) // Siemens
- {
- Siemens[1]=0x91;
- Siemens[3]=0x00;
- }
- ProtocolCalculation(uComSereialItem);
- }
- //光圈開
- void PtzIrisOpen(unsigned char uProtocolType)
- {
- if(uProtocolType == 1) //PELCO_D
- {
- PELCO_D[2]=0x02;
- PELCO_D[3]=0x00;
- PELCO_D[4]=0x00;
- PELCO_D[5]=0x00;
- }
- if(uProtocolType == 2)//PELCO_P
- {
- PELCO_P[2]=0x04;
- PELCO_P[3]=0x00;
- PELCO_P[4]=0x00;
- PELCO_P[5]=0x00;
- }
- if(uProtocolType == 3) //KRE_302
- {
- KRE_302[4]=0x06;
- }
- if(uProtocolType == 4) //Philips
- {
- Philips[3]=0x00;
- Philips[4]=0x00;
- Philips[5]=0x00;
- Philips[6]=0x00;
- }
- if(uProtocolType == 5) //Samsung
- {
- Samsung[4]=0x10;
- Samsung[5]=0x00;
- Samsung[6]=0x00;
- Samsung[7]=0x00;
- }
- if(uProtocolType == 6) //ADR8060
- {
- ADR8060[3]=0x80;
- }
- if(uProtocolType == 7) //Dali
- {
- Dali[3]=0x05;
- }
- if(uProtocolType == 8) //HIKVISION
- {
- HIKVISION[2]=0x0F;
- HIKVISION[3]=0x00;
- HIKVISION[4]=0x00;
- }
- if(uProtocolType == 9) //Howell
- {
- Howell[2]=0xB6;
- Howell[3]=0xF1;
- }
- if(uProtocolType == 10) // Siemens
- {
- Siemens[1]=0x90;
- Siemens[3]=0x00;
- }
- ProtocolCalculation(uComSereialItem);
- }
- //焦距近
- void PtzFocusNear(unsigned char uProtocolType)
- {
- if(uProtocolType == 1) //PELCO_D
- {
- PELCO_D[2]=0x01;
- PELCO_D[3]=0x00;
- PELCO_D[4]=0x00;
- PELCO_D[5]=0x00;
- }
- if(uProtocolType == 2)//PELCO_P
- {
- PELCO_P[2]=0x02;
- PELCO_P[3]=0x00;
- PELCO_P[4]=0x00;
- PELCO_P[5]=0x00;
- }
- if(uProtocolType == 3) //KRE_302
- {
- KRE_302[4]=0x05;
- }
- if(uProtocolType == 4) //Philips
- {
- Philips[3]=0x00;
- Philips[4]=0x00;
- Philips[5]=0x00;
- Philips[6]=0x40;
- }
- if(uProtocolType == 5) //Samsung
- {
- Samsung[4]=0x02;
- Samsung[5]=0x00;
- Samsung[6]=0x00;
- Samsung[7]=0x00;
- }
- if(uProtocolType == 6) //ADR8060
- {
- ADR8060[3]=0x40;
- }
- if(uProtocolType == 7) //Dali
- {
- Dali[3]=0x09;
- }
- if(uProtocolType == 8) //HIKVISION
- {
- HIKVISION[2]=0x10;
- HIKVISION[3]=0x00;
- HIKVISION[4]=0x00;
- }
- if(uProtocolType == 9) //Howell
- {
- Howell[2]=0xB9;
- Howell[3]=0xF1;
- }
- if(uProtocolType == 10) // Siemens
- {
- Siemens[1]=0x87;
- Siemens[3]=0x00;
- }
- ProtocolCalculation(uComSereialItem);
- }
- //焦距遠
- void PtzFocusFar(unsigned char uProtocolType)
- {
- if(uProtocolType == 1) //PELCO_D
- {
- PELCO_D[2]=0x00;
- PELCO_D[3]=0x80;
- PELCO_D[4]=0x00;
- PELCO_D[5]=0x00;
- }
- if(uProtocolType == 2)//PELCO_P
- {
- PELCO_P[2]=0x01;
- PELCO_P[3]=0x00;
- PELCO_P[4]=0x00;
- PELCO_P[5]=0x00;
- }
- if(uProtocolType == 3) //KRE_302
- {
- KRE_302[4]=0x04;
- }
- if(uProtocolType == 4) //Philips
- {
- Philips[3]=0x00;
- Philips[4]=0x00;
- Philips[5]=0x01;
- Philips[6]=0x00;
- }
- if(uProtocolType == 5) //Samsung
- {
- Samsung[4]=0x01;
- Samsung[5]=0x00;
- Samsung[6]=0x00;
- Samsung[7]=0x00;
- }
- if(uProtocolType == 6) //ADR8060
- {
- ADR8060[3]=0x30;
- }
- if(uProtocolType == 7) //Dali
- {
- Dali[3]=0x0A;
- }
- if(uProtocolType == 8) //HIKVISION
- {
- HIKVISION[2]=0x11;
- HIKVISION[3]=0x00;
- HIKVISION[4]=0x00;
- }
- if(uProtocolType == 9) //Howell
- {
- Howell[2]=0xB8;
- Howell[3]=0xF1;
- }
- if(uProtocolType == 10) // Siemens
- {
- Siemens[1]=0x88;
- Siemens[3]=0x00;
- }
- ProtocolCalculation(uComSereialItem);
- }
- //放大 變倍遠
- void PtzZoomWide(unsigned char uProtocolType)
- {
- if(uProtocolType == 1) //PELCO_D
- {
- PELCO_D[2]=0x00;
- PELCO_D[3]=0x20;
- PELCO_D[4]=0x00;
- PELCO_D[5]=0x00;
- }
- if(uProtocolType == 2)//PELCO_P
- {
- PELCO_P[2]=0x00;
- PELCO_P[3]=0x20;
- PELCO_P[4]=0x00;
- PELCO_P[5]=0x00;
- }
- if(uProtocolType == 3) //KRE_302
- {
- KRE_302[4]=0x09;
- }
- if(uProtocolType == 4) //Philips
- {
- Philips[3]=0x00;
- Philips[4]=0x00;
- Philips[5]=0x00;
- Philips[6]=0x10;
- }
- if(uProtocolType == 5) //Samsung
- {
- Samsung[4]=0x20;
- Samsung[5]=0x00;
- Samsung[6]=0x00;
- Samsung[7]=0x00;
- }
- if(uProtocolType == 6) //ADR8060
- {
- ADR8060[3]=0x10;
- }
- if(uProtocolType == 7) //Dali
- {
- Dali[3]=0x07;
- }
- if(uProtocolType == 8) //HIKVISION
- {
- HIKVISION[2]=0x13;
- HIKVISION[3]=0x00;
- HIKVISION[4]=0x00;
- }
- if(uProtocolType == 9) //Howell
- {
- Howell[2]=0xBA;
- Howell[3]=0xF1;
- }
- if(uProtocolType == 10) // Siemens
- {
- Siemens[1]=0x8A;
- Siemens[3]=0x00;
- }
- ProtocolCalculation(uComSereialItem);
- }
- //縮小 變倍近
- void PtzZoomTele(unsigned char uProtocolType)
- {
- if(uProtocolType == 1) //PELCO_D
- {
- PELCO_D[2]=0x00;
- PELCO_D[3]=0x40;
- PELCO_D[4]=0x00;
- PELCO_D[5]=0x00;
- }
- if(uProtocolType == 2)//PELCO_P
- {
- PELCO_P[2]=0x00;
- PELCO_P[3]=0x40;
- PELCO_P[4]=0x00;
- PELCO_P[5]=0x00;
- }
- if(uProtocolType == 3) //KRE_302
- {
- KRE_302[4]=0x08;
- }
- if(uProtocolType == 4) //Philips
- {
- Philips[3]=0x00;
- Philips[4]=0x00;
- Philips[5]=0x00;
- Philips[6]=0x20;
- }
- if(uProtocolType == 5) //Samsung
- {
- Samsung[4]=0x40;
- Samsung[5]=0x00;
- Samsung[6]=0x00;
- Samsung[7]=0x00;
- }
- if(uProtocolType == 6) //ADR8060
- {
- ADR8060[3]=0x20;
- }
- if(uProtocolType == 7) //Dali
- {
- Dali[3]=0x08;
- }
- if(uProtocolType == 8) //HIKVISION
- {
- HIKVISION[2]=0x12;
- HIKVISION[3]=0x00;
- HIKVISION[4]=0x00;
- }
- if(uProtocolType == 9) //Howell
- {
- Howell[2]=0xBB;
- Howell[3]=0xF1;
- }
- if(uProtocolType == 10) // Siemens
- {
- Siemens[1]=0x8B;
- Siemens[3]=0x00;
- }
- ProtocolCalculation(uComSereialItem);
- }
- //云臺向下
- void PtzDown(unsigned char uProtocolType)
- {
- if(uProtocolType == 1) //PELCO_D
- {
- PELCO_D[2]=0x00;
- PELCO_D[3]=0x10;
- PELCO_D[4]=0x00;
- PELCO_D[5]=uRunSpeedData;
- }
- if(uProtocolType == 2)//PELCO_P
- {
- PELCO_P[2]=0x00;
- PELCO_P[3]=0x10;
- PELCO_P[4]=0x00;
- PELCO_P[5]=uRunSpeedData;
- }
- if(uProtocolType == 3) //KRE_302
- {
- KRE_302[4]=0x01;
- }
- if(uProtocolType == 4) //Philips
- {
- Philips[3]=0x0E;
- Philips[4]=0x30;
- Philips[5]=0x00;
- Philips[6]=0x04;
- }
- if(uProtocolType == 5) //Samsung
- {
- Samsung[4]=0x00;
- Samsung[5]=0x08;
- Samsung[6]=0x00;
- Samsung[7]=uRunSpeedData;
- }
- if(uProtocolType == 6) //ADR8060
- {
- ADR8060[3]=0x02;
- }
- if(uProtocolType == 7) //Dali
- {
- Dali[3]=0x02;
- }
- if(uProtocolType == 8) //HIKVISION
- {
- HIKVISION[2]=0x07;
- HIKVISION[3]=0x1F;
- HIKVISION[4]=0x00;
- }
- if(uProtocolType == 9) //Howell
- {
- Howell[2]=0xB1;
- Howell[3]=0x10;
- }
- if(uProtocolType == 10) // Siemens
- {
- Siemens[1]=0xC0;
- Siemens[3]=0x32;
- }
- ProtocolCalculation(uComSereialItem);
- }
- //AUTO 云臺向下
- void AutoPtzDown(unsigned char uProtocolType)
- {
- if(uProtocolType == 1) //PELCO_D
- {
- PELCO_D[2]=0x00;
- PELCO_D[3]=0x10;
- PELCO_D[4]=0x00;
- PELCO_D[5]=uRunSpeedData;
- }
- if(uProtocolType == 2)//PELCO_P
- {
- PELCO_P[2]=0x00;
- PELCO_P[3]=0x10;
- PELCO_P[4]=0x00;
- PELCO_P[5]=uRunSpeedData;
- }
- if(uProtocolType == 3) //KRE_302
- {
- KRE_302[4]=0x01;
- }
- if(uProtocolType == 4) //Philips
- {
- Philips[3]=0x0E;
- Philips[4]=0x30;
- Philips[5]=0x00;
- Philips[6]=0x04;
- }
- if(uProtocolType == 5) //Samsung
- {
- Samsung[4]=0x00;
- Samsung[5]=0x08;
- Samsung[6]=0x00;
- Samsung[7]=uRunSpeedData;
- }
- if(uProtocolType == 6) //ADR8060
- {
- ADR8060[3]=0x02;
- }
- if(uProtocolType == 7) //Dali
- {
- Dali[3]=0x02;
- }
- if(uProtocolType == 8) //HIKVISION
- {
- HIKVISION[2]=0x07;
- HIKVISION[3]=0x1F;
- HIKVISION[4]=0x00;
- }
- if(uProtocolType == 9) //Howell
- {
- Howell[2]=0xB1;
- Howell[3]=0x10;
- }
- if(uProtocolType == 10) // Siemens
- {
- Siemens[1]=0xC0;
- Siemens[3]=0x32;
- }
- AutoProtocolCalculation(uComSereialItem);
- }
- //云臺向上
- void PtzUp(unsigned char uProtocolType)
- {
- if(uProtocolType == 1) //PELCO_D
- {
- PELCO_D[2]=0x00;
- PELCO_D[3]=0x08;
- PELCO_D[4]=0x00;
- PELCO_D[5]=uRunSpeedData;
- }
- if(uProtocolType == 2)//PELCO_P
- {
- PELCO_P[2]=0x00;
- PELCO_P[3]=0x08;
- PELCO_P[4]=0x00;
- PELCO_P[5]=uRunSpeedData;
- }
- if(uProtocolType == 3) //KRE_302
- {
- KRE_302[4]=0x00;
- }
- if(uProtocolType == 4) //Philips
- {
- Philips[3]=0x0E;
- Philips[4]=0x30;
- Philips[5]=0x00;
- Philips[6]=0x08;
- }
- if(uProtocolType == 5) //Samsung
- {
- Samsung[4]=0x00;
- Samsung[5]=0x04;
- Samsung[6]=0x00;
- Samsung[7]=uRunSpeedData;
- }
- if(uProtocolType == 6) //ADR8060
- {
- ADR8060[3]=0x01;
- }
- if(uProtocolType == 7) //Dali
- {
- Dali[3]=0x01;
- }
- if(uProtocolType == 8) //HIKVISION
- {
- HIKVISION[2]=0x06;
- HIKVISION[3]=0x1F;
- HIKVISION[4]=0x00;
- }
- if(uProtocolType == 9) //Howell
- {
- Howell[2]=0xB0;
- Howell[3]=0x10;
- }
- if(uProtocolType == 10) // Siemens
- {
- Siemens[1]=0xC0;
- Siemens[3]=0x32;
- }
- ProtocolCalculation(uComSereialItem);
- }
- //自動云臺向上
- void AutoPtzUp(unsigned char uProtocolType)
- {
- if(uProtocolType == 1) //PELCO_D
- {
- PELCO_D[2]=0x00;
- PELCO_D[3]=0x08;
- PELCO_D[4]=0x00;
- PELCO_D[5]=0x30;
- }
- if(uProtocolType == 2)//PELCO_P
- {
- PELCO_P[2]=0x00;
- PELCO_P[3]=0x08;
- PELCO_P[4]=0x00;
- PELCO_P[5]=0x30;
- }
- if(uProtocolType == 3) //KRE_302
- {
- KRE_302[4]=0x00;
- }
- if(uProtocolType == 4) //Philips
- {
- Philips[3]=0x0E;
- Philips[4]=0x30;
- Philips[5]=0x00;
- Philips[6]=0x08;
- }
- if(uProtocolType == 5) //Samsung
- {
- Samsung[4]=0x00;
- Samsung[5]=0x04;
- Samsung[6]=0x00;
- Samsung[7]=uRunSpeedData;
- }
- if(uProtocolType == 6) //ADR8060
- {
- ADR8060[3]=0x01;
- }
- if(uProtocolType == 7) //Dali
- {
- Dali[3]=0x01;
- }
- if(uProtocolType == 8) //HIKVISION
- {
- HIKVISION[2]=0x06;
- HIKVISION[3]=0x1F;
- HIKVISION[4]=0x00;
- }
- if(uProtocolType == 9) //Howell
- {
- Howell[2]=0xB0;
- Howell[3]=0x10;
- }
- if(uProtocolType == 10) // Siemens
- {
- Siemens[1]=0xC0;
- Siemens[3]=0x32;
- }
- AutoProtocolCalculation(uComSereialItem);
- }
- //云臺向左
- void PtzLeft(unsigned char uProtocolType)
- {
- if(uProtocolType == 1) //PELCO_D
- {
- PELCO_D[2]=0x00;
- PELCO_D[3]=0x04;
- PELCO_D[4]=uRunSpeedData;
- PELCO_D[5]=0x00;
- }
- if(uProtocolType == 2)//PELCO_P
- {
- PELCO_P[2]=0x00;
- PELCO_P[3]=0x04;
- PELCO_P[4]=uRunSpeedData;
- PELCO_P[5]=0x00;
- }
- if(uProtocolType == 3) //KRE_302
- {
- KRE_302[4]=0x02;
- }
- if(uProtocolType == 4) //Philips
- {
- Philips[3]=0x0E;
- Philips[4]=0x30;
- Philips[5]=0x00;
- Philips[6]=0x02;
- }
- if(uProtocolType == 5) //Samsung
- {
- Samsung[4]=0x00;
- Samsung[5]=0x01;
- Samsung[6]=uRunSpeedData;
- Samsung[7]=0x00;
- }
- if(uProtocolType == 6) //ADR8060
- {
- ADR8060[3]=0x04;
- }
- if(uProtocolType == 7) //Dali
- {
- Dali[3]=0x03;
- }
- if(uProtocolType == 8) //HIKVISION
- {
- HIKVISION[2]=0x09;
- HIKVISION[3]=0x00;
- HIKVISION[4]=0x1F;
- }
- if(uProtocolType == 9) //Howell
- {
- Howell[2]=0xAE;
- Howell[3]=0x10;
- }
- if(uProtocolType == 10) // Siemens
- {
- Siemens[1]=0xC0;
- Siemens[3]=0x32;
- }
- ProtocolCalculation(uComSereialItem);
- }
- //云臺向右
- void PtzRight(unsigned char uProtocolType)
- {
- if(uProtocolType == 1) //PELCO_D
- {
- PELCO_D[2]=0x00;
- PELCO_D[3]=0x02;
- PELCO_D[4]=uRunSpeedData;
- PELCO_D[5]=0x00;
- }
- if(uProtocolType == 2)//PELCO_P
- {
- PELCO_P[2]=0x00;
- PELCO_P[3]=0x02;
- PELCO_P[4]=uRunSpeedData;
- PELCO_P[5]=0x00;
- }
- if(uProtocolType == 3) //KRE_302
- {
- KRE_302[4]=0x03;
- }
- if(uProtocolType == 4) //Philips
- {
- Philips[3]=0x0E;
- Philips[4]=0x30;
- Philips[5]=0x00;
- Philips[6]=0x01;
- }
- if(uProtocolType == 5) //Samsung
- {
- Samsung[4]=0x00;
- Samsung[5]=0x02;
- Samsung[6]=uRunSpeedData;
- Samsung[7]=0x00;
- }
- if(uProtocolType == 6) //ADR8060
- {
- ADR8060[3]=0x08;
- }
- if(uProtocolType == 7) //Dali
- {
- Dali[3]=0x04;
- }
- if(uProtocolType == 8) //HIKVISION
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
工程寶資料.rar
(91.57 KB, 下載次數(shù): 73)
2018-7-27 11:39 上傳
點擊文件名下載附件
|