Beta version of c# scope app.

shop
Posts: 48
Joined: Thu Jan 11, 2018 3:01 pm

Re: Pre alpha version of c# scope app.

Post by shop »

No, I haven't DSO 112A. I have only DSO068. It would be very pleased If you will send me a dso112a. :)
jye1
Posts: 1228
Joined: Wed Feb 20, 2013 4:58 pm

Re: Pre alpha version of c# scope app.

Post by jye1 »

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.
DSO068-1.pdf
(402.46 KiB) Downloaded 401 times
shop
Posts: 48
Joined: Thu Jan 11, 2018 3:01 pm

Re: Pre alpha version of c# scope app.

Post by shop »

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.
shop
Posts: 48
Joined: Thu Jan 11, 2018 3:01 pm

Re: Pre alpha version of c# scope app.

Post by shop »

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.
jye1
Posts: 1228
Joined: Wed Feb 20, 2013 4:58 pm

Re: Pre alpha version of c# scope app.

Post by jye1 »

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.
shop
Posts: 48
Joined: Thu Jan 11, 2018 3:01 pm

Re: Pre alpha version of c# scope app.

Post by shop »

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.
jye1
Posts: 1228
Joined: Wed Feb 20, 2013 4:58 pm

Re: Pre alpha version of c# scope app.

Post by jye1 »

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.
jye1
Posts: 1228
Joined: Wed Feb 20, 2013 4:58 pm

Re: Pre alpha version of c# scope app.

Post by jye1 »

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.
PCscope_0.png
shop
Posts: 48
Joined: Thu Jan 11, 2018 3:01 pm

Re: Pre alpha version of c# scope app.

Post by shop »

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.
shop
Posts: 48
Joined: Thu Jan 11, 2018 3:01 pm

Re: Pre alpha version of c# scope app.

Post by shop »

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,
Post Reply