=1024;}//所有幅度修正设置为1024/1024=1.0
WORD *nVoltDiv,是RelayControl.nCHVoltDIV这个吗?
WORD *pCHPos,是指每个通道的垂直位置?在DEMO里就是 m_stControl.nVTriggerPos的值? ??
4 能否给我留个EMAIL啊?谢谢。
我在用C#开发,可能会有很多问题?
Author: Hantek_Zhang Time: 2016-10-20 16:23
(1)执行完dsoHTGetData后,pReadData[CH1]中的数在校正已前就应该是0-255之间的 对的
2 参照 C++ 初始化就可以
3 :索引取5表示电压档位100mV,取8表示1V,取2表示10mV. 比如, RelayControl.nCHVoltDIV = 8,那么(pReadData[j]-m_nLeverPos)*8*1V/255 此时电压值就用1V来计算
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_nLeverPos[CH1] = 192; m_nLeverPos[CH2] = 160;
m_nLeverPos[CH3] = 96;
m_nLeverPos[CH4] = 64;
4 497420651@qq.com
Author: wangerpang Time: 2016-10-24 12:38
追问几个问题:
1。(pReadData[j]-m_nLeverPos)*8*电压值/255 电压值的单位是多少啊??
索引取5表示电压档位100mV,取8表示1V,取2表示10mV.
比如, RelayControl.nCHVoltDIV = 8,那么(pReadData[j]-m_nLeverPos)*8*1V/255 此时电压值就用1V来计算
如果nCHVoltDIV 取5呢,(pReadData[j]-m_nLeverPos)*8*电压值/255 nCHVoltDIV=5时电压值是100mV,代入公式中用100,还是0.1?
1(pReadData[j]-m_nLeverPos)*8*100/255 单位mV
2(pReadData[j]-m_nLeverPos)*8*0.1/255 单位V
两个式子哪个正确?
2 WORD *pCHPos,是指每个通道的垂直位置。在DEMO里就是
m_nLeverPos[CH1] = 192;
m_nLeverPos[CH2] = 160;
m_nLeverPos[CH3] = 96;
m_nLeverPos[CH4] = 64;
m_nLeverPos不是水平位置吗?
另:这个水位位置的含义是不是说: 确保每通道的检测值不会叠加。如果都设成0,有可能显示出来的波形就是一条???是这个目的吗?
3 之前我把pReadData[CH1]的类型声明大了。C#中我开始声明成 UINT,执行完dsoHTGetData后数值很大。现在改在ushort了,执行完dsoHTGetData后pReadData[CH1]的数在0-255之间了。谢谢。
Author: wangerpang Time: 2016-10-24 12:38
追问几个问题:
1。(pReadData[j]-m_nLeverPos)*8*电压值/255 电压值的单位是多少啊??
索引取5表示电压档位100mV,取8表示1V,取2表示10mV.
比如, RelayControl.nCHVoltDIV = 8,那么(pReadData[j]-m_nLeverPos)*8*1V/255 此时电压值就用1V来计算
如果nCHVoltDIV 取5呢,(pReadData[j]-m_nLeverPos)*8*电压值/255 nCHVoltDIV=5时电压值是100mV,代入公式中用100,还是0.1?
1(pReadData[j]-m_nLeverPos)*8*100/255 单位mV
2(pReadData[j]-m_nLeverPos)*8*0.1/255 单位V
两个式子哪个正确?
2 WORD *pCHPos,是指每个通道的垂直位置。在DEMO里就是
m_nLeverPos[CH1] = 192;
m_nLeverPos[CH2] = 160;
m_nLeverPos[CH3] = 96;
m_nLeverPos[CH4] = 64;
m_nLeverPos不是水平位置吗?
另:这个水位位置的含义是不是说: 确保每通道的检测值不会叠加。如果都设成0,有可能显示出来的波形就是一条???是这个目的吗?
3 之前我把pReadData[CH1]的类型声明大了。C#中我开始声明成 UINT,执行完dsoHTGetData后数值很大。现在改在ushort了,执行完dsoHTGetData后pReadData[CH1]的数在0-255之间了。谢谢。
Author: Hantek_Zhang Time: 2016-10-28 10:11
100mV不等于0.1V吗?
Author: wangerpang Time: 2016-11-1 21:12
100mV是等于0.1V。
我想问的是:
(pReadData[j]-m_nLeverPos)*8*电压值/255 假如 nCHVoltDIV=5时,公式中的电压值是取100,还是0.1?
Author: Hantek_Zhang Time: 2016-11-2 09:40
100 没有单位?
0.1 没有单位?
你公式取100 ,100的单位呢? 仔细看二次开发说明
Author: wangerpang Time: 2016-11-2 20:34
1那公式中的电压单位是多少呢?不可能是我自己定吧,是V还是mV还是其它?
2二次开发文档里只有dsoHTGetState函数中说明如下:
pCH%n%Data WORD 型变量指针,长度为 pControl-> nReadDataLen,用来存放通道 n 的采集数据数据范围0-255 也没有提到要对数据进行校正
3我是在开发DEMO的注释里看到有这么一句:每通道i第j个点的实际电压值=(pReadData[j]-m_nLeverPos)*8*电压值/255。才知道pReadData中的数值还需要经过校正,至于电压值的单位是多少,并没有说。
DEMO中也没有用这个公式,而是用了个SourceToDisplay(USHORT* pData,ULONG nDataLen,USHORT nCH)函数。
4之前我就已经问了单位该怎么取,您也没有回答。
如果nCHVoltDIV 取5呢,(pReadData[j]-m_nLeverPos)*8*电压值/255 nCHVoltDIV=5时电压值是100mV,代入公式中用100,还是0.1?
1(pReadData[j]-m_nLeverPos)*8*100/255 单位mV
2(pReadData[j]-m_nLeverPos)*8*0.1/255 单位V
两个式子哪个正确?
5说实话,二次开发文档和DEMO也太简单了,不然也不会越看不明白的地方越多。
Author: 4fun Time: 2017-2-10 10:08
我也遇到同样的问题,楼主的问题解决了么?
Author: rokiluo Time: 2017-11-7 18:25
楼主请教一下:每通道i第j个点的实际电压值=(pReadData [j] -m_nLeverPos )* 8 *电压值/ 255公式中的 m_nLeverPos 是该通道的零电平值,怎么我读取的数据所生成的曲线零电平位置并不在 m_nLeverPos 位置的呢?
Author: rokiluo Time: 2017-11-7 18:53
请教hantek的工程师居然都不回复的
Author: Hantek_Zhang Time: 2017-11-8 10:01
都可以
假设pReadData[j]=200;m_nLeverPos=125;nCHVoltDIV=5;
用毫伏=(200-125)*100mV=7500mV
用伏=(200-125)*0.1V=7.5V
7500mV=7.5V
没有区别
Author: Hantek_Zhang Time: 2017-11-8 10:07
在又有任何信号输入情况pReadData 的均值与m_nLeverPos相减绝对值应该不超过10,
如果超过10,请在我们官方上位机中用你二次开发所设置的通道开关,垂直位置,时基查看是否零点平邮偏移
如果没有偏移说明二次开发代码有问题,有偏移说明0电平需要校准,依次点击:辅助>校准。
Welcome to Electronic Engineer Discuss (https://www.eediscuss.com/) |
Powered by Discuz! X3.2 |