1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 <2011> 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 <2011> 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: Epics C# Library problems |
From: | "Bertrand Alain" <[email protected]> |
To: | "Perrier Pierre" <[email protected]>, <[email protected]> |
Date: | Thu, 22 Sep 2011 08:54:13 +0200 |
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 { 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 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.
|