Registriert seit: 23. Mai 2011
Ort: Görlitz
150 Beiträge
Delphi XE Starter
|
Delphi Äquivalent zu "AfxFrameOrView100u" gesucht
16. Jun 2016, 17:01
Delphi-Version: 10 Seattle
Schlage mich grad mit einem SDK zu einen Oszilloskop rum soweit funktioniert auch alles was bisher übersetzt ist nur fehlt mir eine Idee wie ich die Graphen(2) darstellen kann. Diese werden so wie ich verstanden habe direkt aus der DLL in ein AfxFrameOrView100u(laut WinSpy) gezeichnet. Hat jemand eine Idee?
Code:
void CVCPrjDlg::OnBtnRead()
{
// TODO: Add your control notification handler code here
short* pCH1Data;
short* pCH2Data;
ULONG nReadLen = 10240;//10k
ULONG nDrawLen = 10000;
short nTrigLevel = 64;
short nSlope = 0;// 0:Rise; 1: Fall
short nHTrigPos = 50;// 0 ~ 100
ULONG nTrigPoint = 0;
CRect rc;
m_stcDraw.GetClientRect(&rc);
pCH1Data = new short[nReadLen];
pCH2Data = new short[nReadLen];
short nRe = dsoReadHardData(m_nDevIndex,
pCH1Data,
pCH2Data,
nReadLen,
m_nCalData,
m_nCH1VoltDIV,
m_nCH2VoltDIV,
0,//0:AUOT; 1:Normal; 2: Signal
0,//CH1
nTrigLevel,
nSlope,
m_nTimeDIV,
nHTrigPos,
nDrawLen,
&nTrigPoint,
0);
if(nRe > 0)
{
m_stcDraw.GetDC()->FillSolidRect(&rc, RGB(0,0,0));
//Draw CH1
HTDrawWaveInYT(m_stcDraw.GetDC()->GetSafeHdc(),rc, RGB(255,255,0),0,pCH1Data,nReadLen,nDrawLen,nReadLen / 2,64,1.0,1.0,0,0);
//Draw CH2
HTDrawWaveInYT(m_stcDraw.GetDC()->GetSafeHdc(),rc, RGB(0,255,0),0,pCH1Data,nReadLen,nDrawLen,nReadLen / 2,192,1.0,1.0,0,0);
}
delete pCH1Data;
delete pCH2Data;
}
DLL Funktionen
Code:
DLL_API void WINAPI HTDrawWaveInYT(HDC hDC,RECT Rect,COLORREF clrRGB,
USHORT nDisType,short* pSrcData,
ULONG nSrcDataLen,ULONG nDisDataLen,
ULONG nCenterData,USHORT nDisLeverPos,
double dbHorizontal,double dbVertical,
USHORT nYTFormat,ULONG nScanLen);
DLL_API void WINAPI HTDrawWaveInYTVB(HDC hDC,int left,int top,int right, int bottom, USHORT R, USHORT G,
USHORT B,USHORT nDisType,short* pSrcData,ULONG nSrcDataLen,ULONG nDisDataLen,ULONG nCenterData,
USHORT nDisLeverPos,double dbHorizontal,double dbVertical,USHORT nYTFormat,ULONG nScanLen);
Delphi-Quellcode:
Procedure HTDrawWaveInYT( DC: HDC; Rect: TRECT; clrRGB: COLORREF;
nDisType: Word; pSrcData: PSmallInt; nSrcDataLen, nDisDataLen,
nCenterData: Cardinal; nDisLeverPos: Word; dbHorizontal, dbVertical: Double;
nYTFormat: Word; nScanLen: Cardinal);
stdcall external ' HTDisplayDLL.dll';
Procedure HTDrawWaveInYTVB( DC: HDC; left, top, right, bottom: Integer;
R, G, B, nDisType: Word; pSrcData: PSmallInt;
nSrcDataLen, nDisDataLen, nCenterData: Cardinal; nDisLeverPos: Word;
dbHorizontal, dbVertical: Double; nYTFormat: Word; nScanLen: Cardinal);
stdcall external ' HTDisplayDLL.dll';
Geändert von Horst0815 (16. Jun 2016 um 17:14 Uhr)
|