EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Epics C# Library problems
From: "Bertrand Alain" <[email protected]>
To: "Perrier Pierre" <[email protected]>
Cc: [email protected]
Date: Thu, 22 Sep 2011 11:34:08 +0200

Currently the client implementation we made support arrays up to 65K elements, as we use only the 16 bit element count. I didn't found yet how Epics sends over arrays bigger than that and until I find it, I can't implement a fix.

 

However I will try to check if there is some hints somewhere.

 

If somebody do have the info about how the header is constructed for bigger arrays (and at the same time for variable sized array) it would help me adding those features inside the library.

 

Sincerely,

 

Alain Bertrand

 


From: Perrier Pierre [mailto:[email protected]]
Sent: Thursday, September 22, 2011 10:42 AM
To: Bertrand Alain
Cc: [email protected]
Subject: RE: Epics C# Library problems

 

Hello,

 

It’s what I’ve did for the monitor and it doesn’t seem to work. With this context I’ve tested the monitoring of a string waveform record which has a length 2 elements and all seems ok. I think that the problem is caused by the length of my waveform record which is 307,200

 

Cheers,

 

Pierre Perrier

 

 

De : Bertrand Alain [mailto:[email protected]]
Envoyé : jeudi 22 septembre 2011 08:54
À : Perrier Pierre; [email protected]
Objet : RE: Epics C# Library problems

 

For a simple get you should do the following:

 

EpicsClient client = new EpicsClient();

client.Config.ServerList.Clear();

client.Config.ServerList.Add("129.129.130.88:5064"); // replace with the broadcast address or with the server / gateway one

EpicsChannel<int[]> record = client.CreateChannel<int[]>("TOTO:INT");

int[] data = "">

for (int i = 0; i < data.Length; i++)

{

    if (i != 0)

        Console.Write(", ");

    Console.Write(i);

}

Console.WriteLine("");

 

 

For a monitor:

 

static void Main(string[] args)

{

    EpicsClient client = new EpicsClient();

    client.Config.ServerList.Clear();

    client.Config.ServerList.Add("129.129.130.88:5064"); // replace with the broadcast address or with the server / gateway one

    EpicsChannel<int[]> record = client.CreateChannel<int[]>("TOTO:INT");

    record.MonitorChanged += new EpicsDelegate<int[]>(record_MonitorChanged);

    Console.ReadKey();

}

 

static void record_MonitorChanged(EpicsChannel<int[]> sender, int[] newValue)

{

    for (int i = 0; i < newValue.Length; i++)

    {

        if (i != 0)

            Console.Write(", ");

        Console.Write(newValue[i]);

    }

    Console.WriteLine("");

}

 

Personally I never use the Get function.

 

Cheers,

 

Alain Bertrand

 

 

 


From: [email protected] [mailto:[email protected]] On Behalf Of Perrier Pierre
Sent: Wednesday, September 21, 2011 4:40 PM
To: [email protected]
Subject: Epics C# Library problems

 

Hello,

 

I’m trying the EPICS C# Library in order to create a client to manage a Camera IOC. Unfortunately, I have some problems with the monitoring of waveforms records.

 

I want to monitor a waveform PV which contains data of a 640x480 gray scale picture (integers from 0 to 255). So it’s a large waveform of 307,200 elements. When  I process the following code, I catch a “Server did not respond in Time to Get Request” exception ( or , in debug mode,  the code doesn’t return).

 

 

EpicsClient m_client = new EpicsClient();

try{

                EpicsChannel<int> m_acquisitionCamera = m_client.CreateChannel<int>(“CameraJAI :Acquisition”) ;

                Int[] l_data = m_acquisitionCamera.Get<int[]>() ; 

} catch (Exception e){

                System.Console.WriteLine(e.Message) ;

                System.Console.WriteLine(e.StackTrace) ;

}

 

Is there a way to fix this problem ? Any advices ? In order to really create a monitor, someone can show me a short sample of an EPICS C# monitor which manages an array record.

 

 

Best Regards,


Pierre PERRIER

Stagiaire - MCO LIL

Sopra group.

Parc Innolin
9 rue du Golf 33700 Merignac
Phone : +33 (0)5 56 12 79 59
[email protected] - www.sopragroup.com

 

Ce message peut contenir des informations confidentielles dont la divulgation est à ce titre rigoureusement interdite en l'absence d'autorisation explicite de l'émetteur. Dans l'hypothèse où vous auriez reçu par erreur ce message, merci de le renvoyer à l’émetteur et de détruire toute copie.

P Pensez à l’environnement avant d’imprimer.

 


Replies:
RE: Epics C# Library problems Bertrand Alain
References:
Epics C# Library problems Perrier Pierre
RE: Epics C# Library problems Bertrand Alain
RE: Epics C# Library problems Perrier Pierre

Navigate by Date:
Prev: Re: Epics C# Library problems Ralph Lange
Next: RE: Epics C# Library problems Bertrand Alain
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Epics C# Library problems Ralph Lange
Next: RE: Epics C# Library problems Bertrand Alain
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·