Einzelnen Beitrag anzeigen

Horst0815

Registriert seit: 23. Mai 2011
Ort: Görlitz
150 Beiträge
 
Delphi XE Starter
 
#1

Delphi Äquivalent zu "AfxFrameOrView100u" gesucht

  Alt 16. Jun 2016, 16: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:
CStatic   m_stcDraw;
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 16:14 Uhr)
  Mit Zitat antworten Zitat