📄 airguard_c.cpp
字号:
g_myCamera.TiltDown();
break;
case ACK_BN_UP:
g_myCamera.StopTiltDown();
break;
}
break;
case ID_RIGHTBUTTON:
switch(wmEvent){
case ACK_BN_DOWN:
g_myCamera.PanRight();
break;
case ACK_BN_UP:
g_myCamera.StopPanRight();
break;
}
break;
case ID_PIEBUTTON:
switch(wmEvent){
case ACK_BN_DOWN:
break;
case ACK_BN_UP:
SnapStill2Bmp(1, 0, "D:\\CaptureX\\testOrg.bmp");
//MessageBox(hWnd, "Picture captured!", "message", MB_OK);
//CvtBmpTo320("D:\\CaptureX\\testOrg.bmp", "D:\\CaptureX\\test320.bmp");
break;
}
break;
case ID_PLUSBUTTON:
switch(wmEvent){
case ACK_BN_DOWN:
if(SendMessage(g_hwndRadioZoom, BM_GETCHECK, 0L, 0L)){
g_myCamera.ZoomTelephoto();
}
else if(SendMessage(g_hwndRadioFocus, BM_GETCHECK, 0L, 0L)){
g_myCamera.FocusFar();
}
else if(SendMessage(g_hwndRadioAperture, BM_GETCHECK, 0L, 0L)){
g_myCamera.IrisOpen();
}
break;
case ACK_BN_UP:
if(SendMessage(g_hwndRadioZoom, BM_GETCHECK, 0L, 0L)){
g_myCamera.StopZoomTelephoto();
}
else if(SendMessage(g_hwndRadioFocus, BM_GETCHECK, 0L, 0L)){
g_myCamera.StopFocusFar();
}
else if(SendMessage(g_hwndRadioAperture, BM_GETCHECK, 0L, 0L)){
g_myCamera.StopIrisOpen();
}
break;
}
break;
case ID_MINUSBUTTON:
switch(wmEvent){
case ACK_BN_DOWN:
if(SendMessage(g_hwndRadioZoom, BM_GETCHECK, 0L, 0L)){
g_myCamera.ZoomWide();
}
else if(SendMessage(g_hwndRadioFocus, BM_GETCHECK, 0L, 0L)){
g_myCamera.FocusNear();
}
else if(SendMessage(g_hwndRadioAperture, BM_GETCHECK, 0L, 0L)){
g_myCamera.IrisClose();
}
break;
case ACK_BN_UP:
if(SendMessage(g_hwndRadioZoom, BM_GETCHECK, 0L, 0L)){
g_myCamera.StopZoomWide();
}
else if(SendMessage(g_hwndRadioFocus, BM_GETCHECK, 0L, 0L)){
g_myCamera.StopFocusNear();
}
else if(SendMessage(g_hwndRadioAperture, BM_GETCHECK, 0L, 0L)){
g_myCamera.StopIrisClose();
}
break;
}
}
return 1;
}
bool MainWindow_OnCommand(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId = LOWORD(wParam);
int wmEvent = HIWORD(wParam);
RECT rect;
// Parse the menu selections:
switch (wmId)
{
case IDM_TEST_SAVEIMAGE:
SnapStill2Bmp(1, 0, "D:\\CaptureX\\testOrg.bmp");
break;
case IDM_TEST_STARTRECV:
//g_myCamera.MPEG_StartRecvShow(g_hwndVideo_MPEG);
rect.left = 0;
rect.top = 0;
rect.right = 640;
rect.bottom = 480;
if (g_hwndVideo_MPEG == 0){
g_hwndVideo_MPEG = CreateDialog(g_hInst, (LPCTSTR)IDD_VIDEO_MPEG, g_hwndVideo, (DLGPROC)Video_MPEGWndProc);
if (!(g_hwndVideo_MPEG))
MessageBox(NULL, "Create Video Window error", "error", MB_OK);
}
RecvShowMPEG(g_hwndVideo_MPEG, g_hwndVideo_MPEG, 1, LXD_RECEIVE_BROADCAST, rect, "",
"",6000, LXD_VIDEO_MODE_PAL,
LXD_MPEG1_VIDEO,"");
ShowWindow(g_hwndVideo_MPEG, SW_SHOW);
return 1;
case IDM_TEST_STOPRECV:
StopRecvShowMPEG(1);
DestroyWindow(g_hwndVideo_MPEG);
g_hwndVideo_MPEG = 0;
break;
case IDM_DATABASE_MANAGER:
WinExec(g_myDIB.DBGetDBManager(), SW_SHOWNORMAL);
break;
case IDM_DATABASE_CONFIG:
DialogBox(g_hInst, MAKEINTRESOURCE(IDD_DBCONFIG), hWnd, (DLGPROC)DlgDatebaseConfiguration);
break;
case ID_RADIOAUTO:
if( g_mySysState.iOpMode != AUTOMODE){
g_mySysState.iOpMode = AUTOMODE;
EnterAutoMode();
}
//MessageBox(NULL, "ID_RADIOAUTO", "message", MB_OK);
break;
case ID_RADIOMANUAL:
if(g_mySysState.iOpMode != MANUALMODE){
g_mySysState.iOpMode = MANUALMODE;
EnterManualMode();
}
break;
case ID_CHECKBOXSOUND:
if(SendMessage(g_hwndCheckBoxBeep, BM_GETCHECK, 0L, 0L))
g_mySysState.bSoundAlarm = 1;
else g_mySysState.bSoundAlarm = 0;
break;
case IDM_TOOLS_CREATETEMPLATE:
switch(g_myCamera.pCameraList[g_myCamera.m_iCurrentCamera].iType){
case JIMU:
JIMU_CreateChimneyTemplate();
break;
case MPEG:
MPEG_CreateChimneyTemplate1();
break;
case INVALID:
break;
default:
break;
}
break;
case IDM_SETTINGS_SITESETTINGS:
g_hwndSiteSettings = CreateWindowEx(WS_EX_STATICEDGE, "SiteSettingsWindow", 0,
WS_SYSMENU | WS_VISIBLE, 145, 25, 640, 480,
hWnd, NULL, g_hInst, 0);
if (!g_hwndSiteSettings)
MessageBox(NULL, "Create SiteSettings Window error", "error", MB_OK);
break;
case IDM_ABOUT:
DialogBox(g_hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
case ID_BTNGOTO:
DialogBox(g_hInst, MAKEINTRESOURCE(IDD_GOTOPRESET), hWnd, (DLGPROC)DlgGotoPreset);
break;
case ID_BTNSETPRESET:
DialogBox(g_hInst, MAKEINTRESOURCE(IDD_SETPRESET), hWnd, (DLGPROC)DlgSetPreset);
break;
default:
if((wmId >= ID_BTNCAMNUM_0) && (wmId <= ID_BTNCAMNUM_15)){
wmId = wmId - ID_BTNCAMNUM_0;
switch(g_myCamera.pCameraList[wmId].iType){
case MPEG:
if (g_hwndVideo_JIMU != 0){
DestroyWindow(g_hwndVideo_JIMU);
g_hwndVideo_JIMU = 0;
}
if (g_hwndVideo_MPEG != 0){
DestroyWindow(g_hwndVideo_MPEG);
g_hwndVideo_MPEG = 0;
}
if (g_hwndVideo_MPEG == 0){
g_hwndVideo_MPEG = CreateDialog(g_hInst, MAKEINTRESOURCE(IDD_VIDEO_MPEG), g_hwndVideo,
(DLGPROC)Video_MPEGWndProc);
if (!g_hwndVideo_MPEG)
MessageBox(NULL, "Create MPEG Video Window error", "error", MB_OK);
}
g_myCamera.SwitchCamera(g_hwndMainWindow, g_hwndVideo_MPEG, wmId);
break;
case JIMU:
if (g_hwndVideo_JIMU != 0){
DestroyWindow(g_hwndVideo_JIMU);
g_hwndVideo_JIMU = 0;
}
if (g_hwndVideo_MPEG != 0){
DestroyWindow(g_hwndVideo_MPEG);
g_hwndVideo_MPEG = 0;
}
if (g_hwndVideo_JIMU == 0){
g_hwndVideo_JIMU = CreateDialog(g_hInst, MAKEINTRESOURCE(IDD_VIDEO_JIMU), g_hwndVideo,
(DLGPROC)Video_JIMUWndProc);
if (!g_hwndVideo_JIMU)
MessageBox(NULL, "Create JIMU Video Window error", "error", MB_OK);
}
g_myCamera.SwitchCamera(g_hwndVideo_JIMU, NULL, wmId);
break;
case INVALID:
if (g_hwndVideo_JIMU != 0){
DestroyWindow(g_hwndVideo_JIMU);
g_hwndVideo_JIMU = 0;
}
if (g_hwndVideo_MPEG != 0){
DestroyWindow(g_hwndVideo_MPEG);
g_hwndVideo_MPEG = 0;
}
g_myCamera.SwitchCamera(0, 0, wmId);
break;
default:
break;
}
} // End if...
// default:
} // switch
return 1;
}
BOOL CALLBACK DlgGotoPreset(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
CHAR lpszBuffer[30];
int nPresetNum;
switch (uMsg){
case WM_INITDIALOG:
SetFocus(GetDlgItem(hwndDlg, IDC_EDIT_PRESETNUM));
return false;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK){
GetDlgItemText(hwndDlg, IDC_EDIT_PRESETNUM, lpszBuffer, 20);
nPresetNum = atoi(lpszBuffer);
if(!(g_myCamera.m_iCurrentCamera == INVALIDCAMERA))
g_myCamera.m_iCurrentChimney = nPresetNum;
g_myCamera.GotoPreset(nPresetNum);
}
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hwndDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return false;
}
BOOL CALLBACK DlgSetPreset(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
CHAR lpszBuffer[30];
int nPresetNum;
switch (uMsg){
case WM_INITDIALOG:
SetFocus(GetDlgItem(hwndDlg, IDC_EDIT_PRESETNUM));
return false;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK){
GetDlgItemText(hwndDlg, IDC_EDIT_PRESETNUM, lpszBuffer, 20);
nPresetNum = atoi(lpszBuffer);
g_myCamera.SetPreset(nPresetNum);
}
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hwndDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return false;
}
bool MPEG_VideoWindow_OnContextMenu1(HWND hWnd, WPARAM wParam, LPARAM lParam)
{
char lpszTempOrg[100];
g_mySysState.iProcedureToBeContinued = VDO_ONCONTEXTMENU_2;
g_mySysState.MPEG_MessageProcessToBeContinued.hWnd = hWnd;
g_mySysState.MPEG_MessageProcessToBeContinued.lParam = lParam;
g_mySysState.MPEG_MessageProcessToBeContinued.wParam = wParam;
sprintf(lpszTempOrg, "%s\TempOrg.bmp", g_myFileName.GetCaptureFilePath());
SnapStill2Bmp(1, 0, lpszTempOrg);
return 1;
}
bool MPEG_VideoWindow_OnContextMenu2()
{
HDC hMemDc, hdc;
HBITMAP hBitmap;
COLORREF crPointColor;
RECT rect;
WORD xPos, yPos;
WORD wGrayValue, r, g, b;
float fBlackness;
char lpszMessage[100];
char lpszTempOrg[100], lpszTemp320[100];
static HCURSOR hCursor;
POINT pt;
HWND hWnd = g_mySysState.MPEG_MessageProcessToBeContinued.hWnd;
WPARAM wParam = g_mySysState.MPEG_MessageProcessToBeContinued.wParam;
LPARAM lParam = g_mySysState.MPEG_MessageProcessToBeContinued.lParam;
pt.x = LOWORD(lParam);
pt.y = HIWORD(lParam);
ScreenToClient(hWnd, &pt);
xPos = pt.x;
yPos = pt.y;
sprintf(lpszTempOrg, "%s\TempOrg.bmp", g_myFileName.GetCaptureFilePath());
sprintf(lpszTemp320, "%s\Temp320.bmp", g_myFileName.GetCaptureFilePath());
MPEG_CvtBmpTo320(lpszTempOrg, lpszTemp320);
hdc = GetDC(g_hwndMainWindow);
g_myDIB2.LoadDIB(lpszTemp320);
hMemDc = CreateCompatibleDC(hdc);
hBitmap = CreateCompatibleBitmap(hdc, 320, 240);
SelectObject(hMemDc, hBitmap);
rect.left = 0;
rect.top = 0;
rect.right = 320;
rect.bottom = 240;
g_myDIB2.ShowDIB(hMemDc, rect);
crPointColor = GetPixel(hMemDc, xPos / 2, yPos / 2);
DeleteDC(hMemDc);
DeleteObject(hBitmap);
g_myDIB2.CloseDIBFile();
ReleaseDC(g_hwndMainWindow, hdc);
r = LOWORD(crPointColor) & 0x00ff;
g = (LOWORD(crPointColor) >> 8) & 0x00ff;
b = HIWORD(crPointColor) & 0x00ff;
wGrayValue = (r + g + b) / 3;
wGrayValue = 255 - wGrayValue;
fBlackness = (float)wGrayValue / 51;
fBlackness = fBlackness * g_myCamera.m_iIllumination/100;
sprintf(lpszMessage, "%3.1f", fBlackness);
SetWindowText(g_hwndEditBlackness, lpszMessage); // 0431-5702169
if (fBlackness >= g_myCamera.GetCriticalPoint()){
if(g_mySysState.bSoundAlarm)
MessageBeep(MB_ICONEXCLAMATION);
MPEG_SaveDIBFileIntoDatebase(lpszTemp320, fBlackness, g_myCamera.m_iCurrentChimney, g_myCamera.m_iCurrentCamera);
}
g_mySysState.iProcedureToBeContinued = -1;
return 1;
}
bool MPEG_CvtBmpTo320(LPSTR lpszSocFileName, LPSTR lpszDstFileName)
{
HDC hdc;
hdc = GetDC(g_hwndMainWindow);
g_myDIB2.LoadDIB(lpszSocFileName);
HDC hMemDc;
HBITMAP hBitmap;
RECT rect;
rect.left = 0;
rect.top = 0;
rect.right = 352;
rect.bottom =288;
hMemDc = CreateCompatibleDC(hdc);
hBitmap = CreateCompatibleBitmap(hdc, 352, 288);
SelectObject(hMemDc, hBitmap);
g_myDIB2.ShowDIB(hMemDc, rect);
g_myDIB.SaveStretchedDIB(hMemDc, rect, lpszDstFileName);
DeleteDC(hMemDc);
DeleteObject(hBitmap);
g_myDIB2.CloseDIBFile();
ReleaseDC(g_hwndMainWindow, hdc);
return 1;
}
bool MPEG_SaveDIBFileIntoDatebase(LPSTR lpszFileName, float fBlackness, int nObjectID, int nCameraID)
// The bmp file refered to by lpszFileName must be a 320 * 240 bmp
{
HDC hdc;
hdc = GetDC(g_hwndMainWindow);
g_myDIB2.LoadDIB(lpszFileName);
HDC hMemDc;
HBITMAP hBitmap;
RECT rect;
rect.left = 0;
rect.top = 0;
rect.right = 320;
rect.bottom =240;
hMemDc = CreateCompatibleDC(hdc);
hBitmap = CreateCompatibleBitmap(hdc, 320, 240);
SelectObject(hMemDc, hBitmap);
g_myDIB2.ShowDIB(hMemDc, rect);
g_myDIB.SaveDIBintoDatebase(hMemDc, rect, fBlackness, nObjectID, nCameraID);
DeleteDC(hMemDc);
DeleteObject(hBitmap);
g_myDIB2.CloseDIBFile();
ReleaseDC(g_hwndMainWindow, hdc);
return 1;
}
bool MPEG_CreateChimneyTemplate1()
{
char lpszTempOrg[100];
g_mySysState.iProcedureToBeContinued = CREATE_CHIMNEY_TEMPLATE2;
sprintf(lpszTempOrg, "%s\TempOrg.bmp",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -