📄 dlgs.c
字号:
break;
}
return FALSE ;
}
BOOL CALLBACK SetRowDelayDlg (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
BOOL istate;
int p_val;
switch (iMsg)
{
case WM_INITDIALOG :
SetDlgItemInt(hDlg,IDC_PARAM,row_delay,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 > 8191)
{
p_val = 8191;
SetDlgItemInt(hDlg,IDC_PARAM,p_val,FALSE);
}
return TRUE;
case IDOK:
row_delay = GetDlgItemInt(hDlg,IDC_PARAM,&istate,FALSE);
EndDialog(hDlg,IDOK);
return TRUE;
case IDCANCEL:
EndDialog(hDlg,IDCANCEL);
return TRUE;
}
break;
}
return FALSE ;
}
BOOL CALLBACK SetFrameDelayDlg (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
BOOL istate;
int p_val;
switch (iMsg)
{
case WM_INITDIALOG :
SetDlgItemInt(hDlg,IDC_PARAM,frame_delay,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 > 32768)
{
p_val = 32768;
SetDlgItemInt(hDlg,IDC_PARAM,p_val,FALSE);
}
return TRUE;
case IDOK:
frame_delay = GetDlgItemInt(hDlg,IDC_PARAM,&istate,FALSE);
EndDialog(hDlg,IDOK);
return TRUE;
case IDCANCEL:
EndDialog(hDlg,IDCANCEL);
return TRUE;
}
break;
}
return FALSE ;
}
BOOL CALLBACK SetSubsamlingDlg (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
switch (iMsg)
{
case WM_INITDIALOG :
if(ss_mode == 1)
{
SendDlgItemMessage (hDlg, IDC_MODE_2_1, BM_SETCHECK, 1, 0);
SendDlgItemMessage (hDlg, IDC_MODE_4_2, BM_SETCHECK, 0, 0);
}
else
{
SendDlgItemMessage (hDlg, IDC_MODE_2_1, BM_SETCHECK, 0, 0);
SendDlgItemMessage (hDlg, IDC_MODE_4_2, BM_SETCHECK, 1, 0);
}
SendDlgItemMessage (hDlg, IDC_DIRECTION_H, BM_SETCHECK, ss_d_h, 0);
SendDlgItemMessage (hDlg, IDC_DIRECTION_V, BM_SETCHECK, ss_d_v, 0);
SendDlgItemMessage (hDlg, IDC_AVERAGING_H, BM_SETCHECK, ss_a_h, 0);
SendDlgItemMessage (hDlg, IDC_AVERAGING_V, BM_SETCHECK, ss_a_v, 0);
return TRUE ;
case WM_COMMAND :
switch(LOWORD(wParam))
{
case IDOK:
if(SendDlgItemMessage (hDlg, IDC_MODE_2_1, BM_GETCHECK, 0, 0) == BST_CHECKED)
ss_mode = 1;
else
ss_mode = 2;
if(SendDlgItemMessage (hDlg, IDC_DIRECTION_H, BM_GETCHECK, 0, 0) == BST_CHECKED)
ss_d_h = 1;
else
ss_d_h = 0;
if(SendDlgItemMessage (hDlg, IDC_DIRECTION_V, BM_GETCHECK, 0, 0) == BST_CHECKED)
ss_d_v = 1;
else
ss_d_v = 0;
if(SendDlgItemMessage (hDlg, IDC_AVERAGING_H, BM_GETCHECK, 0, 0) == BST_CHECKED)
ss_a_h = 1;
else
ss_a_h = 0;
if(SendDlgItemMessage (hDlg, IDC_AVERAGING_V, BM_GETCHECK, 0, 0) == BST_CHECKED)
ss_a_v = 1;
else
ss_a_v = 0;
EndDialog(hDlg,IDOK);
return TRUE;
case IDCANCEL:
EndDialog(hDlg,IDCANCEL);
return TRUE;
}
break;
}
return FALSE ;
}
BOOL CALLBACK SetSnapshotDlg (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
BOOL istate;
int p_val;
switch (iMsg)
{
case WM_INITDIALOG :
if(snapshot_trigger == 0)
{
SendDlgItemMessage (hDlg, IDC_TRIGGER_LEVEL, BM_SETCHECK, 1, 0);
SendDlgItemMessage (hDlg, IDC_TRIGGER_PULSE, BM_SETCHECK, 0, 0);
}
else
{
SendDlgItemMessage (hDlg, IDC_TRIGGER_LEVEL, BM_SETCHECK, 0, 0);
SendDlgItemMessage (hDlg, IDC_TRIGGER_PULSE, BM_SETCHECK, 1, 0);
}
if(snapshot_shutter == 0)
{
SendDlgItemMessage (hDlg, IDC_SHUTTER_NORMAL, BM_SETCHECK, 1, 0);
SendDlgItemMessage (hDlg, IDC_SHUTTER_EXTERNAL, BM_SETCHECK, 0, 0);
}
else
{
SendDlgItemMessage (hDlg, IDC_SHUTTER_NORMAL, BM_SETCHECK, 0, 0);
SendDlgItemMessage (hDlg, IDC_SHUTTER_EXTERNAL, BM_SETCHECK, 1, 0);
}
SetDlgItemInt(hDlg,IDC_RESET,snapshot_reset,FALSE);
return TRUE ;
case WM_COMMAND :
switch(LOWORD(wParam))
{
case IDC_RESET:
// switch(HIWORD(wParam))
// {
// case CBN_SELCHANGE :
//
// }
p_val = GetDlgItemInt(hDlg,IDC_RESET,&istate,FALSE);
/* if(p_val < 1)
{
p_val = 1;
SetDlgItemInt(hDlg,IDC_RESET,p_val,FALSE);
}
*/
if(p_val > 8)
{
p_val = 8;
SetDlgItemInt(hDlg,IDC_RESET,p_val,FALSE);
}
return TRUE;
case IDOK:
if(SendDlgItemMessage (hDlg, IDC_TRIGGER_LEVEL, BM_GETCHECK, 0, 0) == BST_CHECKED)
snapshot_trigger = 0;
else
snapshot_trigger = 1;
if(SendDlgItemMessage (hDlg, IDC_SHUTTER_NORMAL, BM_GETCHECK, 0, 0) == BST_CHECKED)
snapshot_shutter = 0;
else
snapshot_shutter = 1;
snapshot_reset = GetDlgItemInt(hDlg,IDC_RESET,&istate,FALSE);
EndDialog(hDlg,IDOK);
return TRUE;
case IDCANCEL:
EndDialog(hDlg,IDCANCEL);
return TRUE;
}
break;
}
return FALSE ;
}
BOOL CALLBACK SetGrabParamDlg (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
BOOL istate;
switch (iMsg)
{
case WM_INITDIALOG :
SetDlgItemInt(hDlg,IDC_IMAGE_COUNT,img_cnt,FALSE);
SetDlgItemInt(hDlg,IDC_FPGA_MEM_OFFSET,fpga_mem_offset,FALSE);
return TRUE ;
case WM_COMMAND :
switch(LOWORD(wParam))
{
case IDOK:
img_cnt = GetDlgItemInt(hDlg,IDC_IMAGE_COUNT,&istate,FALSE);
fpga_mem_offset = GetDlgItemInt(hDlg,IDC_FPGA_MEM_OFFSET,&istate,FALSE);
EndDialog(hDlg,IDOK);
return TRUE;
case IDCANCEL:
EndDialog(hDlg,IDCANCEL);
return TRUE;
}
break;
}
return FALSE ;
}
BYTE read_fpga(BYTE cam_nr,WORD reg, DWORD *val)
{
BYTE error;
DWORD cmd[2];
cmd[0] = reg;
error = send_val(cam_nr,18, 1, &cmd[0]);
if(error)
return(1);
error = receive(cam_nr,&cmd[0]);
if(error == 128)
error = 2;
else
{
*val = cmd[0];
error = (BYTE)cmd[1];
}
return(error);
}
BYTE write_fpga(BYTE cam_nr,WORD reg, DWORD val)
{
BYTE error;
DWORD cmd[2];
cmd[0] = reg;
cmd[1] = val;
error = send_val(cam_nr,19, 2, &cmd[0]);
if(error)
return(1);
error = receive(cam_nr,&cmd[0]);
if(error == 128)
error = 2;
else
{
error = (BYTE)cmd[0];
}
return(error);
}
BOOL CALLBACK SetFPGADlg (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
BOOL istate;
char l_str[30];
switch (iMsg)
{
case WM_INITDIALOG :
sprintf(l_str,"%X",fpga_reg);
SetDlgItemText(hDlg,IDC_REGISTER,l_str);
sprintf(l_str,"%08lX",fpga_value);
SetDlgItemText(hDlg,IDC_VALUE,l_str);
return TRUE ;
case WM_COMMAND :
switch(LOWORD(wParam))
{
case IDOK:
fpga_reg = GetDlgItemInt(hDlg,IDC_REGISTER,&istate,FALSE);
fpga_value = GetDlgItemInt(hDlg,IDC_VALUE,&istate,FALSE);
EndDialog(hDlg,0);
return TRUE;
case ID_READ:
GetDlgItemText(hDlg,IDC_REGISTER,l_str,sizeof(l_str));
sscanf(l_str,"%X",&fpga_reg);
read_fpga(1,fpga_reg,&fpga_value);
sprintf(l_str,"%08lX",fpga_value);
SetDlgItemText(hDlg,IDC_VALUE,l_str);
return TRUE;
case ID_WRITE:
GetDlgItemText(hDlg,IDC_REGISTER,l_str,sizeof(l_str));
sscanf(l_str,"%X",&fpga_reg);
GetDlgItemText(hDlg,IDC_VALUE,l_str,sizeof(l_str));
sscanf(l_str,"%X",&fpga_value);
write_fpga(1,fpga_reg,fpga_value);
return TRUE;
}
break;
}
return FALSE ;
}
BOOL CALLBACK CANDlg (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
BOOL istate;
char l_str[30];
int i,p_val;
BYTE buf[8],len,error;
DWORD id,baud;
WORD flags;
static BOOL init_flag = FALSE;
switch (iMsg)
{
case WM_INITDIALOG :
for(i = 1; i <= 8;i++)
{
sprintf(l_str,"%d",i);
SendMessage(GetDlgItem(hDlg,IDC_CAN_TRANSMIT_LENGTH),CB_ADDSTRING,(WPARAM)0,(LPARAM)l_str);
}
SendMessage (GetDlgItem(hDlg,IDC_CAN_TRANSMIT_LENGTH),CB_SETCURSEL,7,0);
SendMessage(GetDlgItem(hDlg,IDC_CAN_BAUD),CB_INSERTSTRING,(WPARAM)0,(LPARAM)"125");
SendMessage(GetDlgItem(hDlg,IDC_CAN_BAUD),CB_INSERTSTRING,(WPARAM)1,(LPARAM)"250");
SendMessage(GetDlgItem(hDlg,IDC_CAN_BAUD),CB_INSERTSTRING,(WPARAM)2,(LPARAM)"500");
SendMessage(GetDlgItem(hDlg,IDC_CAN_BAUD),CB_INSERTSTRING,(WPARAM)3,(LPARAM)"1000");
SendMessage (GetDlgItem(hDlg,IDC_CAN_BAUD),CB_SETCURSEL,0,0);
EnableWindow(GetDlgItem(hDlg, IDC_CAN_TRANSMIT_BUTTON),FALSE);
EnableWindow(GetDlgItem(hDlg, IDC_CAN_RECEIVE_BUTTON),FALSE);
EnableWindow(GetDlgItem(hDlg, IDC_CAN_CLOSE),FALSE);
return TRUE ;
case WM_COMMAND :
switch(LOWORD(wParam))
{
case IDOK:
if(init_flag)
{
close_can(camera);
init_flag = FALSE;
}
EndDialog(hDlg,0);
return TRUE;
case IDC_CAN_INIT:
i = (BYTE)SendMessage(GetDlgItem(hDlg,IDC_CAN_BAUD),CB_GETCURSEL,(WPARAM)0,(LPARAM)0);
switch(i)
{
case 0: baud = 125; break;
case 1: baud = 250; break;
case 2: baud = 500; break;
case 3: baud = 1000; break;
}
error = init_can(camera,baud,0x7ff);
if(error)
{
sprintf(l_str,"init can error %d",error);
MessageBox(hDlg ,l_str,szAppName,MB_OK | MB_ICONSTOP);
init_flag = FALSE;
}
else
{
init_flag = TRUE;
EnableWindow(GetDlgItem(hDlg, IDC_CAN_TRANSMIT_BUTTON),TRUE);
EnableWindow(GetDlgItem(hDlg, IDC_CAN_RECEIVE_BUTTON),TRUE);
EnableWindow(GetDlgItem(hDlg, IDC_CAN_CLOSE),TRUE);
EnableWindow(GetDlgItem(hDlg, IDC_CAN_INIT),FALSE);
}
return TRUE;
case IDC_CAN_CLOSE:
if(init_flag)
{
close_can(camera);
init_flag = FALSE;
EnableWindow(GetDlgItem(hDlg, IDC_CAN_INIT),TRUE);
}
return TRUE;
case IDC_CAN_TRANSMIT_BUTTON:
id = (DWORD)GetDlgItemInt(hDlg,IDC_CAN_TRANSMIT_ID,&istate,FALSE);
len = (BYTE)SendMessage(GetDlgItem(hDlg,IDC_CAN_TRANSMIT_LENGTH),CB_GETCURSEL,(WPARAM)0,(LPARAM)0);
len++;
for(i = 0; i < len;i++)
{
buf[i] = (BYTE)GetDlgItemInt(hDlg,IDC_CAN_TRANSMIT_DATA_1 + i,&istate,FALSE);
}
flags = 0;
error = send_can(camera,id,len,flags,buf);
if(error)
{
sprintf(l_str,"send error %d",error);
MessageBox(hDlg ,l_str,szAppName,MB_OK | MB_ICONSTOP);
}
return TRUE;
case IDC_CAN_RECEIVE_BUTTON:
error = receive_can(camera,&id,&len,&flags,buf);
if(error)
{
if(error == 3)
sprintf(l_str,"receive error %d | flags = %lx",error,flags);
else
sprintf(l_str,"receive error %d",error);
MessageBox(hDlg ,l_str,szAppName,MB_OK | MB_ICONSTOP);
}
else
{
if(len == 0)
{
MessageBox(hDlg ,"No message available",szAppName,MB_OK | MB_ICONINFORMATION);
SetDlgItemText(hDlg,IDC_CAN_RECEIVE_ID,"");
SetDlgItemText(hDlg,IDC_CAN_RECEIVE_LENGTH,"");
for(i = 0; i < 8;i++)
SetDlgItemText(hDlg,IDC_CAN_RECEIVE_DATA_1 + i,"");
}
else
{
SetDlgItemInt(hDlg,IDC_CAN_RECEIVE_ID,id,FALSE);
SetDlgItemInt(hDlg,IDC_CAN_RECEIVE_LENGTH,len,FALSE);
for(i = 0; i < len;i++)
{
SetDlgItemInt(hDlg,IDC_CAN_RECEIVE_DATA_1 + i,buf[i],FALSE);
}
for(i = len; i < 8;i++)
SetDlgItemText(hDlg,IDC_CAN_RECEIVE_DATA_1 + i,"");
}
}
return TRUE;
case IDC_CAN_TRANSMIT_ID:
p_val = GetDlgItemInt(hDlg,IDC_CAN_TRANSMIT_ID,&istate,FALSE);
if(p_val > 0x7ff)
{
p_val = 0x7ff;
SetDlgItemInt(hDlg,IDC_CAN_TRANSMIT_ID,p_val,FALSE);
}
return TRUE;
case IDC_CAN_TRANSMIT_DATA_1 :
case IDC_CAN_TRANSMIT_DATA_2 :
case IDC_CAN_TRANSMIT_DATA_3 :
case IDC_CAN_TRANSMIT_DATA_4 :
case IDC_CAN_TRANSMIT_DATA_5 :
case IDC_CAN_TRANSMIT_DATA_6 :
case IDC_CAN_TRANSMIT_DATA_7 :
case IDC_CAN_TRANSMIT_DATA_8 :
p_val = GetDlgItemInt(hDlg,LOWORD(wParam),&istate,FALSE);
if(p_val > 255)
{
p_val = 255;
SetDlgItemInt(hDlg,LOWORD(wParam),p_val,FALSE);
}
return TRUE;
}
break;
}
return FALSE ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -