Test and Measurement Forum

PicoScope3204 - multiple runBlock

Post your .Net discussions here

PicoScope3204 - multiple runBlock

Postby mosine » Tue Mar 21, 2017 3:21 pm

Hi,
I have problem with multiple RunBlock. My Application is based on SDK example. My steps are:
for cycle
- initdevice (only first time)
- set channel to 10V
- set timebase to 100 ns
- set trigger
- read data

From second read, I have error on this line:
Code: Select all

           _ready = false;
            _callbackDelegate = BlockCallback;
            do
            {
                retry = false;
                status = Imports.RunBlock(_handle, 0, (int)sampleCount, _timebase, _oversample, out timeIndisposed, 0, _callbackDelegate, IntPtr.Zero);
                Thread.Sleep(200);
                if (status == (short)Imports.PICO_POWER_SUPPLY_CONNECTED || status == (short)Imports.PICO_POWER_SUPPLY_NOT_CONNECTED || status == (short)Imports.PICO_POWER_SUPPLY_UNDERVOLTAGE)
                {
                    status = PowerSourceSwitch(_handle, status);
                    retry = true;
                }
                else
                {
                    //return false;
                }
            }
            while (retry);

            Imports.Stop(_handle);

            if (_ready)    //<------- is false



What's my problem?
Thanks in advance
mosine
Newbie
 
Posts: 0
Joined: Thu Feb 09, 2017 2:03 pm

Re: PicoScope3204 - multiple runBlock

Postby Martyn » Tue Mar 21, 2017 4:03 pm

I am posting from a phone so can't give full detail but try making the program flow :-

Open Scope

Setup Scope

Setup Triggers

Setup Buffers

In a loop
(
RunBlock

Wait for Ready

Read Data
)
Stop Scope

Close Scope
Martyn
Technical Support Manager
Martyn
Site Admin
Site Admin
 
Posts: 2658
Joined: Fri Jun 10, 2011 8:15 am
Location: St. Neots

Re: PicoScope3204 - multiple runBlock

Postby mosine » Tue Mar 21, 2017 4:46 pm

Hi Martin,
Thannk you for reply. My second read has problem: PICO_CANCELLED and _retry = false.
What do you mean about setup Pico?
can you post an example?

Thanks
mosine
Newbie
 
Posts: 0
Joined: Thu Feb 09, 2017 2:03 pm

Re: PicoScope3204 - multiple runBlock

Postby mosine » Tue Mar 21, 2017 4:55 pm

Hi Martin,
I have the same problem.
mosine
Newbie
 
Posts: 0
Joined: Thu Feb 09, 2017 2:03 pm

Re: PicoScope3204 - multiple runBlock

Postby Martyn » Tue Mar 21, 2017 5:22 pm

Setup PicoScope -> Configure channels, timebase etc

Have you moved the Stop function so it is at the very end. You don't need to stop after each block collection.
Martyn
Technical Support Manager
Martyn
Site Admin
Site Admin
 
Posts: 2658
Joined: Fri Jun 10, 2011 8:15 am
Location: St. Neots

Re: PicoScope3204 - multiple runBlock

Postby mosine » Wed Mar 22, 2017 7:59 am

Hi Martin,
thank you for replies.
I understand my problem. I develop picoscope dll (I call it from Form...) and I can't wait the callback function (ps3000aBlockReady -> return _ready). The first block is fast (_ready=true), but the block is not fast from second read (_ready=False).
Now, I don't know if move dll into Form or not...
Thanks
mosine
Newbie
 
Posts: 0
Joined: Thu Feb 09, 2017 2:03 pm

Re: PicoScope3204 - multiple runBlock

Postby mosine » Wed Mar 22, 2017 9:53 am

Hi Martin,
can you suggest something?
Thanks
mosine
Newbie
 
Posts: 0
Joined: Thu Feb 09, 2017 2:03 pm

Re: PicoScope3204 - multiple runBlock

Postby Martyn » Wed Mar 22, 2017 10:38 am

Does the example code that we provide in the SDK work as supplied ?
Martyn
Technical Support Manager
Martyn
Site Admin
Site Admin
 
Posts: 2658
Joined: Fri Jun 10, 2011 8:15 am
Location: St. Neots

Re: PicoScope3204 - multiple runBlock

Postby mosine » Wed Mar 22, 2017 1:29 pm

Hi Martin,
thank you for reply.

I used as example: C:\PicoSDK\PS3000A\C# console.

If you see in previous posts, my code is similar (now I remove Imports.Stop(_handle)).
mosine
Newbie
 
Posts: 0
Joined: Thu Feb 09, 2017 2:03 pm

Re: PicoScope3204 - multiple runBlock

Postby mosine » Wed Mar 22, 2017 4:35 pm

Hi Martin,
I used example SDK: PicoSDK\PS3000A\C# console
mosine
Newbie
 
Posts: 0
Joined: Thu Feb 09, 2017 2:03 pm

Re: PicoScope3204 - multiple runBlock

Postby mosine » Wed Mar 22, 2017 5:24 pm

Hi Martin,
I post my code: part of code of Form and my picoscope dll.
My application works:
- an event call function to handle picoscope
- starts handle form -> dll

I followed your suggest (stop, close...), but I have the same problem.

Can you help me?

Thanks in advance.
Attachments
picoscopeMydll.cs
(19.5 KiB) Downloaded 8 times
partOfCodeMyForm.cs
function to handle picoscope from Form
(533 Bytes) Downloaded 8 times
mosine
Newbie
 
Posts: 0
Joined: Thu Feb 09, 2017 2:03 pm

Re: PicoScope3204 - multiple runBlock

Postby Martyn » Thu Mar 23, 2017 7:18 am

You are not waiting for the CallBack to set the ready flag.

The console example waits for ready or a key press
Code: Select all
            while (!_ready && !Console.KeyAvailable)
            {
                Thread.Sleep(100);
            }
Martyn
Technical Support Manager
Martyn
Site Admin
Site Admin
 
Posts: 2658
Joined: Fri Jun 10, 2011 8:15 am
Location: St. Neots

Re: PicoScope3204 - multiple runBlock

Postby mosine » Thu Mar 23, 2017 7:19 am

Hi Martin,
can you suggest me something?
Thanks
mosine
Newbie
 
Posts: 0
Joined: Thu Feb 09, 2017 2:03 pm

Re: PicoScope3204 - multiple runBlock

Postby Martyn » Thu Mar 23, 2017 10:26 am

You need to add in
Code: Select all
while (!_ready)
{
    Thread.Sleep(100);
}

to make sure that you wait for the scope to have collected the data before attempting to retrieve it.
Martyn
Technical Support Manager
Martyn
Site Admin
Site Admin
 
Posts: 2658
Joined: Fri Jun 10, 2011 8:15 am
Location: St. Neots

Re: PicoScope3204 - multiple runBlock

Postby mosine » Thu Mar 23, 2017 3:18 pm

Hi Martin,
I finally solved my problem.
I changed my code (very similar at SDK example):
- I open communication (init) with Picoscope by Form
- I create dll object and pass handle as constructor

I think that were thread problems between Form and dll.

Thanks for your patience.
mosine
Newbie
 
Posts: 0
Joined: Thu Feb 09, 2017 2:03 pm

Next

Return to .Net Languages (C#, VB.Net, .)

Who is online

Users browsing this forum: No registered users and 0 guests