新增SV4000E视频卡的降噪功能,以及so7_config.ini降噪参数的设置。

This commit is contained in:
TAO Cheng
2014-03-07 15:51:13 +08:00
parent 7379e48b67
commit 4a66a20928
16 changed files with 528 additions and 186 deletions
@@ -544,7 +544,6 @@ CSO7_Proto::CSO7_Proto()
g_machine.s_machine_config.motion._ShiftPositionZ=0.0;
g_machine.s_machine_config.motion._ShiftPositionZ=0.0;
g_machine.s_machine_config.motion.m_CntThreadSleepVal=550000;
g_machine.s_machine_config.motion.GetInterruptMsgMethod=E_GET_INTERRUPT_MSG_INTERRUPT;//E_GET_INTERRUPT_MSG_INQUIRY;
g_machine.s_machine_config.motion.m_WriteDataSleepTime=0;
g_machine.s_machine_config.motion.m_AccuraErrPulseX=1;
@@ -553,6 +552,14 @@ CSO7_Proto::CSO7_Proto()
g_machine.s_machine_config.motion.m_EQUIDIS_X=0;
g_machine.s_machine_config.motion.m_EQUIDIS_Y=0;
g_machine.s_machine_config.motion.m_EQUIDIS_Z=0;
g_machine.s_machine_config.motion.m_SDK3000_CntThreadSleepVal=550000;
g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[0]=70;
g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[1]=70;
g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[2]=70;
g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[3]=70;
g_machine.s_machine_config.motion.m_MachineType=MACHINE_SO7_CONTROLLER;
g_machine.s_machine_config.motion.m_VideoCardType=0;
@@ -2152,7 +2159,7 @@ SSI_STATUS_MOTION CSO7_Proto::Save_So7_Config()
fprintf(m_pOutFile,"%d", g_machine.s_machine_config.zm_axis._SpeedSlow);
fprintf(m_pOutFile, "\n;\n");
outBuff="[HARDWARE]";
outBuff="[MOTION]";
fprintf(m_pOutFile,"%s", outBuff);
fprintf(m_pOutFile, "\n");
outBuff="CLOSE_LOOP_ENABLED=";
@@ -2175,10 +2182,6 @@ SSI_STATUS_MOTION CSO7_Proto::Save_So7_Config()
fprintf(m_pOutFile,"%s", outBuff);
fprintf(m_pOutFile,"%.6f", g_machine.s_machine_config.motion._ShiftPositionZ);
fprintf(m_pOutFile, "\n");
outBuff="SDK3000_SLEEP_COUNT=";
fprintf(m_pOutFile,"%s", outBuff);
fprintf(m_pOutFile,"%d", g_machine.s_machine_config.motion.m_CntThreadSleepVal);
fprintf(m_pOutFile, "\n");
outBuff="GET_USB_MESSAGE_METHOD=";
fprintf(m_pOutFile,"%s", outBuff);
fprintf(m_pOutFile,"%d", g_machine.s_machine_config.motion.GetInterruptMsgMethod);
@@ -2212,6 +2215,29 @@ SSI_STATUS_MOTION CSO7_Proto::Save_So7_Config()
fprintf(m_pOutFile,"%d", g_machine.s_machine_config.motion.m_EQUIDIS_Z);
fprintf(m_pOutFile, "\n;\n");
outBuff="[VIDEOCARD]";
outBuff="SDK3000_SLEEP_COUNT=";
fprintf(m_pOutFile,"%s", outBuff);
fprintf(m_pOutFile,"%d", g_machine.s_machine_config.motion.m_SDK3000_CntThreadSleepVal);
fprintf(m_pOutFile, "\n");
outBuff="SV4000E_DENOISE_PARA_CHANNEL1=";
fprintf(m_pOutFile,"%s", outBuff);
fprintf(m_pOutFile,"%d", g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[0]);
fprintf(m_pOutFile, "\n");
outBuff="SV4000E_DENOISE_PARA_CHANNEL2=";
fprintf(m_pOutFile,"%s", outBuff);
fprintf(m_pOutFile,"%d", g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[1]);
fprintf(m_pOutFile, "\n");
outBuff="SV4000E_DENOISE_PARA_CHANNEL3=";
fprintf(m_pOutFile,"%s", outBuff);
fprintf(m_pOutFile,"%d", g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[2]);
fprintf(m_pOutFile, "\n");
outBuff="SV4000E_DENOISE_PARA_CHANNEL4=";
fprintf(m_pOutFile,"%s", outBuff);
fprintf(m_pOutFile,"%d", g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[3]);
fprintf(m_pOutFile, "\n");
fprintf(m_pOutFile, "\n;\n");
outBuff="[HSI]";
fprintf(m_pOutFile,"%s", outBuff);
fprintf(m_pOutFile, "\n");
@@ -2386,15 +2412,6 @@ SSI_STATUS_MOTION CSO7_Proto::Load_So7_Config()
g_machine.s_machine_config.motion._ShiftPositionZ=atof(cTemp);
}
}
else if (!_stricmp(token,"SDK3000_SLEEP_COUNT"))
{
token = strtok( NULL, seps);
if (token)
{
strcpy(cTemp,token);
g_machine.s_machine_config.motion.m_CntThreadSleepVal=atoi(cTemp);
}
}
else if (!_stricmp(token,"GET_USB_MESSAGE_METHOD"))
{
token = strtok( NULL, seps);
@@ -2467,6 +2484,52 @@ SSI_STATUS_MOTION CSO7_Proto::Load_So7_Config()
g_machine.s_machine_config.motion.m_EQUIDIS_Z=atoi(cTemp);
}
}
//=================VideoCard========================
else if (!_stricmp(token,"SDK3000_SLEEP_COUNT"))
{
token = strtok( NULL, seps);
if (token)
{
strcpy(cTemp,token);
g_machine.s_machine_config.motion.m_SDK3000_CntThreadSleepVal=atoi(cTemp);
}
}
else if (!_stricmp(token,"SV4000E_DENOISE_PARA_CHANNEL1"))
{
token = strtok( NULL, seps);
if (token)
{
strcpy(cTemp,token);
g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[0]=atoi(cTemp);
}
}
else if (!_stricmp(token,"SV4000E_DENOISE_PARA_CHANNEL2"))
{
token = strtok( NULL, seps);
if (token)
{
strcpy(cTemp,token);
g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[1]=atoi(cTemp);
}
}
else if (!_stricmp(token,"SV4000E_DENOISE_PARA_CHANNEL3"))
{
token = strtok( NULL, seps);
if (token)
{
strcpy(cTemp,token);
g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[2]=atoi(cTemp);
}
}
else if (!_stricmp(token,"SV4000E_DENOISE_PARA_CHANNEL4"))
{
token = strtok( NULL, seps);
if (token)
{
strcpy(cTemp,token);
g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[3]=atoi(cTemp);
}
}
//=================MSI========================
else if(!_stricmp(token,"MACHINE_CONTROLLER_TYPE"))
{
@@ -155,7 +155,6 @@ struct s_so7_machine_interface_config
double _ShiftPositionX;
double _ShiftPositionY;
double _ShiftPositionZ;
INT m_CntThreadSleepVal;
char GetInterruptMsgMethod;
INT m_WriteDataSleepTime;
INT m_AccuraErrPulseX;
@@ -164,6 +163,8 @@ struct s_so7_machine_interface_config
INT m_EQUIDIS_X;
INT m_EQUIDIS_Y;
INT m_EQUIDIS_Z;
INT m_SDK3000_CntThreadSleepVal;
INT m_SV4000E_DenoisePara[4];
INT m_MachineType;
INT m_VideoCardType;
};
@@ -3818,3 +3818,67 @@ Init:Open device succeed .
Destruct Cso7_Proto.
Construct Cso7_Proto.
Unable to open device Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
Construct Cso7_Proto.
Unable to open device Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
Construct Cso7_Proto.
Unable to open device Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
Construct Cso7_Proto.
Unable to open device Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
Construct Cso7_Proto.
Unable to open device Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
Construct Cso7_Proto.
Unable to open device Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
Construct Cso7_Proto.
Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
Construct Cso7_Proto.
@@ -112,9 +112,9 @@ Z_MOTOR_WHEELBASE=1.500
MOTOR_PULSE_NUM=10000
;
[WORKTABLE]
X_SCALE_RESOLUTION=0.500
Y_SCALE_RESOLUTION=0.500
Z_SCALE_RESOLUTION=0.500
X_SCALE_RESOLUTION=0.400
Y_SCALE_RESOLUTION=0.400
Z_SCALE_RESOLUTION=0.400
;
X_NEG_WORKING_LIMIT=0.000
Y_NEG_WORKING_LIMIT=0.000
@@ -10,14 +10,13 @@ ZOOM_READING_INTERVAL_TIME=60
ZOOM_MOTOR_SPEED_FAST=2000
ZOOM_MOTOR_SPEED_SLOW=800
;
[HARDWARE]
[MOTION]
CLOSE_LOOP_ENABLED=0
MOTION_RETRY_TIMES=5
SHIFT_POSITION_X=0.000000
SHIFT_POSITION_Y=0.000000
SHIFT_POSITION_Z=0.000000
SDK3000_SLEEP_COUNT=550000
GET_USB_MESSAGE_METHOD=0
GET_USB_MESSAGE_METHOD=1
WRITE_DATA_SLEEP_TIME=0
ACCURA_ERROR_PULSE_X=1
ACCURA_ERROR_PULSE_Y=1
@@ -25,6 +24,13 @@ ACCURA_ERROR_PULSE_Z=1
EQUIDISTANCE_PULSE_X=0
EQUIDISTANCE_PULSE_Y=0
EQUIDISTANCE_PULSE_Z=0
;
SDK3000_SLEEP_COUNT=550000
SV4000E_DENOISE_PARA_CHANNEL1=100
SV4000E_DENOISE_PARA_CHANNEL2=70
SV4000E_DENOISE_PARA_CHANNEL3=60
SV4000E_DENOISE_PARA_CHANNEL4=70
;
[HSI]
MACHINE_CONTROLLER_TYPE=0
@@ -169,9 +169,11 @@ BEGIN
CONTROL "ON",IDC_CHECK_SO7_COAXIAL_LIGHT_ON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,366,98,26,10
CONTROL "ON",IDC_CHECK_SO7_SPARE_LIGHT_ON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,366,112,26,10
LTEXT "----------------------------------------------------",IDC_STATIC,305,170,140,8
EDITTEXT IDC_EDIT_SET_SEQ_NO,261,46,29,14,ES_AUTOHSCROLL
PUSHBUTTON "Get SEQ NO.",IDC_BUTTON_SO7_GET_SEQ_NUMBER,230,66,60,15,BS_MULTILINE
LTEXT "SEQ NO.",IDC_STATIC,232,48,29,8
EDITTEXT IDC_EDIT_SET_SEQ_NO,261,67,29,14,ES_AUTOHSCROLL
PUSHBUTTON "Get SEQ NO.",IDC_BUTTON_SO7_GET_SEQ_NUMBER,230,87,60,15,BS_MULTILINE
LTEXT "SEQ NO.",IDC_STATIC,232,69,29,8
PUSHBUTTON "Set SEQ NO.",IDC_BUTTON_SO7_SET_SEQ_NUMBER,230,108,60,15,BS_MULTILINE
PUSHBUTTON "Set Ver NO.",IDC_BUTTON_SO7_SET_VER_NUMBER,230,45,60,15,BS_MULTILINE
END
IDD_SO7_UTIL_SEND_PARAMETER DIALOGEX 0, 0, 750, 480
@@ -782,9 +784,9 @@ FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "开始",IDOK,372,298,50,14
PUSHBUTTON "退出",IDCANCEL,435,298,50,14
CONTROL "彩色图像",IDC_RADIO_SV4000E_RGB,"Button",BS_AUTORADIOBUTTON | WS_GROUP,435,49,48,10
CONTROL "黑白图像",IDC_RADIO_SV4000E_GRAY,"Button",BS_AUTORADIOBUTTON,435,67,48,10
CONTROL "垂直镜像",IDC_SV4000E_CHECK_MIRROR_VERTICALLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,435,93,48,10
CONTROL "彩色图像",IDC_RADIO_SV4000E_RGB,"Button",BS_AUTORADIOBUTTON | WS_GROUP,435,13,48,10
CONTROL "黑白图像",IDC_RADIO_SV4000E_GRAY,"Button",BS_AUTORADIOBUTTON,435,31,48,10
CONTROL "垂直镜像",IDC_SV4000E_CHECK_MIRROR_VERTICALLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,435,57,48,10
PUSHBUTTON "保存图片",IDC_BUTTON_SV4000E_SAVEFILE,435,117,50,14
GROUPBOX "通道选择",IDC_STATIC,438,145,43,102
CONTROL "",IDC_STATIC_SV4000E_PICTURE,"Static",SS_BLACKFRAME | NOT WS_VISIBLE,225,300,71,12
@@ -793,6 +795,8 @@ BEGIN
CONTROL "3",IDC_RADIO_SV4000E_CHANNEL3,"Button",BS_AUTORADIOBUTTON,451,196,20,10
CONTROL "4",IDC_RADIO_SV4000E_CHANNEL4,"Button",BS_AUTORADIOBUTTON,451,213,20,10
CONTROL "All",IDC_RADIO_SV4000E_CHANNEL_ALL,"Button",BS_AUTORADIOBUTTON,451,230,23,10
EDITTEXT IDC_EDIT_SV4000E_DENOISE,441,93,40,14,ES_AUTOHSCROLL
GROUPBOX "降噪(5-100)",IDC_STATIC,437,75,47,39
END
IDD_SO7_UTIL_PROGRAM DIALOGEX 0, 0, 590, 386
@@ -117,7 +117,6 @@ BEGIN_MESSAGE_MAP(CSO7_UtilDlg, CDialog)
ON_BN_CLICKED(IDC_BUTTON_RESET_V, &CSO7_UtilDlg::OnBnClickedButtonResetV)
ON_BN_CLICKED(IDC_BUTTON_GET_FIXTURE_FLAG, &CSO7_UtilDlg::OnBnClickedButtonGetFixtureFlag)
ON_BN_CLICKED(IDC_BUTTON_SET_RESET_FLAG, &CSO7_UtilDlg::OnBnClickedButtonSetResetFlag)
ON_EN_KILLFOCUS(IDC_EDIT_SET_VER_NO, &CSO7_UtilDlg::OnEnKillfocusEditSetVerNo)
ON_BN_CLICKED(IDC_BUTTON_RESET_WORKTABLE_RIGHT, &CSO7_UtilDlg::OnBnClickedButtonResetWorktableRight)
ON_BN_CLICKED(IDC_BUTTON_SET_OUT_PORT, &CSO7_UtilDlg::OnBnClickedButtonSetOutPort)
ON_EN_KILLFOCUS(IDC_EDIT_X_SCALE_COEFFICIENT, &CSO7_UtilDlg::OnEnKillfocusEditXScaleCoefficient)
@@ -145,8 +144,9 @@ BEGIN_MESSAGE_MAP(CSO7_UtilDlg, CDialog)
ON_BN_CLICKED(IDC_CHECK_SO7_COAXIAL_LIGHT_ON, &CSO7_UtilDlg::OnBnClickedCheckSo7CoaxialLightOn)
ON_BN_CLICKED(IDC_CHECK_SO7_SPARE_LIGHT_ON, &CSO7_UtilDlg::OnBnClickedCheckSo7SpareLightOn)
ON_BN_CLICKED(IDC_RADIO_READ_OUTPUT_PORT2, &CSO7_UtilDlg::OnBnClickedRadioReadOutputPort2)
ON_EN_KILLFOCUS(IDC_EDIT_SET_SEQ_NO, &CSO7_UtilDlg::OnEnKillfocusEditSetSeqNo)
ON_BN_CLICKED(IDC_BUTTON_SO7_GET_SEQ_NUMBER, &CSO7_UtilDlg::OnBnClickedButtonSo7GetSeqNumber)
ON_BN_CLICKED(IDC_BUTTON_SO7_SET_SEQ_NUMBER, &CSO7_UtilDlg::OnBnClickedButtonSo7SetSeqNumber)
ON_BN_CLICKED(IDC_BUTTON_SO7_SET_VER_NUMBER, &CSO7_UtilDlg::OnBnClickedButtonSo7SetVerNumber)
END_MESSAGE_MAP()
@@ -355,7 +355,8 @@ void CSO7_UtilDlg::UpdateCtrlsStatus(bool _bEnable)
GetDlgItem(IDC_BUTTON_GO)->EnableWindow(_bEnable);
GetDlgItem(IDC_EDIT_SET_SEQ_NO)->EnableWindow(_bEnable);
GetDlgItem(IDC_BUTTON_SO7_GET_SEQ_NUMBER)->EnableWindow(_bEnable);
GetDlgItem(IDC_BUTTON_SO7_SET_SEQ_NUMBER)->EnableWindow(_bEnable);
GetDlgItem(IDC_BUTTON_SO7_SET_VER_NUMBER)->EnableWindow(_bEnable);
}
@@ -828,7 +829,7 @@ void CSO7_UtilDlg::OnBnClickedButtonSetResetFlag()
m_pSO7_Proto->_send_cmd_SO7_CMD_SET_RESET_FLAG();
}
void CSO7_UtilDlg::OnEnKillfocusEditSetVerNo()
void CSO7_UtilDlg::OnBnClickedButtonSo7SetVerNumber()
{
UpdateData(TRUE);
USES_CONVERSION;
@@ -837,7 +838,8 @@ void CSO7_UtilDlg::OnEnKillfocusEditSetVerNo()
m_pSO7_Proto->g_machine.cVerNumber = static_cast<char>(atoi(cTempSendCmd));
m_pSO7_Proto->_send_cmd_SO7_CMD_SET_VER_NUMBER();
}
void CSO7_UtilDlg::OnEnKillfocusEditSetSeqNo()
void CSO7_UtilDlg::OnBnClickedButtonSo7SetSeqNumber()
{
UpdateData(TRUE);
USES_CONVERSION;
@@ -848,12 +850,12 @@ void CSO7_UtilDlg::OnEnKillfocusEditSetSeqNo()
m_pSO7_Proto->_send_cmd_SO7_CMD_SET_SEQ_NUMBER();
}
void CSO7_UtilDlg::OnBnClickedButtonSo7GetSeqNumber()
{
m_pSO7_Proto->_send_cmd_SO7_CMD_GET_SEQ_NUMBER();
CString csOutMessage;
csOutMessage.Format(_T("%d"),static_cast<BYTE>(m_pSO7_Proto->g_machine.SEQ_NUMBER));
GetDlgItem(IDC_EDIT_SET_SEQ_NO)->SetWindowTextW(csOutMessage);
m_OutMessage = _T("[SEQ NO]: ")+csOutMessage;
OutputWithScroll(m_OutMessage,m_edMSG);
}
@@ -1504,5 +1506,3 @@ void CSO7_UtilDlg::OnBnClickedButtonGo()
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_TO_POS_Z();
}
@@ -98,7 +98,6 @@ public:
afx_msg void OnBnClickedButtonResetV();
afx_msg void OnBnClickedButtonGetFixtureFlag();
afx_msg void OnBnClickedButtonSetResetFlag();
afx_msg void OnEnKillfocusEditSetVerNo();
afx_msg void OnBnClickedButtonResetWorktableRight();
afx_msg void OnBnClickedButtonSetOutPort();
afx_msg void OnEnKillfocusEditXScaleCoefficient();
@@ -126,6 +125,7 @@ public:
afx_msg void OnBnClickedCheckSo7CoaxialLightOn();
afx_msg void OnBnClickedCheckSo7SpareLightOn();
afx_msg void OnBnClickedRadioReadOutputPort2();
afx_msg void OnEnKillfocusEditSetSeqNo();
afx_msg void OnBnClickedButtonSo7GetSeqNumber();
afx_msg void OnBnClickedButtonSo7SetSeqNumber();
afx_msg void OnBnClickedButtonSo7SetVerNumber();
};
@@ -60,7 +60,7 @@ BOOL CSetSo7MotionConfig::OnInitDialog()
}
UpdateLabelName();
UpdateDataValue();
m_ConfigList.SetMaxItemIndex(0,13,2,2);
m_ConfigList.SetMaxItemIndex(0,17,2,2);
return TRUE;
}
@@ -99,12 +99,6 @@ void CSetSo7MotionConfig::UpdateLabelName()
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
iRow++;
cStr="SDK3000_SLEEP_COUNT";
m_ConfigList.SetItemText(iRow,iCol,cStr);
cStr="default:550000";
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
iRow++;
cStr="GET_USB_MESSAGE_METHOD";
m_ConfigList.SetItemText(iRow,iCol,cStr);
cStr="default:1";
@@ -152,6 +146,37 @@ void CSetSo7MotionConfig::UpdateLabelName()
cStr="default:0";
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
iRow++;
//=================VIDEOCARD==================
cStr="SDK3000_SLEEP_COUNT";
m_ConfigList.SetItemText(iRow,iCol,cStr);
cStr="default:550000";
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
iRow++;
cStr="SV4000E_DENOISE_PARA_CHANNEL1";
m_ConfigList.SetItemText(iRow,iCol,cStr);
cStr="default:70";
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
iRow++;
cStr="SV4000E_DENOISE_PARA_CHANNEL2";
m_ConfigList.SetItemText(iRow,iCol,cStr);
cStr="default:70";
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
iRow++;
cStr="SV4000E_DENOISE_PARA_CHANNEL3";
m_ConfigList.SetItemText(iRow,iCol,cStr);
cStr="default:70";
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
iRow++;
cStr="SV4000E_DENOISE_PARA_CHANNEL4";
m_ConfigList.SetItemText(iRow,iCol,cStr);
cStr="default:70";
m_ConfigList.SetItemText(iRow,iCol+2,cStr);
iRow++;
}
void CSetSo7MotionConfig::UpdateDataValue()
{
@@ -168,8 +193,6 @@ void CSetSo7MotionConfig::UpdateDataValue()
m_ConfigList.SetItemText(iRow++,iCol,cStr);
cStr.Format(_T("%.3f"),m_pSO7_Proto->g_machine.s_machine_config.motion._ShiftPositionZ);
m_ConfigList.SetItemText(iRow++,iCol,cStr);
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_CntThreadSleepVal);
m_ConfigList.SetItemText(iRow++,iCol,cStr);
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.GetInterruptMsgMethod);
m_ConfigList.SetItemText(iRow++,iCol,cStr);
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_WriteDataSleepTime);
@@ -186,6 +209,16 @@ void CSetSo7MotionConfig::UpdateDataValue()
m_ConfigList.SetItemText(iRow++,iCol,cStr);
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_EQUIDIS_Z);
m_ConfigList.SetItemText(iRow++,iCol,cStr);
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_SDK3000_CntThreadSleepVal);
m_ConfigList.SetItemText(iRow++,iCol,cStr);
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[0]);
m_ConfigList.SetItemText(iRow++,iCol,cStr);
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[1]);
m_ConfigList.SetItemText(iRow++,iCol,cStr);
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[2]);
m_ConfigList.SetItemText(iRow++,iCol,cStr);
cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[3]);
m_ConfigList.SetItemText(iRow++,iCol,cStr);
}
void CSetSo7MotionConfig::SaveDataValue()
{
@@ -218,10 +251,6 @@ void CSetSo7MotionConfig::SaveDataValue()
iRow++;
cStr=m_ConfigList.GetItemText(iRow,iCol);
cTemp=T2A(cStr);
m_pSO7_Proto->g_machine.s_machine_config.motion.m_CntThreadSleepVal=atoi(cTemp);
iRow++;
cStr=m_ConfigList.GetItemText(iRow,iCol);
cTemp=T2A(cStr);
m_pSO7_Proto->g_machine.s_machine_config.motion.GetInterruptMsgMethod=static_cast<char>(atoi(cTemp));
iRow++;
cStr=m_ConfigList.GetItemText(iRow,iCol);
@@ -252,7 +281,26 @@ void CSetSo7MotionConfig::SaveDataValue()
cTemp=T2A(cStr);
m_pSO7_Proto->g_machine.s_machine_config.motion.m_EQUIDIS_Z=atoi(cTemp);
iRow++;
cStr=m_ConfigList.GetItemText(iRow,iCol);
cTemp=T2A(cStr);
m_pSO7_Proto->g_machine.s_machine_config.motion.m_SDK3000_CntThreadSleepVal=atoi(cTemp);
iRow++;
cStr=m_ConfigList.GetItemText(iRow,iCol);
cTemp=T2A(cStr);
m_pSO7_Proto->g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[0]=atoi(cTemp);
iRow++;
cStr=m_ConfigList.GetItemText(iRow,iCol);
cTemp=T2A(cStr);
m_pSO7_Proto->g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[1]=atoi(cTemp);
iRow++;
cStr=m_ConfigList.GetItemText(iRow,iCol);
cTemp=T2A(cStr);
m_pSO7_Proto->g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[2]=atoi(cTemp);
iRow++;
cStr=m_ConfigList.GetItemText(iRow,iCol);
cTemp=T2A(cStr);
m_pSO7_Proto->g_machine.s_machine_config.motion.m_SV4000E_DenoisePara[3]=atoi(cTemp);
iRow++;
}
void CSetSo7MotionConfig::OnBnClickedButtonSo7MotionConfigOk()
{
@@ -29,6 +29,10 @@ IMPLEMENT_DYNAMIC(CVideocard_SV4000E, CDialog)
m_bMirror=FALSE;
m_ConvertColorType=YUY2TORGB;
m_bSaveFile=FALSE;
for (int i=0;i<4;i++)
{
m_DenoiseValue[i]=0;
}
}
CVideocard_SV4000E::~CVideocard_SV4000E()
@@ -37,6 +41,7 @@ CVideocard_SV4000E::~CVideocard_SV4000E()
void CVideocard_SV4000E::DoDataExchange(CDataExchange* pDX)
{
DDX_Text(pDX, IDC_EDIT_SV4000E_DENOISE,m_EditDenoise);
CDialog::DoDataExchange(pDX);
}
@@ -54,6 +59,7 @@ BEGIN_MESSAGE_MAP(CVideocard_SV4000E, CDialog)
ON_BN_CLICKED(IDC_RADIO_SV4000E_CHANNEL3, &CVideocard_SV4000E::OnBnClickedRadioSV4000EChannel3)
ON_BN_CLICKED(IDC_RADIO_SV4000E_CHANNEL4, &CVideocard_SV4000E::OnBnClickedRadioSV4000EChannel4)
ON_BN_CLICKED(IDC_RADIO_SV4000E_CHANNEL_ALL, &CVideocard_SV4000E::OnBnClickedRadioSv4000eChannelAll)
ON_EN_KILLFOCUS(IDC_EDIT_SV4000E_DENOISE, &CVideocard_SV4000E::OnEnKillfocusEditSv4000eDenoise)
END_MESSAGE_MAP()
@@ -90,7 +96,9 @@ BOOL CVideocard_SV4000E::OnInitDialog()
((CButton *)GetDlgItem(IDC_RADIO_SV4000E_CHANNEL2))->SetCheck(FALSE);
((CButton *)GetDlgItem(IDC_RADIO_SV4000E_CHANNEL3))->SetCheck(FALSE);
((CButton *)GetDlgItem(IDC_RADIO_SV4000E_CHANNEL4))->SetCheck(FALSE);
m_EditDenoise.Format(_T("%d"),m_DenoiseValue[m_Channel]);
EnableDenoise(m_Channel);
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
//===================================================
@@ -158,6 +166,8 @@ void CVideocard_SV4000E::OnBnClickedRadioSV4000EChannel1()
{
#ifdef _RELEASE_FULL_VERSION
m_Channel=0;
m_EditDenoise.Format(_T("%d"),m_DenoiseValue[m_Channel]);
UpdateData(FALSE);
#endif //_RELEASE_FULL_VERSION
}
//===================================================
@@ -165,6 +175,8 @@ void CVideocard_SV4000E::OnBnClickedRadioSV4000EChannel2()
{
#ifdef _RELEASE_FULL_VERSION
m_Channel=1;
m_EditDenoise.Format(_T("%d"),m_DenoiseValue[m_Channel]);
UpdateData(FALSE);
#endif //_RELEASE_FULL_VERSION
}
//===================================================
@@ -172,6 +184,8 @@ void CVideocard_SV4000E::OnBnClickedRadioSV4000EChannel3()
{
#ifdef _RELEASE_FULL_VERSION
m_Channel=2;
m_EditDenoise.Format(_T("%d"),m_DenoiseValue[m_Channel]);
UpdateData(FALSE);
#endif //_RELEASE_FULL_VERSION
}
//===================================================
@@ -179,6 +193,8 @@ void CVideocard_SV4000E::OnBnClickedRadioSV4000EChannel4()
{
#ifdef _RELEASE_FULL_VERSION
m_Channel=3;
m_EditDenoise.Format(_T("%d"),m_DenoiseValue[m_Channel]);
UpdateData(FALSE);
#endif //_RELEASE_FULL_VERSION
}
@@ -186,6 +202,26 @@ void CVideocard_SV4000E::OnBnClickedRadioSv4000eChannelAll()
{
m_Channel=4;
}
//===================================================
void CVideocard_SV4000E::EnableDenoise(int _DeviceID)
{
#ifdef _RELEASE_FULL_VERSION
DXEnableDenoise(m_device[_DeviceID],m_DenoiseValue[_DeviceID]);
#endif //_RELEASE_FULL_VERSION
}
//===================================================
void CVideocard_SV4000E::OnEnKillfocusEditSv4000eDenoise()
{
if(m_Channel<4)
{
UpdateData(TRUE);
USES_CONVERSION;
const char* cTempValue=T2A(m_EditDenoise);
m_DenoiseValue[m_Channel] = static_cast<unsigned>(atoi(cTempValue));
EnableDenoise(m_Channel);
}
}
//=======================================
BOOL CVideocard_SV4000E::LoadVideocard()
@@ -284,6 +320,7 @@ BOOL CVideocard_SV4000E::UnloadVideocard()
{
m_status=DXStopRawVideoCallback(m_device[i]);
m_status=DXSetRawVideoCallback(m_device[i],NULL,NULL);
Sleep(100);
CloseDevice(m_device[i]);
}
DXUninitialize();
@@ -292,7 +329,8 @@ BOOL CVideocard_SV4000E::UnloadVideocard()
}
//================================================================
void CVideocard_SV4000E::ConvertVideoSubType(const Image_Buffer& _ImageBuffer, BYTE *_pSrcData,ConvertColorType _type,BOOL _bMirror)
void CVideocard_SV4000E::ConvertVideoSubType(const Image_Buffer& _ImageBuffer,
BYTE *_pSrcData,ConvertColorType _type,BOOL _bMirror)
{
int x=0;
int y=0;
@@ -33,7 +33,7 @@ public:
protected:
unsigned int m_status;
device_handle m_device[4];
unsigned m_DenoiseValue[4];
int m_nDevNum;
DWORD m_dwCard;
Image_Buffer m_ImageBuffer;
@@ -42,6 +42,7 @@ protected:
BOOL m_bMirror;
BOOL m_bSaveFile;
CString m_SaveFile;
CString m_EditDenoise;
unsigned int m_Channel;
unsigned int bInitSdk;
public:
@@ -51,11 +52,12 @@ public:
void CloseDevice(device_handle _Device);
void ConvertVideoSubType(const Image_Buffer& _ImageBuffer, BYTE *pSrcData,ConvertColorType _type,BOOL _bMirror);
BOOL SaveBitmapToFile(const CBitmap& bitmap, CString lpFileName);
void EnableDenoise(int _DeviceID);
afx_msg void OnBnClickedRadioSV4000EChannel1();
afx_msg void OnBnClickedRadioSV4000EChannel2();
afx_msg void OnBnClickedRadioSV4000EChannel3();
afx_msg void OnBnClickedRadioSV4000EChannel4();
afx_msg void OnBnClickedRadioSv4000eChannelAll();
afx_msg void OnEnKillfocusEditSv4000eDenoise();
};
@@ -329,8 +329,10 @@
#define IDC_RADIO_SELECT_X 1262
#define IDC_RADIO_SELECT_Y 1263
#define IDC_RADIO_SELECT_Z 1264
#define IDC_BUTTON_RESET_WORKTABLE_RIGHT2 1265
#define IDC_BUTTON_SO7_GET_SEQ_NUMBER 1265
#define IDC_BUTTON_SO7_SET_SEQ_NUMBER 1266
#define IDC_BUTTON_SO7_SET_SEQ_NUMBER2 1267
#define IDC_BUTTON_SO7_SET_VER_NUMBER 1267
#define IDC_BUTTON_SET_OUT_PORT 1269
#define IDC_EDIT_SET_VER_NO 1271
#define IDC_EDIT_X_SCALE_COEFFICIENT 1272
@@ -926,6 +928,7 @@
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_STOP_SCAN2 1834
#define IDC_RADIO_SO7_MOVE_SPEED_GEAR4 1834
#define IDC_RADIO_SO7_MOVE_SPEED_GEAR5 1835
#define IDC_EDIT_SV4000E_DENOISE 1836
#define IDC_BUTTON_DIY_EXIT_BUTTON 32740
#define ID_EDIT_SO7_CONFIG_MOTION 32741
@@ -935,7 +938,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 191
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1836
#define _APS_NEXT_CONTROL_VALUE 1837
#define _APS_NEXT_SYMED_VALUE 104
#endif
#endif
@@ -256,7 +256,7 @@ unsigned __stdcall DXGetDeviceState(device_handle device, unsigned& state);
device - [in] 设备句柄
hWnd - [in] 显示视频的窗体句柄。NULL - 停止显示视频
rect - [in] 视频显示的矩形区域。NULL - 占用整个窗体
vmrtype - [in] 该保留参数。(准备做指定显示过滤器只用)
vvmrtype - [in] 视频显示模式,0为OVERLAY显示,1为离屏显示
返回值:
0 - 成功;失败则返回错误代码
// */
@@ -444,7 +444,8 @@ unsigned __stdcall DXDetachIspTask(device_handle device, IispTask* ispTask);
返回值:
0 - 成功;失败则返回错误代码
// */
typedef unsigned (__stdcall *fnEncVideoCallback)(unsigned fourcc, unsigned char* buffer, unsigned bufferSize, void* context);
typedef unsigned (__stdcall *fnEncVideoCallback)(unsigned fourcc, unsigned char* buffer,
unsigned bufferSize, void* context);
/*
描述:
@@ -485,7 +486,10 @@ unsigned __stdcall DXStopEncVideoCallback(device_handle device);
使能去隔行功能
参数:
device - [in] 设备句柄
deinterlace - [in] 去隔行的算法类型
deinterlace - [in] 去隔行化方法:0 -- SimpleBob
// 1 -- TomsMoComp
// 2 -- YADIF
// 其他值表示自动取消隔行功能
返回值:
0 - 成功;失败则返回错误代码
// */
@@ -496,11 +500,22 @@ unsigned __stdcall DXEnableDeinterlace(device_handle device, unsigned deinterlac
使能去噪功能
参数:
device - [in] 设备句柄
denoise - [in] 去噪的算法类型
denoise - [in] 降噪标准 (5 - 100),其他值表示自动取消去噪功能
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXEnableDenoise(device_handle device, unsigned denoise);
unsigned __stdcall DXEnableDenoise(device_handle device, unsigned denoise = 35);
/*
描述:
锐化处理功能
参数:
device - [in] 设备句柄
deSharpness - [in] 锐化标准(0 - 255),其它值表示自动取消锐化功能
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXEnableSharpen(device_handle device, unsigned deSharpness = 128);
/*
描述:
@@ -521,4 +536,221 @@ unsigned __stdcall DXConvertYUVtoRGB(device_handle device, void* pYUVBuf,
BOOL bInverted,
BOOL bInvertColor);
/*
描述:
音频原始数据回调的函数原型
参数:
buffer - [in] 缓冲区指针
bufferSize - [out] 获取的编码数据的缓冲区大小(单位:字节)
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
typedef unsigned (__stdcall *fnAudDataCallback)(unsigned char* buffer, unsigned bufferSize, void* context);
/*
描述:
设置音频原始数据回调的函数
参数:
device - [in] 设备句柄
fn - [in] 回调函数指针,NULL - 停止回调
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSetAudDataCallback(device_handle device, fnAudDataCallback fn, void* context);
/*
描述:
开始音频原始数据回调的函数
参数:
device - [in] 设备句柄
fn - [in] 回调函数指针,NULL - 停止回调
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXStartAudDataCallback(device_handle device, fnAudDataCallback fn, void* context);
/*
描述:
停止音频原始数据回调的函数
参数:
device - [in] 设备句柄
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXStopAudDataCallback(device_handle device);
/*
描述:
设置时间OSD参数的函数
参数:
device - [in] 设备句柄
x,y - [in]时间OSD的位置坐标
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSetTimeOSD
(
/*in*/ device_handle device,
/*in*/ int x,
/*in*/ int y,
/*in*/ int pointSize,
/*in*/ LPCTSTR faceName = TEXT("Arial"),
/*in*/ COLORREF color = RGB(0,0,255),
/*in*/ COLORREF bgcolor = RGB(0, 0, 0),
/*in*/ BOOL transparent = TRUE
);
/*
描述:
设置文本OSD参数的函数
参数:
device - [in] 设备句柄
x,y - [in]时间OSD的位置坐标
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSetTextOSD
(
/*in*/ device_handle device,
/*in*/ int x,
/*in*/ int y,
/*in*/ int TextNO,
/*in*/ LPCTSTR osdText,
/*in*/ int pointSize,
/*in*/ LPCTSTR faceName = TEXT("Arial"),
/*in*/ COLORREF color = RGB(0,0,255),
/*in*/ COLORREF bgcolor = RGB(0, 0, 0),
/*in*/ BOOL transparent = TRUE
);
/*
描述:
设置图片OSD参数的函数
参数:
device - [in] 设备句柄
x,y - [in]时间OSD的位置坐标
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSetPictureOSD
(
/*in*/ device_handle device,
/*in*/ int x,
/*in*/ int y,
/*in*/ int PicNO,
/*in*/ LPCTSTR picFileName,
/*in*/ BOOL transparent = TRUE,
/*in*/ unsigned char alpha = 255
);
/*
描述:
设置图片OSD参数的函数
参数:
device - [in] 设备句柄
osdType - [in]叠加类型
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXEnOSDDisp
(
/*in*/ device_handle device,
/*in*/ unsigned osdType, //0表示时间叠加,1表示文本叠加,2表示图片叠加
/*in*/ int number, /* 叠加编号,当number = -1时为全部 */
/*in*/ BOOL enable
);
/*
描述:
从加密芯片用户区读取数据的函数
参数:
device - [in] 设备句柄
chPassWord - [in]密码
chData------[out]读取数据空间
chLen-------[out]读取数据长度,不超过0x20
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXReadDeviceSerial(device_handle device,unsigned char * chPassWord,
unsigned char * chData, unsigned char& chLen);
//从加密芯片用户区读出数据
/*
描述:
向加密芯片用户区写入数据的函数
参数:
device - [in] 设备句柄
chPassWord - [in]密码
chData------[in]写入数据空间
chLen-------[in]写入数据长度,不超过0x20
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXWriteDeviceSerial(device_handle device,unsigned char * chPassWord,
unsigned char * chData, unsigned char chLen);
/*
描述:
原始视频数据回调的函数原型
参数:
buffer - [in] 缓冲区指针
colorSpace - [in] 获取的原始数据的色彩空间类型
width - [in] 获取的原始数据的像素宽度
height - [in] 获取的原始数据的像素高度
bytesWidth - [in] 获取的原始数据的字节宽度
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
typedef unsigned (__stdcall *fnRawVideoCallback)(unsigned char* buffer, unsigned colorSpace,
unsigned width, unsigned height, unsigned bytesWidth, void* context);
/*
描述:
设置原始视频数据回调的函数
参数:
device - [in] 设备句柄
fn - [in] 回调函数指针,NULL - 停止回调
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSetRawVideoCallback(device_handle device, fnRawVideoCallback fn, void* context);
/*
描述:
开始原始视频数据回调的函数
参数:
device - [in] 设备句柄
fn - [in] 回调函数指针,NULL - 停止回调
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXStartRawVideoCallback(device_handle device, fnRawVideoCallback fn, void* context);
/*
描述:
停止原始视频数据回调的函数
参数:
device - [in] 设备句柄
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXStopRawVideoCallback(device_handle device);
/*
描述:
暂停原始视频数据回调的函数
参数:
device - [in] 设备句柄
bPause---[in] true:暂停原始流回调;false:重新开始原始流回调
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXPauseRawVideoCallback(device_handle device, bool bPause);
#endif // __DXMEDIACAP_2011__
@@ -91,56 +91,6 @@ unsigned __stdcall DXSnapToBMPFile(device_handle device, TCHAR* szFileName, PREC
// */
unsigned __stdcall DXSnapToJPGFile(device_handle device, TCHAR* szFileName, unsigned quality, PRECT rect = NULL);
/*
描述:
原始视频数据回调的函数原型
参数:
buffer - [in] 缓冲区指针
colorSpace - [in] 获取的原始数据的色彩空间类型
width - [in] 获取的原始数据的像素宽度
height - [in] 获取的原始数据的像素高度
bytesWidth - [in] 获取的原始数据的字节宽度
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
typedef unsigned (__stdcall *fnRawVideoCallback)(unsigned char* buffer, unsigned colorSpace,
unsigned width, unsigned height, unsigned bytesWidth, void* context);
/*
描述:
设置原始视频数据回调的函数
参数:
device - [in] 设备句柄
fn - [in] 回调函数指针,NULL - 停止回调
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSetRawVideoCallback(device_handle device, fnRawVideoCallback fn, void* context);
/*
描述:
开始原始视频数据回调的函数
参数:
device - [in] 设备句柄
fn - [in] 回调函数指针,NULL - 停止回调
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXStartRawVideoCallback(device_handle device, fnRawVideoCallback fn, void* context);
/*
描述:
停止原始视频数据回调的函数
参数:
device - [in] 设备句柄
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXStopRawVideoCallback(device_handle device);
/*
描述:
原始音频数据回调的函数原型
@@ -166,71 +116,6 @@ typedef unsigned (__stdcall *fnRawAudioCallback)(unsigned char* buffer, unsigned
// */
unsigned __stdcall DXSetRawAudioCallback(device_handle device, fnRawAudioCallback fn, void* context);
/*
描述:
原始视频数据叠加回调的函数原型
参数:
hdc - [in] 视频叠加的HDC
width - [in] 能够叠加的宽度(单位:像素)
height - [in] 能够叠加的高度(单位:像素)
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
typedef unsigned (__stdcall *fnOSDCallback)(HDC hdc, unsigned width, unsigned height, void* context);
/*
描述:
设置视频数据叠加回调的函数
参数:
device - [in] 设备句柄
fn - [in] 回调函数指针,NULL - 停止回调
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSetOSDCallback(device_handle device, fnOSDCallback fn, void* context);
enum {osd_text, osd_time, osd_image};
#define MAX_OSD_TEXT_LEN 16
/*
描述:
设置原始视频帧数据的OSD
参数:
device - [in] 设备句柄
osdType - [in] OSD的类型
x - [in] 指定OSD的左上角横坐标
x - [in] 指定OSD的左上角竖坐标
osdData - [in] OSD的数据,NULL - 取消OSD
osdType = osd_text,最大MAX_OSD_TEXT_LEN个字符
osdType = osd_time,指定时间格式
osdType = osd_image,指定图片路径
pointSize - [in] 字体大小
faceName - [in] 字体名称
color - [in] 针对 osd_text, osd_time 两种类型的OSD的前景色,默认值:白色(RGB(255, 255, 255)
bgcolor - [in] OSD的背景色,默认值:黑色(RGB(0, 0, 0)
opaque - [in] OSD的背景色是否不透明,默认值:是。当选择透明时,则以 bgcolor 进行透明处理
alpha - [in] alpha运算值。取值[0 ~ 255]0 - OSD透明,255 - OSD不透明,中间值 - OSD与视频数据进行alpha运算
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSetOSD(device_handle device, unsigned osdType, int x, int y, char* osdData, int pointSize = 120, LPCTSTR faceName = TEXT("Arial"),
COLORREF color = RGB(255, 255, 255), COLORREF bgcolor = RGB(0, 0, 0), BOOL opaque = TRUE,
unsigned char alpha = 255);
/*
描述:
启用/禁用原始视频帧数据的OSD
参数:
device - [in] 设备句柄
osdType - [in] OSD的类型
enable - [in] TRUE - 启用OSDFALSE - 禁用OSD
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXEnableOSD(device_handle device, unsigned osdType, BOOL enable);
/*
描述:
由图片缓冲创建预览对象
@@ -1,11 +1,7 @@
/********************************************************************
created: 2011/08/05
created: 5:8:2011 9:31
filename: .\libDXCap\datastru.h
file path: .\libDXCap
file base: datastru
file ext: h
author: 34973832@qq.com
purpose:
*********************************************************************/