MV900视频卡裁剪。
This commit is contained in:
@@ -4782,3 +4782,5 @@ Usb Port Initialized.
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
+132
-146
@@ -30,6 +30,7 @@ IMPLEMENT_DYNAMIC(CSo7_Util_PLC_TCPIP_SERVER, CDialog)
|
||||
{
|
||||
m_CCDData_D10000[i]=0;
|
||||
}
|
||||
m_iCCDDataIndex=0;
|
||||
}
|
||||
|
||||
CSo7_Util_PLC_TCPIP_SERVER::~CSo7_Util_PLC_TCPIP_SERVER()
|
||||
@@ -100,83 +101,14 @@ BOOL CSo7_Util_PLC_TCPIP_SERVER::OnInitDialog()
|
||||
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_PLC_STATE)->SetWindowTextW(str);
|
||||
|
||||
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_PORTNUMBER)->SetWindowTextW(_T("9600"));
|
||||
int i(0);
|
||||
m_CCDData_D10000[i++]=65000;
|
||||
m_CCDData_D10000[i++]=1000;
|
||||
m_CCDData_D10000[i++]=1000;
|
||||
m_CCDData_D10000[i++]=2000;
|
||||
m_CCDData_D10000[i++]=i*1000;
|
||||
m_CCDData_D10000[i++]=i*1000;
|
||||
m_CCDData_D10000[i++]=303000;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=303000;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=303000;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=204000;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=204000;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=204000;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=204000;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=204000;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=204000;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=204000;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=204000;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=0;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
|
||||
if (g_pSo7_TCPIP_Server)
|
||||
{
|
||||
int iData(0);
|
||||
BYTE DM_Data[4]={0,0,0,0};
|
||||
int StartAddr(60);
|
||||
for (int i=0;i<MAX_CCD_ADDR;i++)
|
||||
{
|
||||
iData=m_CCDData_D10000[i];
|
||||
DM_Data[0]=(iData>>24) & 0x0ff;
|
||||
DM_Data[1]=(iData>>16) & 0x0ff;
|
||||
DM_Data[2]=(iData>>8) & 0x0ff;
|
||||
DM_Data[3]=iData & 0x0ff;
|
||||
g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3];
|
||||
g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1];
|
||||
}
|
||||
}
|
||||
if (g_pSo7_TCPIP_Server)
|
||||
UpdataCCDData();
|
||||
int index(0);
|
||||
/*
|
||||
index=100;
|
||||
g_pSo7_TCPIP_Server->DM5000[index++]=1;
|
||||
g_pSo7_TCPIP_Server->DM5000[index++]=0;
|
||||
g_pSo7_TCPIP_Server->DM5000[index++]=10000;
|
||||
g_pSo7_TCPIP_Server->DM5000[index++]=0;*/
|
||||
{
|
||||
int iData(0);
|
||||
BYTE DM_Data[4]={0,0,0,0};
|
||||
@@ -212,64 +144,10 @@ BOOL CSo7_Util_PLC_TCPIP_SERVER::OnInitDialog()
|
||||
g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3];
|
||||
g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1];
|
||||
}
|
||||
|
||||
|
||||
StartAddr=1100;
|
||||
for (int i=0;i<150;i++)
|
||||
{
|
||||
iDM5000DWord[i]=0;
|
||||
}
|
||||
StartAddr=400;
|
||||
index=0;
|
||||
for (int i=0;i<10;i++)
|
||||
{
|
||||
iDM5000DWord[index++]=(i+1)*10000;
|
||||
iDM5000DWord[index++]=(i+1)*10000;
|
||||
iDM5000DWord[index++]=(i+1)*10000;
|
||||
index=3*(i+1);
|
||||
}
|
||||
for (int i=0;i<6;i++)
|
||||
{
|
||||
iDM5000DWord[index++]=(i+1)*10000;
|
||||
iDM5000DWord[index++]=(i+1)*10000;
|
||||
iDM5000DWord[index++]=(i+1)*10000;
|
||||
index=3*(i+11);
|
||||
}
|
||||
for (int i=0;i<150;i++)
|
||||
{
|
||||
iData=iDM5000DWord[i];
|
||||
DM_Data[0]=(iData>>24) & 0x0ff;
|
||||
DM_Data[1]=(iData>>16) & 0x0ff;
|
||||
DM_Data[2]=(iData>>8) & 0x0ff;
|
||||
DM_Data[3]=iData & 0x0ff;
|
||||
|
||||
g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3];
|
||||
g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1];
|
||||
}
|
||||
|
||||
|
||||
for (int i=0;i<150;i++)
|
||||
{
|
||||
iDM5000DWord[i]=0;
|
||||
}
|
||||
StartAddr=500;
|
||||
index=0;
|
||||
for (int i=0;i<10;i++)
|
||||
{
|
||||
iDM5000DWord[index++]=(i+1)*10000;
|
||||
iDM5000DWord[index++]=(i+1)*10000;
|
||||
iDM5000DWord[index++]=(i+1)*10000;
|
||||
index=3*(i+1);
|
||||
}
|
||||
for (int i=0;i<6;i++)
|
||||
{
|
||||
iDM5000DWord[index++]=(i+1)*10000;
|
||||
iDM5000DWord[index++]=(i+1)*10000;
|
||||
iDM5000DWord[index++]=(i+1)*10000;
|
||||
index=3*(i+11);
|
||||
}
|
||||
for (int i=0;i<150;i++)
|
||||
{
|
||||
iData=iDM5000DWord[i];
|
||||
iData=iDM5000DWord[i]+i*10;
|
||||
DM_Data[0]=(iData>>24) & 0x0ff;
|
||||
DM_Data[1]=(iData>>16) & 0x0ff;
|
||||
DM_Data[2]=(iData>>8) & 0x0ff;
|
||||
@@ -279,6 +157,27 @@ BOOL CSo7_Util_PLC_TCPIP_SERVER::OnInitDialog()
|
||||
g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1];
|
||||
}
|
||||
}
|
||||
index=114;
|
||||
g_pSo7_TCPIP_Server->DM5000[index++]=1;
|
||||
g_pSo7_TCPIP_Server->DM5000[index++]=0;
|
||||
g_pSo7_TCPIP_Server->DM5000[index++]=20000;
|
||||
g_pSo7_TCPIP_Server->DM5000[index++]=0;
|
||||
|
||||
index=400;
|
||||
g_pSo7_TCPIP_Server->DM5000[index]=0;
|
||||
index+=2;
|
||||
g_pSo7_TCPIP_Server->DM5000[index]=0;
|
||||
index+=2;
|
||||
g_pSo7_TCPIP_Server->DM5000[index]=10000;
|
||||
index+=2;
|
||||
g_pSo7_TCPIP_Server->DM5000[index]=10000;
|
||||
index+=2;
|
||||
g_pSo7_TCPIP_Server->DM5000[index]=10000;
|
||||
index+=2;
|
||||
g_pSo7_TCPIP_Server->DM5000[index]=0;
|
||||
index+=2;
|
||||
|
||||
|
||||
|
||||
m_DMAddrList=DM_ADDR_CCD;
|
||||
((CButton *)GetDlgItem(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_CCD_DM))->SetCheck(TRUE);
|
||||
@@ -351,12 +250,11 @@ void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateControls(int _type)
|
||||
|
||||
BYTE DM_Data[4]={0,0,0,0};
|
||||
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCRunningState=static_cast<int>(g_pSo7_TCPIP_Server->DM5000[0]);
|
||||
for (int i=1;i<=8;i++)
|
||||
for (int i=1;i<=16;i++)
|
||||
{
|
||||
DM_Data[0]=(g_pSo7_TCPIP_Server->DM5000[i]>>8) & 0x0ff;
|
||||
DM_Data[1]=(g_pSo7_TCPIP_Server->DM5000[i]) & 0x0ff;
|
||||
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[(i-1)*2+1]=DM_Data[0];
|
||||
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[(i-1)*2]=DM_Data[1];
|
||||
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[i-1]=DM_Data[1];;
|
||||
}
|
||||
str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA1]);
|
||||
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_CCD1)->SetWindowTextW(str);
|
||||
@@ -400,15 +298,86 @@ void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateControls(int _type)
|
||||
|
||||
BYTE DM_Data[4]={0,0,0,0};
|
||||
g_pSo7_TCPIP_Server->DM5000[0]=static_cast<short>(g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCRunningState);
|
||||
for (int i=1;i<=8;i++)
|
||||
for (int i=1;i<=16;i++)
|
||||
{
|
||||
DM_Data[1]=g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[(i-1)*2];
|
||||
DM_Data[0]=g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[(i-1)*2+1];
|
||||
DM_Data[1]=g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[i-1];
|
||||
DM_Data[0]=0;
|
||||
g_pSo7_TCPIP_Server->DM5000[i]=(DM_Data[0]<<8)+DM_Data[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
//=====================================================================
|
||||
void CSo7_Util_PLC_TCPIP_SERVER::UpdataCCDData()
|
||||
{
|
||||
int i(0);
|
||||
if (m_iCCDDataIndex==0)
|
||||
{
|
||||
m_iCCDDataIndex=1;
|
||||
|
||||
m_CCDData_D10000[i++]=12000;
|
||||
m_CCDData_D10000[i++]=1000;
|
||||
m_CCDData_D10000[i++]=1000;
|
||||
m_CCDData_D10000[i++]=204000;
|
||||
m_CCDData_D10000[i++]=-10000;
|
||||
m_CCDData_D10000[i++]=-10000;
|
||||
m_CCDData_D10000[i++]=-10000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=204000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=-10000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_iCCDDataIndex=0;
|
||||
|
||||
|
||||
m_CCDData_D10000[i++]=7000;
|
||||
m_CCDData_D10000[i++]=1000;
|
||||
m_CCDData_D10000[i++]=1000;
|
||||
m_CCDData_D10000[i++]=204000;
|
||||
m_CCDData_D10000[i++]=-10000;
|
||||
m_CCDData_D10000[i++]=-10000;
|
||||
m_CCDData_D10000[i++]=-10000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=204000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=-10000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
m_CCDData_D10000[i++]=10000;
|
||||
}
|
||||
|
||||
if (g_pSo7_TCPIP_Server)
|
||||
{
|
||||
int iData(0);
|
||||
BYTE DM_Data[4]={0,0,0,0};
|
||||
int StartAddr(60);
|
||||
for (int i=0;i<MAX_CCD_ADDR;i++)
|
||||
{
|
||||
iData=m_CCDData_D10000[i];
|
||||
DM_Data[0]=(iData>>24) & 0x0ff;
|
||||
DM_Data[1]=(iData>>16) & 0x0ff;
|
||||
DM_Data[2]=(iData>>8) & 0x0ff;
|
||||
DM_Data[3]=iData & 0x0ff;
|
||||
g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3];
|
||||
g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1];
|
||||
}
|
||||
StartAddr=2060;
|
||||
for (int i=0;i<MAX_CCD_ADDR;i++)
|
||||
{
|
||||
iData=m_CCDData_D10000[i];
|
||||
DM_Data[0]=(iData>>24) & 0x0ff;
|
||||
DM_Data[1]=(iData>>16) & 0x0ff;
|
||||
DM_Data[2]=(iData>>8) & 0x0ff;
|
||||
DM_Data[3]=iData & 0x0ff;
|
||||
g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3];
|
||||
g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//=====================================================================
|
||||
void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedRadioPlcTcpipServerAddrCcdDm()
|
||||
{
|
||||
m_UpdateListControl(E_LISTCTRL_CONTROL2DATA);
|
||||
@@ -416,6 +385,7 @@ void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedRadioPlcTcpipServerAddrCcdDm()
|
||||
{
|
||||
m_UpdateControls(FALSE);
|
||||
}
|
||||
UpdataCCDData();
|
||||
m_DMAddrList=DM_ADDR_CCD;
|
||||
m_UpdateListControl(E_LISTCTRL_TITLE);
|
||||
m_UpdateListControl(E_LISTCTRL_DATA2CONTROL);
|
||||
@@ -525,13 +495,20 @@ void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateListControl(int _type)
|
||||
}
|
||||
int Addr(0);
|
||||
m_DataList.SetItemText(Addr++,2,_T("PLC设备运行状态(0-未知,1-空闲,2-后退(开始测量),3-前进(测量结束),4-故障,5-参数编辑)"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("CCD1数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("CCD2数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("CCD3数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("CCD4数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("CCD5数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("LS1数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("LS2数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("CCD1-1数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("CCD1-2数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("CCD2-1数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("CCD2-2数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("CCD3-1数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("CCD3-2数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("CCD4-1数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("CCD4-2数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("CCD5-1数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("CCD5-2数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("LS1-1数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("LS1-2数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("LS2-1数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("LS2-2数据刷新"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("光栅尺数据刷新"));
|
||||
Addr=100;
|
||||
for (int i=0;i<10;i++)
|
||||
@@ -674,6 +651,15 @@ void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateListControl(int _type)
|
||||
DM_Data[3]=(g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i]) & 0x0ff;
|
||||
m_CCDData_D10000[i]=(DM_Data[0]<<24)+(DM_Data[1]<<16)+(DM_Data[2]<<8)+(DM_Data[3]);
|
||||
}
|
||||
StartAddr=2060;
|
||||
for (int i=0;i<MAX_CCD_ADDR;i++)
|
||||
{
|
||||
DM_Data[0]=(g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i+1]>>8) & 0x0ff;
|
||||
DM_Data[1]=(g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i+1]) & 0x0ff;
|
||||
DM_Data[2]=(g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i]>>8) & 0x0ff;
|
||||
DM_Data[3]=(g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i]) & 0x0ff;
|
||||
m_CCDData_D10000[i]=(DM_Data[0]<<24)+(DM_Data[1]<<16)+(DM_Data[2]<<8)+(DM_Data[3]);
|
||||
}
|
||||
}
|
||||
for (int i=iStartRow; i<iEndRow; i++)
|
||||
{
|
||||
|
||||
@@ -39,7 +39,8 @@ public:
|
||||
afx_msg void OnBnClickedButtonClearMsg();
|
||||
afx_msg void OnBnClickedCancel();
|
||||
afx_msg BOOL PreTranslateMessage(MSG* pMsg);
|
||||
|
||||
int m_iCCDDataIndex;
|
||||
void UpdataCCDData();
|
||||
|
||||
LRESULT OnSocket(WPARAM w, LPARAM p);
|
||||
LRESULT OnTCPIPMsg(WPARAM w, LPARAM p);
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
|
||||
#define WM_UPDATE_IMAGE WM_USER+100
|
||||
static BYTE g_DataBuffer[768*576*3];
|
||||
int m_VideoWidth=640;//640;
|
||||
int m_VideoHeight=480;//480;
|
||||
int m_VideoWidth=768;//640;
|
||||
int m_VideoHeight=576;//480;
|
||||
int m_VideoBitcount=3;
|
||||
int m_DisplayWidth=640;
|
||||
int m_DisplayHeight=480;
|
||||
@@ -275,9 +275,9 @@ void CVideocard_MV900::ConvertVideoSubType(const Image_Buffer& _ImageBuffer,
|
||||
{
|
||||
case RGB24TORGB:
|
||||
{
|
||||
pDstData[x+2]=_pSrcData[y*m_VideoWidth*3+x+2];
|
||||
pDstData[x+1]=_pSrcData[y*m_VideoWidth*3+x+1];
|
||||
pDstData[x]=_pSrcData[y*m_VideoWidth*3+x];
|
||||
pDstData[x+2]=_pSrcData[y*m_DisplayWidth*3+x+2];
|
||||
pDstData[x+1]=_pSrcData[y*m_DisplayWidth*3+x+1];
|
||||
pDstData[x]=_pSrcData[y*m_DisplayWidth*3+x];
|
||||
break;
|
||||
}
|
||||
case YUY2TORGB:
|
||||
@@ -462,6 +462,7 @@ void CVideocard_MV900::OnPaint()
|
||||
pData = (BYTE *)m_ImageBuffer.ScanLine;
|
||||
pBitBmp.CreateCompatibleBitmap(dc,m_DisplayWidth,m_DisplayHeight);
|
||||
SetDIBits(dc->m_hDC,pBitBmp,0,m_DisplayHeight,pData,&bmpInfo,DIB_RGB_COLORS);
|
||||
|
||||
if (m_bSaveFile)
|
||||
{
|
||||
SaveBitmapToFile(pBitBmp,m_SaveFile);
|
||||
@@ -476,13 +477,34 @@ void CVideocard_MV900::OnPaint()
|
||||
}
|
||||
pOldBitmap = pMemDC->SelectObject(&pBitBmp);
|
||||
nMode = pMemDC->SetBkMode(TRANSPARENT);
|
||||
|
||||
CPen m_Pen(PS_DASH,0,RGB(255,0,0));
|
||||
POINT m_point;
|
||||
pMemDC->SelectObject(&m_Pen);
|
||||
m_point.x=0;
|
||||
m_point.y=static_cast<int>(m_DisplayHeight*0.5);
|
||||
pMemDC->MoveTo(m_point);
|
||||
m_point.x=m_DisplayWidth;
|
||||
m_point.y=static_cast<int>(m_DisplayHeight*0.5);
|
||||
pMemDC->LineTo(m_point);
|
||||
m_point.x=static_cast<int>(m_DisplayWidth*0.5);
|
||||
m_point.y=0;
|
||||
pMemDC->MoveTo(m_point);
|
||||
m_point.x=static_cast<int>(m_DisplayWidth*0.5);
|
||||
m_point.y=m_DisplayHeight;
|
||||
pMemDC->LineTo(m_point);
|
||||
|
||||
dc->BitBlt(0, 0, m_DisplayWidth, m_DisplayHeight, pMemDC,0,0, SRCCOPY);
|
||||
|
||||
pMemDC->SetBkMode(nMode);
|
||||
pMemDC->SelectObject(pOldBitmap);
|
||||
ReleaseDC(pMemDC);
|
||||
|
||||
m_Pen.DeleteObject();
|
||||
|
||||
delete pMemDC;
|
||||
ReleaseDC(dc);
|
||||
|
||||
}
|
||||
//================================================================================================
|
||||
void CVideocard_MV900::UpdateImage()
|
||||
@@ -512,19 +534,19 @@ void CVideocard_MV900::OnTimer(UINT_PTR nIDEvent)
|
||||
|
||||
CDialog::OnTimer(nIDEvent);
|
||||
}
|
||||
static int iStartX(0);
|
||||
static int iStartY(0);
|
||||
static int iStartX(64);
|
||||
static int iStartY(48);
|
||||
|
||||
//==================================SV4000E=====================================
|
||||
VOID CALLBACK MV900_PrcVidCapCallBack( PUCHAR pData, ULONG Length,CVideocard_MV900* pIS)
|
||||
VOID CALLBACK MV900_PrcVidCapCallBack(PUCHAR pData, ULONG Length,CVideocard_MV900* pIS)
|
||||
{
|
||||
UNREFERENCED_PARAMETER(Length);
|
||||
//memcpy(g_DataBuffer,(BYTE*)pData,Length);//640*480*m_VideoBitcount
|
||||
for(int y=iStartY;y<iStartY+480;y++)
|
||||
for(int y=iStartY;y<iStartY+m_DisplayHeight;y++)
|
||||
{
|
||||
for(int x=iStartX*3;x<(iStartX+640)*3;x++)
|
||||
for(int x=iStartX*3;x<(iStartX+m_DisplayWidth)*3;x++)
|
||||
{
|
||||
g_DataBuffer[(y-iStartY)*640*3+(x-iStartX)]=(BYTE)pData[y*768*3+x];
|
||||
g_DataBuffer[(y-iStartY)*m_DisplayWidth*3+(x-iStartX*3)]=(BYTE)pData[y*m_VideoWidth*3+x];
|
||||
}
|
||||
}
|
||||
pIS->UpdateImage();
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user