|
大神,一看您的名字就知道DEMO是您写的了,哈哈。
1.pReadDate默认是长度为4096长度的数组,数组中每个元素范围0-255 ,如果不是请检查自己的初始化控制.
(1)执行完dsoHTGetData后,pReadData[CH1]中的数在校正已前就应该是0-255之间的?
(2)初始化如何控制呢?在哪里进行设置呢?或者设置哪些属性?我是仿着DEMO里的写的:
m_nLeverPos[CH1] = 192; m_nLeverPos[CH2] = 160;
m_nLeverPos[CH3] = 96;
m_nLeverPos[CH4] = 64;
ULONG i = 0;
m_nDeviceIndex = 0;
m_nDeviceNum = 0;
for(i=0;i<MAX_CH_NUM;i++)
{
m_pSrcData = new short[BUF_4K_LEN];
}
m_clrRGB[CH1] = RGB(255,255,0);
m_clrRGB[CH2] = RGB(0,255,255);
m_clrRGB[CH3] = RGB(255,0,255);
m_clrRGB[CH4] = RGB(0,255,0);
memset(m_nCalLevel,0,sizeof(m_nCalLevel));
m_nTimeDIV = 12;
m_nYTFormat = YT_NORMAL;
m_stControl.nCHSet = 0x0F;//所有通道打开
m_stControl.nTimeDIV = m_nTimeDIV;//Factory Setup
m_stControl.nTriggerSource = CH1;//通道1为触发通道
m_stControl.nHTriggerPos = 50;//水平触发位置(0-100)
m_stControl.nVTriggerPos = m_nLeverPos[CH1];//垂直触发位置和通道1相同
m_stControl.nTriggerSlope = RISE;//边沿触发的触发方式:上升沿
m_stControl.nBufferLen = BUF_4K_LEN;//采集深度
m_stControl.nReadDataLen = BUF_4K_LEN;//读取长度<=采集深度
m_stControl.nAlreadyReadLen = 0;//只在扫描滚动情况下有效,用来记录已经读取的长度
m_stControl.nALT = 0;//Factory Setup
for(i=0;i<MAX_CH_NUM;i++)
{
RelayControl.bCHEnable = 1;
RelayControl.nCHVoltDIV = 8;
RelayControl.nCHCoupling = DC;
RelayControl.bCHBWLimit = 0;
}
RelayControl.nTrigSource = CH1;
RelayControl.bTrigFilt = 0;
RelayControl.nALT = 0;
m_nTriggerMode = EDGE;
m_nTriggerSlope = RISE;
m_nTriggerSweep = AUTO;
m_bCollect=TRUE;
m_nReadOK = 0;
for(i=0;i<AMPCALI_Len;i++){pAmpLevel=1024;}//所有幅度修正设置为1024/1024=1.0
2 (pReadData[j]-m_nLeverPos)*8*电压值/255
这个电压值就是SDK手册中 表3(电压档位与索引关系对应表)中的索引取值?
表中:索引取5表示电压档位100mV,取8表示1V,取2表示10mV. 比如, RelayControl.nCHVoltDIV = 8,那么(pReadData[j]-m_nLeverPos)*8*8/255 此时电压值就用8来计算?
3 dsoHTSetAmpCalibrate 中的WORD *pLevel, WORD *nVoltDiv, WORD *pCHPos
WORD *pLevel,指向幅度校准数据。 是这个pAmpLevel吗? for(i=0;i<AMPCALI_Len;i++){pAmpLevel=1024;}//所有幅度修正设置为1024/1024=1.0
WORD *nVoltDiv,是RelayControl.nCHVoltDIV这个吗?
WORD *pCHPos,是指每个通道的垂直位置?在DEMO里就是 m_stControl.nVTriggerPos的值? ??
4 能否给我留个EMAIL啊?谢谢。
我在用C#开发,可能会有很多问题?
|
|