?? dlgs.c
字號:
/***************************************************************************
FILE : DLGS.C TYP ( PROG/UNIT ) : UNIT
AUTOR : rw
DATE : 12.01.2004
Description :
- WIN Demo for CanCam
- Dialog
***************************************************************************/
#include <windows.h>
#include <stdio.h>
#include <commctrl.h> // Headerfile der Common Controls
#include "dlgs.h"
#include "Grabber.h"
#include "CanCam.h"
//BYTE v_size;
extern char host_adr[20];
extern WORD port_adr, itime, wx1, wx2, wy1, wy2;
extern DWORD exptime;
extern BYTE cal_param, gain;
extern WORD row_delay, frame_delay;
extern BYTE ss_mode,ss_d_h,ss_d_v,ss_a_h,ss_a_v;
extern BYTE snapshot_trigger, snapshot_shutter,snapshot_reset;
extern BYTE gain0,gain1,gain2,gain3,low_light;
extern BYTE io_port[4];
extern WORD img_cnt;
extern DWORD fpga_mem_offset;
extern BYTE camera;
extern char szAppName[];
WORD fpga_reg = 0;
DWORD fpga_value = 0;
BOOL CALLBACK SettingsDlg (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
BOOL istate;
switch (iMsg)
{
case WM_INITDIALOG :
strcpy(host_adr,"192.168.0.70");
port_adr = 4711;
SetDlgItemText(hDlg,IDC_HOST,host_adr);
SetDlgItemInt(hDlg,IDC_PORT,port_adr,FALSE);
SetDlgItemInt(hDlg,IDC_CAMERA,camera,FALSE);
return TRUE ;
case WM_COMMAND :
switch(LOWORD(wParam))
{
case IDOK:
GetDlgItemText(hDlg,IDC_HOST,host_adr,sizeof(host_adr));
port_adr = GetDlgItemInt(hDlg,IDC_PORT,&istate,FALSE);
camera = GetDlgItemInt(hDlg,IDC_CAMERA,&istate,FALSE);
EndDialog(hDlg,IDOK);
return TRUE;
case IDCANCEL:
EndDialog(hDlg,IDCANCEL);
return TRUE;
}
break;
}
return FALSE ;
}
BOOL CALLBACK IODlg (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
BYTE p_val=0;
static BYTE lio_port[4];
switch (iMsg)
{
case WM_INITDIALOG :
SendDlgItemMessage (hDlg, IDC_PORT_0_OUT, BM_SETCHECK, (WPARAM)BST_CHECKED, 0);
SendDlgItemMessage (hDlg, IDC_PORT_1_OUT, BM_SETCHECK, (WPARAM)BST_CHECKED, 0);
if(io_port[2])
SendDlgItemMessage (hDlg, IDC_PORT_2_OUT, BM_SETCHECK, (WPARAM)BST_CHECKED, 0);
else
SendDlgItemMessage (hDlg, IDC_PORT_2_IN, BM_SETCHECK, (WPARAM)BST_CHECKED, 0);
if(io_port[3])
SendDlgItemMessage (hDlg, IDC_PORT_3_OUT, BM_SETCHECK, (WPARAM)BST_CHECKED, 0);
else
SendDlgItemMessage (hDlg, IDC_PORT_3_IN, BM_SETCHECK, (WPARAM)BST_CHECKED, 0);
lio_port[0] = io_port[0];
lio_port[1] = io_port[1];
lio_port[2] = io_port[2];
lio_port[3] = io_port[3];
SetTimer(hDlg,1,500,NULL);
return TRUE ;
case WM_TIMER:
KillTimer(hDlg,1);
if(lio_port[2] == 0)
{
get_io_port(camera,2,&p_val);
SendDlgItemMessage (hDlg, IDC_PORT_2, BM_SETCHECK, (WPARAM)p_val, 0);
}
if(lio_port[3] == 0)
{
get_io_port(camera,3,&p_val);
SendDlgItemMessage (hDlg, IDC_PORT_3, BM_SETCHECK, (WPARAM)p_val, 0);
}
SetTimer(hDlg,1,200,NULL);
return TRUE;
case WM_COMMAND :
switch(LOWORD(wParam))
{
case IDOK:
KillTimer(hDlg,1);
if(SendDlgItemMessage (hDlg, IDC_PORT_0_OUT, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)
io_port[0] = 1;
else
io_port[0] = 0;
if(SendDlgItemMessage (hDlg, IDC_PORT_1_OUT, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)
io_port[1] = 1;
else
io_port[1] = 0;
if(SendDlgItemMessage (hDlg, IDC_PORT_2_OUT, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)
io_port[2] = 1;
else
io_port[2] = 0;
if(SendDlgItemMessage (hDlg, IDC_PORT_3_OUT, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)
io_port[3] = 1;
else
io_port[3] = 0;
EndDialog(hDlg,IDOK);
return TRUE;
case IDCANCEL:
EndDialog(hDlg,IDCANCEL);
return TRUE;
case IDC_PORT_SET:
p_val = 0;
if(SendDlgItemMessage (hDlg, IDC_PORT_0_OUT, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)
{
p_val = 1;
lio_port[0] = 1;
}
if(SendDlgItemMessage (hDlg, IDC_PORT_1_OUT, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)
{
p_val += 2;
lio_port[1] = 1;
}
if(SendDlgItemMessage (hDlg, IDC_PORT_2_OUT, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)
{
p_val += 4;
lio_port[2] = 1;
}
else
lio_port[2] = 0;
if(SendDlgItemMessage (hDlg, IDC_PORT_3_OUT, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)
{
p_val += 8;
lio_port[3] = 1;
}
else
lio_port[3] = 0;
config_io_ports(camera,p_val);
return TRUE;
case IDC_PORT_0:
if(SendDlgItemMessage (hDlg, IDC_PORT_0, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)
set_io_port(camera,0,1);
else
set_io_port(camera,0,0);
return TRUE;
case IDC_PORT_1:
if(SendDlgItemMessage (hDlg, IDC_PORT_1, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)
set_io_port(camera,1,1);
else
set_io_port(camera,1,0);
return TRUE;
case IDC_PORT_2:
if(lio_port[2] == 1)
{
if(SendDlgItemMessage (hDlg, IDC_PORT_2, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)
set_io_port(camera,2,1);
else
set_io_port(camera,2,0);
}
else
SendDlgItemMessage (hDlg, IDC_PORT_2, BM_SETCHECK, (WPARAM)BST_UNCHECKED, 0);
return TRUE;
case IDC_PORT_3:
if(lio_port[3] == 1)
{
if(SendDlgItemMessage (hDlg, IDC_PORT_3, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)
set_io_port(camera,3,1);
else
set_io_port(camera,3,0);
}
else
SendDlgItemMessage (hDlg, IDC_PORT_3, BM_SETCHECK, (WPARAM)BST_UNCHECKED, 0);
return TRUE;
}
break;
}
return FALSE ;
}
BOOL CALLBACK SetParamDlg (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
BOOL istate;
int p_val;
switch (iMsg)
{
case WM_INITDIALOG :
SetDlgItemInt(hDlg,IDC_PARAM,cal_param,FALSE);
return TRUE ;
case WM_COMMAND :
switch(LOWORD(wParam))
{
case IDC_PARAM:
p_val = GetDlgItemInt(hDlg,IDC_PARAM,&istate,FALSE);
if(p_val < 0)
{
p_val = 0;
SetDlgItemInt(hDlg,IDC_PARAM,p_val,FALSE);
}
if(p_val > 255)
{
p_val = 255;
SetDlgItemInt(hDlg,IDC_PARAM,p_val,FALSE);
}
return TRUE;
case IDOK:
cal_param = GetDlgItemInt(hDlg,IDC_PARAM,&istate,FALSE);
EndDialog(hDlg,IDOK);
return TRUE;
case IDCANCEL:
EndDialog(hDlg,IDCANCEL);
return TRUE;
}
break;
}
return FALSE ;
}
BOOL CALLBACK SetITimeDlg (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
BOOL istate;
int p_val;
switch (iMsg)
{
case WM_INITDIALOG :
SetDlgItemInt(hDlg,IDC_PARAM,itime,FALSE);
return TRUE ;
case WM_COMMAND :
switch(LOWORD(wParam))
{
case IDC_PARAM:
p_val = GetDlgItemInt(hDlg,IDC_PARAM,&istate,FALSE);
if(p_val < 0)
{
p_val = 0;
SetDlgItemInt(hDlg,IDC_PARAM,p_val,FALSE);
}
if(p_val > 32767)
{
p_val = 32767;
SetDlgItemInt(hDlg,IDC_PARAM,p_val,FALSE);
}
return TRUE;
case IDOK:
itime = GetDlgItemInt(hDlg,IDC_PARAM,&istate,FALSE);
EndDialog(hDlg,IDOK);
return TRUE;
case IDCANCEL:
EndDialog(hDlg,IDCANCEL);
return TRUE;
}
break;
}
return FALSE ;
}
BOOL CALLBACK SetExpTimeDlg (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
BOOL istate;
int p_val;
switch (iMsg)
{
case WM_INITDIALOG :
SetDlgItemInt(hDlg,IDC_PARAM,exptime,FALSE);
return TRUE ;
case WM_COMMAND :
switch(LOWORD(wParam))
{
case IDC_PARAM:
p_val = GetDlgItemInt(hDlg,IDC_PARAM,&istate,FALSE);
if(p_val < 0)
{
p_val = 0;
SetDlgItemInt(hDlg,IDC_PARAM,p_val,FALSE);
}
return TRUE;
case IDOK:
exptime = GetDlgItemInt(hDlg,IDC_PARAM,&istate,FALSE);
EndDialog(hDlg,IDOK);
return TRUE;
case IDCANCEL:
EndDialog(hDlg,IDCANCEL);
return TRUE;
}
break;
}
return FALSE ;
}
BOOL CALLBACK SetGainDlg (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
BOOL istate;
int p_val;
switch (iMsg)
{
case WM_INITDIALOG :
SetDlgItemInt(hDlg,IDC_GAIN0,gain0,FALSE);
SetDlgItemInt(hDlg,IDC_GAIN1,gain1,FALSE);
SetDlgItemInt(hDlg,IDC_GAIN2,gain2,FALSE);
SetDlgItemInt(hDlg,IDC_GAIN3,gain3,FALSE);
SendDlgItemMessage (hDlg, IDC_LOW_LIGHT, BM_SETCHECK, low_light, 0);
return TRUE ;
case WM_COMMAND :
switch(LOWORD(wParam))
{
case IDC_GAIN0:
p_val = GetDlgItemInt(hDlg,IDC_GAIN0,&istate,FALSE);
if(p_val < 0)
{
p_val = 0;
SetDlgItemInt(hDlg,IDC_GAIN0,p_val,FALSE);
}
if(p_val > 127)
{
p_val = 127;
SetDlgItemInt(hDlg,IDC_GAIN0,p_val,FALSE);
}
return TRUE;
case IDC_GAIN1:
p_val = GetDlgItemInt(hDlg,IDC_GAIN1,&istate,FALSE);
if(p_val < 0)
{
p_val = 0;
SetDlgItemInt(hDlg,IDC_GAIN1,p_val,FALSE);
}
if(p_val > 127)
{
p_val = 127;
SetDlgItemInt(hDlg,IDC_GAIN1,p_val,FALSE);
}
return TRUE;
case IDC_GAIN2:
p_val = GetDlgItemInt(hDlg,IDC_GAIN2,&istate,FALSE);
if(p_val < 0)
{
p_val = 0;
SetDlgItemInt(hDlg,IDC_GAIN2,p_val,FALSE);
}
if(p_val > 127)
{
p_val = 127;
SetDlgItemInt(hDlg,IDC_GAIN2,p_val,FALSE);
}
return TRUE;
case IDC_GAIN3:
p_val = GetDlgItemInt(hDlg,IDC_GAIN3,&istate,FALSE);
if(p_val < 0)
{
p_val = 0;
SetDlgItemInt(hDlg,IDC_GAIN3,p_val,FALSE);
}
if(p_val > 127)
{
p_val = 127;
SetDlgItemInt(hDlg,IDC_GAIN3,p_val,FALSE);
}
return TRUE;
case IDOK:
gain0 = GetDlgItemInt(hDlg,IDC_GAIN0,&istate,FALSE);
gain1 = GetDlgItemInt(hDlg,IDC_GAIN1,&istate,FALSE);
gain2 = GetDlgItemInt(hDlg,IDC_GAIN2,&istate,FALSE);
gain3 = GetDlgItemInt(hDlg,IDC_GAIN3,&istate,FALSE);
if(SendDlgItemMessage (hDlg, IDC_LOW_LIGHT, BM_GETCHECK, 0, 0) == BST_CHECKED)
low_light = 1;
else
low_light = 0;
EndDialog(hDlg,IDOK);
return TRUE;
case IDCANCEL:
EndDialog(hDlg,IDCANCEL);
return TRUE;
}
break;
}
return FALSE ;
}
BOOL CALLBACK SetVideoWindowDlg (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
BOOL istate;
int p_val;
switch (iMsg)
{
case WM_INITDIALOG :
SetDlgItemInt(hDlg,IDC_X1,wx1,FALSE);
SetDlgItemInt(hDlg,IDC_X2,wx2,FALSE);
SetDlgItemInt(hDlg,IDC_Y1,wy1,FALSE);
SetDlgItemInt(hDlg,IDC_Y2,wy2,FALSE);
return TRUE ;
case WM_COMMAND :
switch(LOWORD(wParam))
{
case IDC_X1:
p_val = GetDlgItemInt(hDlg,IDC_X1,&istate,FALSE);
if(p_val < 0)
{
p_val = 0;
SetDlgItemInt(hDlg,IDC_X1,p_val,FALSE);
}
if(p_val > 1292)
{
p_val = 1292;
SetDlgItemInt(hDlg,IDC_X1,p_val,FALSE);
}
return TRUE;
case IDC_X2:
p_val = GetDlgItemInt(hDlg,IDC_X2,&istate,FALSE);
if(p_val < 0)
{
p_val = 10;
SetDlgItemInt(hDlg,IDC_X2,p_val,FALSE);
}
if(p_val > 1309)
{
p_val = 1309;
SetDlgItemInt(hDlg,IDC_X2,p_val,FALSE);
}
return TRUE;
case IDC_Y1:
p_val = GetDlgItemInt(hDlg,IDC_Y1,&istate,FALSE);
if(p_val < 0)
{
p_val = 0;
SetDlgItemInt(hDlg,IDC_Y1,p_val,FALSE);
}
if(p_val > 1023)
{
p_val = 1023;
SetDlgItemInt(hDlg,IDC_Y1,p_val,FALSE);
}
return TRUE;
case IDC_Y2:
p_val = GetDlgItemInt(hDlg,IDC_Y2,&istate,FALSE);
if(p_val < 0)
{
p_val = 0;
SetDlgItemInt(hDlg,IDC_Y2,p_val,FALSE);
}
if(p_val > 1023)
{
p_val = 1023;
SetDlgItemInt(hDlg,IDC_Y2,p_val,FALSE);
}
return TRUE;
case IDOK:
wx1 = GetDlgItemInt(hDlg,IDC_X1,&istate,FALSE);
wx2 = GetDlgItemInt(hDlg,IDC_X2,&istate,FALSE);
wy1 = GetDlgItemInt(hDlg,IDC_Y1,&istate,FALSE);
wy2 = GetDlgItemInt(hDlg,IDC_Y2,&istate,FALSE);
EndDialog(hDlg,IDOK);
return TRUE;
case IDCANCEL:
EndDialog(hDlg,IDCANCEL);
return TRUE;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -