Beta version of c# scope app.
Re: Pre alpha version of c# scope app.
No, I haven't DSO 112A. I have only DSO068. It would be very pleased If you will send me a dso112a.
Re: Pre alpha version of c# scope app.
Please send you address to jyetech@163.com. We'll send the sample as soon as possible.
We also tested the app with DSO068. Please see attachment. It was found much more reliable.
We also tested the app with DSO068. Please see attachment. It was found much more reliable.
Re: Pre alpha version of c# scope app.
Hello. Thank you for reply. I must admit that timebase is changeable. Blank timebase is only because there is a bug in this app causing possibly infinity loop while connecting with scope. So to avoid this, first state is set to none. After connection you can freely change timebase with limitation described in first post. I sent you my adress in e-mail you provided.
Re: Pre alpha version of c# scope app.
Hello, I have simple question. How is the correct way to retrieve correct voltage level from raw data in buffer? In original jyeLab i found :
Dup0 = osc->oscCh[0].BufDupA;
Dup1 = osc->oscCh[1].BufDupA;
// tmp2 = osc->oscCh[0].VPosOfs;
// tmp3 = osc->oscCh[1].VPosOfs;
tmp2 = osc->oscCh[0].Reference;
tmp3 = osc->oscCh[1].Reference;
// Determine transform factor for Ch 1 and Ch2
ddtmp1 = AnsiString(VSenInMicroVolt[osc->oscCh[0].Sen]).ToDouble();
ddtmp2 = AnsiString(VSenInMicroVolt[osc->oscCh[0].SenOrig]).ToDouble();
ftmp = ddtmp1/ddtmp2;
ddtmp1 = AnsiString(VSenInMicroVolt[osc->oscCh[1].Sen]).ToDouble();
ddtmp2 = AnsiString(VSenInMicroVolt[osc->oscCh[1].SenOrig]).ToDouble();
ftmp1 = ddtmp1/ddtmp2;
tmp0 = 0;
while(tmp0 < osc->oscRecLen) {
// *Dup0 = (sSIZE)((float)(*Dup0 + tmp2 - V0)/ftmp) + V0 - tmp2;
// *Dup1 = (sSIZE)((float)(*Dup1 + tmp3 - V0)/ftmp1) + V0 - tmp3;
*Dup0 = (sSIZE)((float)(*Dup0 - tmp2)/ftmp) + tmp2;
*Dup1 = (sSIZE)((float)(*Dup1 - tmp3)/ftmp1) + tmp3;
Dup0++;
Dup1++;
tmp0++;
}
// }
break;
Something messy is happening here. Maybe there is a simple formula. Thanks for help.
Dup0 = osc->oscCh[0].BufDupA;
Dup1 = osc->oscCh[1].BufDupA;
// tmp2 = osc->oscCh[0].VPosOfs;
// tmp3 = osc->oscCh[1].VPosOfs;
tmp2 = osc->oscCh[0].Reference;
tmp3 = osc->oscCh[1].Reference;
// Determine transform factor for Ch 1 and Ch2
ddtmp1 = AnsiString(VSenInMicroVolt[osc->oscCh[0].Sen]).ToDouble();
ddtmp2 = AnsiString(VSenInMicroVolt[osc->oscCh[0].SenOrig]).ToDouble();
ftmp = ddtmp1/ddtmp2;
ddtmp1 = AnsiString(VSenInMicroVolt[osc->oscCh[1].Sen]).ToDouble();
ddtmp2 = AnsiString(VSenInMicroVolt[osc->oscCh[1].SenOrig]).ToDouble();
ftmp1 = ddtmp1/ddtmp2;
tmp0 = 0;
while(tmp0 < osc->oscRecLen) {
// *Dup0 = (sSIZE)((float)(*Dup0 + tmp2 - V0)/ftmp) + V0 - tmp2;
// *Dup1 = (sSIZE)((float)(*Dup1 + tmp3 - V0)/ftmp1) + V0 - tmp3;
*Dup0 = (sSIZE)((float)(*Dup0 - tmp2)/ftmp) + tmp2;
*Dup1 = (sSIZE)((float)(*Dup1 - tmp3)/ftmp1) + tmp3;
Dup0++;
Dup1++;
tmp0++;
}
// }
break;
Something messy is happening here. Maybe there is a simple formula. Thanks for help.
Re: Pre alpha version of c# scope app.
The real voltage level can be calculated with the parameters obtained by the GetParam command.
1 ) VPos + VPosOfs is corresponding to 0V level. Both VPos and VPosOfs are signed value. When VPos + VPosOfs = 0 it is corresponding to value 128 (the center) of ADC output.
2 ) With sensitivity (Volt/div) and vertical display resolution (point/div, this value is 25 for DSO112A and 10 for DSO068) we can get the (volt/point). The real volage (v) for an ADC output (V) can be calculated by
v = (V - (VPos + VPosOfs)) * (volt/point)
The codes in jyeLab were kind of mess because the grid resolutions are different between scope screen and PC screen. Some conversions are required.
1 ) VPos + VPosOfs is corresponding to 0V level. Both VPos and VPosOfs are signed value. When VPos + VPosOfs = 0 it is corresponding to value 128 (the center) of ADC output.
2 ) With sensitivity (Volt/div) and vertical display resolution (point/div, this value is 25 for DSO112A and 10 for DSO068) we can get the (volt/point). The real volage (v) for an ADC output (V) can be calculated by
v = (V - (VPos + VPosOfs)) * (volt/point)
The codes in jyeLab were kind of mess because the grid resolutions are different between scope screen and PC screen. Some conversions are required.
Re: Pre alpha version of c# scope app.
New update! Many changes underhood. Now data is scaled:
((rawData - (128)) * (_voltPerDiv / ScopeConfig.PointsPerDiv));
I tried use v = (V - (VPos + VPosOfs)) * (volt/point) but maybe I'm lost something. I understand that (VPos + VPosOfs) is for calculating correct voltage while trace is moved away from zero offset. But I don't really understand how to calulate VPosOfs.
((rawData - (128)) * (_voltPerDiv / ScopeConfig.PointsPerDiv));
I tried use v = (V - (VPos + VPosOfs)) * (volt/point) but maybe I'm lost something. I understand that (VPos + VPosOfs) is for calculating correct voltage while trace is moved away from zero offset. But I don't really understand how to calulate VPosOfs.
Re: Pre alpha version of c# scope app.
Thank you for the new version. We will test it as soon as possible.
VPosOfs was set by performing VPos alignment by user. It is used to correct VPos error caused by opamp errors. By default its value is zero.
VPosOfs was set by performing VPos alignment by user. It is used to correct VPos error caused by opamp errors. By default its value is zero.
Re: Pre alpha version of c# scope app.
We tested the new version with DSO068. At the first run it was very good. All major features worked without problem. But later when we re-ran it it pop out an exception message at connecting to scope. See attachment. The message said something like "index exceeds array limit" (translated from the sentence in Chinese). But the scope showed connection was established.
This problem happened again and again even after the computer re-booted. We couldn't do further tests.
This problem happened again and again even after the computer re-booted. We couldn't do further tests.
Re: Pre alpha version of c# scope app.
That's strange. Please try restore default settings to DSO068. I observed that there are some bugs in DSO068 (or maybe in my app) that may cause to froze scope. And in that situation received frames are corrupted. I'm also curious if this app works more reliable with DSO112A.
Re: Pre alpha version of c# scope app.
Hi there. I finally got into my hands DSO112. I've already commit some changes to github code. Stay tuned for more info. And as always, feel free to review code on github and make your own changes,