<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Home</title><link>https://sourceforge.net/p/epicssharp/wiki/Home/</link><description>Recent changes to Home</description><atom:link href="https://sourceforge.net/p/epicssharp/wiki/Home/feed" rel="self"/><language>en</language><lastBuildDate>Thu, 10 Jul 2014 12:49:57 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/epicssharp/wiki/Home/feed" rel="self" type="application/rss+xml"/><item><title>Home modified by Daniel J. Lauk</title><link>https://sourceforge.net/p/epicssharp/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v9
+++ v10
@@ -1,111 +1,19 @@
-Client Library
-====================
+# EpicsSharp

-NuGet package (binary only):
-https://www.nuget.org/packages/EpicsClient2/
+EpicsSharp is a software library for the .NET platform implementing the *channel access protocol* used by [EPICS][] (version 3.14).

-Download the client library here (client directory):
-https://sourceforge.net/p/epicssharp/code/
+EpicsSharp consists of three parts:

-Add the reference of the EpicsClient2 assembly to your project.
+* The [client][] library allows your program to read, monitor and manipulate PVs on EPICS IOCs
+* The [server][] library allows your program to publish PVs via the channel access protocol
+* The [gateway][] is a standalone software, that allows channel access to be used across network boundaries

-To use it:
-
-~~~~~~
-EpicsClient client = new EpicsClient();
-client.Configuration.SearchAddress = "255.255.255.255:5064";
-var channel = client.CreateChannel&amp;lt;string&amp;gt;("MY-EPICS-CHANNEL:VALUE");
-Console.WriteLine(channel.Get());
-~~~~~~
-
-the client.Configuration.SearchAddress can be left out and it will then use the default EPICS search port on the local broadcast address. You can however specify one or more search addresses separated by semi-colons.
-
-To use monitors instead of get use the event MonitorChanged:
-
-~~~~~~
-class Program
-{
-    static EpicsChannel&amp;lt;string&amp;gt; channel;
-
-    static void Main(string[] args)
-    {
-        EpicsClient client = new EpicsClient();
-        client.Configuration.SearchAddress = "129.129.130.87:5432";
-
-        channel = client.CreateChannel&amp;lt;string&amp;gt;("ADG1:IST1:2");
-        channel.StatusChanged += new EpicsStatusDelegate(channel_StatusChanged);
-        channel.MonitorChanged += new EpicsDelegate&amp;lt;string&amp;gt;(channel_MonitorChanged);
-
-        Console.ReadKey();
-    }
-
-    static void channel_MonitorChanged(EpicsChannel&amp;lt;string&amp;gt; sender, string newValue)
-    {
-        Console.WriteLine("Value: " + newValue);
-    }
-
-    static void channel_StatusChanged(EpicsChannel sender, ChannelStatus newStatus)
-    {
-        Console.WriteLine("Status: " + newStatus.ToString());
-    }
-}
-~~~~~~
-
-type += and then 2 tabs which will generate for you the skeleton callback function.
-
-Server Library
-====================
-
-NuGet package (binary only):
-https://www.nuget.org/packages/CaSharpServer/
-
-Download the server library here (server directory):
-https://sourceforge.net/p/epicssharp/code/
-
-Add the reference of the CaSharpServer assembly to your project.
-
-To use it:
-
-~~~~~~
-class Program
-{
-    static int counter = 0;
-    static CAIntRecord intRecord;
-    static CAIntArrayRecord intArray;
-    static CAStringRecord strRecord;
-
-    static void Main(string[] args)
-    {
-        CAServer server = new CAServer(IPAddress.Parse("127.0.0.1"), 5064, 5064);
-        intRecord = server.CreateRecord&amp;lt;CAIntRecord&amp;gt;("PCTOTO2:INT");
-        intRecord.PrepareRecord += new EventHandler(intRecord_PrepareRecord);
-        intRecord.Scan = CaSharpServer.Constants.ScanAlgorithm.HZ10;
-
-        intArray = server.CreateArrayRecord&amp;lt;CAIntArrayRecord&amp;gt;("PCTOTO2:ARR",1000);
-        for (int i = 0; i &amp;lt; intArray.Length; i++)
-            intArray.Value[i] = i;
-
-        strRecord = server.CreateRecord&amp;lt;CAStringRecord&amp;gt;("PCTOTO2:STR");
-        strRecord.Value = "Default";
-
-        Console.ReadLine();
-    }
-
-    static void intRecord_PrepareRecord(object sender, EventArgs e)
-    {
-        counter++;
-        intRecord.Value = counter;
-    }
-}
-~~~~~~
-
-The constructor defines on which IP and on which ports the CA server must listen. You may run multiple servers on the same machine as long as the TCP port is different each time while sharing the same UDP port. However in this configuration you will reach the servers only while broadcasting the search request.
-
-After the creation of the server object, simply instantiate any number of epics variables you want through the call of server.CreateRecord&amp;lt;TType&amp;gt;("channel-name") where TType is a CARecord derived type.
-
-You can either set the values directly to the epics variables or on callback at the refresh rate you define.
-
-It's possible to define your own objects type and use them in the server library as long as you derive from CARecord.

 [[members limit=20]]
 [[download_button]]
+
+
+[epics]: http://www.aps.anl.gov/epics/ (Experimental Physics and Industrial Control System)
+[client]: client
+[server]: server
+[gateway]: gateway
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel J. Lauk</dc:creator><pubDate>Thu, 10 Jul 2014 12:49:57 -0000</pubDate><guid>https://sourceforge.neta8938bd2ceca5961112e01253f1769a7934d300e</guid></item><item><title>Discussion for Home page</title><link>https://sourceforge.net/p/epicssharp/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;The wiki does already contains examples of the client and the server. &lt;br /&gt;
Working with int string or array is basically the same. Just tell us what &lt;br /&gt;
you need more and we shall try to help you (you can contact me directly via email if you need to).&lt;/p&gt;
&lt;p&gt;Also the API should be documented, and you shall see it while within &lt;br /&gt;
Visual Studio.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alain Bertrand</dc:creator><pubDate>Thu, 19 Jun 2014 05:02:00 -0000</pubDate><guid>https://sourceforge.net4f61b795acb25cc1c26593b77ff18f108e009d15</guid></item><item><title>Discussion for Home page</title><link>https://sourceforge.net/p/epicssharp/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Please try to put together a CA client Windows form with PUT/GET/Monitor for int/string/Array with matching Windows Server form with dummy controls to serve PV's to the Client. &lt;br /&gt;
You have put a lot of work in the code, but not matched by the examples or ANY documentation. What a shame!&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">DaveBones</dc:creator><pubDate>Wed, 18 Jun 2014 20:19:39 -0000</pubDate><guid>https://sourceforge.net117bd09992d72016371eeae7531ee1767a313cf8</guid></item><item><title>Home modified by Alain Bertrand</title><link>https://sourceforge.net/p/epicssharp/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v8
+++ v9
@@ -101,11 +101,11 @@

 The constructor defines on which IP and on which ports the CA server must listen. You may run multiple servers on the same machine as long as the TCP port is different each time while sharing the same UDP port. However in this configuration you will reach the servers only while broadcasting the search request.

-After the creation of the server object, simply instantiate any number of epics variables you want through the call of server.CreateRecord("channel-name")
-
-TType must be derived of CARecord.
+After the creation of the server object, simply instantiate any number of epics variables you want through the call of server.CreateRecord("channel-name") where TType is a CARecord derived type.

 You can either set the values directly to the epics variables or on callback at the refresh rate you define.

+It's possible to define your own objects type and use them in the server library as long as you derive from CARecord.
+
 [[members limit=20]]
 [[download_button]]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alain Bertrand</dc:creator><pubDate>Fri, 21 Mar 2014 08:06:44 -0000</pubDate><guid>https://sourceforge.nete84646cbdd27946893552a0dfeb2c7e61d6e25c6</guid></item><item><title>Home modified by Alain Bertrand</title><link>https://sourceforge.net/p/epicssharp/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v7
+++ v8
@@ -56,6 +56,9 @@
 Server Library
 ====================

+NuGet package (binary only):
+https://www.nuget.org/packages/CaSharpServer/
+
 Download the server library here (server directory):
 https://sourceforge.net/p/epicssharp/code/

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alain Bertrand</dc:creator><pubDate>Thu, 30 Jan 2014 07:56:40 -0000</pubDate><guid>https://sourceforge.netb9290b62b0f966c505ba0e9901e62189934182eb</guid></item><item><title>Home modified by Alain Bertrand</title><link>https://sourceforge.net/p/epicssharp/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v6
+++ v7
@@ -14,7 +14,7 @@
 ~~~~~~
 EpicsClient client = new EpicsClient();
 client.Configuration.SearchAddress = "255.255.255.255:5064";
-channel = client.CreateChannel("MY-EPICS-CHANNEL:VALUE");
+var channel = client.CreateChannel("MY-EPICS-CHANNEL:VALUE");
 Console.WriteLine(channel.Get());
 ~~~~~~

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alain Bertrand</dc:creator><pubDate>Thu, 30 Jan 2014 07:51:41 -0000</pubDate><guid>https://sourceforge.net143bac030ba27b01d7dd2ea39168c6f7fc3a4ef0</guid></item><item><title>Home modified by Alain Bertrand</title><link>https://sourceforge.net/p/epicssharp/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v5
+++ v6
@@ -1,5 +1,8 @@
 Client Library
 ====================
+
+NuGet package (binary only):
+https://www.nuget.org/packages/EpicsClient2/

 Download the client library here (client directory):
 https://sourceforge.net/p/epicssharp/code/
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alain Bertrand</dc:creator><pubDate>Thu, 30 Jan 2014 07:10:27 -0000</pubDate><guid>https://sourceforge.neta7bf6f1b512bd7da4c31a781fb440478b7dfff4d</guid></item><item><title>Discussion for Home page</title><link>https://sourceforge.net/p/epicssharp/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;br /&gt;
Thank you for your quick answer. I have succeed in running a simple server-client app. Now I have doubts, What happens with data of the server, I mean, are being saved the data in the distributed database as the EPICS says, or is in volatile memory and whe the application shuts down you lost them. What I mean is where I should save the data, should I create a ssql databse for eaxmple?...&lt;br /&gt;
Thank you again,&lt;br /&gt;
Regards.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Juan Manuel</dc:creator><pubDate>Thu, 19 Dec 2013 09:15:14 -0000</pubDate><guid>https://sourceforge.nete487dc0c7cc5cb5a832b2c04548419a64717c1d3</guid></item><item><title>Discussion for Home page</title><link>https://sourceforge.net/p/epicssharp/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hello,&lt;br /&gt;
what should I do to make a simple example of using this, I woul like to do two apps, one with a server an other for client and being able to receive something in the client by doing a get call or something similar.&lt;br /&gt;
Is there any tutorial on using these libraries with some examples?, because I am lost and I am not able to do a demonstrator.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Juan Manuel</dc:creator><pubDate>Wed, 18 Dec 2013 16:41:06 -0000</pubDate><guid>https://sourceforge.net1787f0799a48fbe83faf7a05d70aa505e978a616</guid></item><item><title>Home modified by Alain Bertrand</title><link>https://sourceforge.net/p/epicssharp/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -18,6 +18,7 @@
 the client.Configuration.SearchAddress can be left out and it will then use the default EPICS search port on the local broadcast address. You can however specify one or more search addresses separated by semi-colons.

 To use monitors instead of get use the event MonitorChanged:
+
 ~~~~~~
 class Program
 {
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alain Bertrand</dc:creator><pubDate>Tue, 06 Aug 2013 08:31:18 -0000</pubDate><guid>https://sourceforge.nete79318b30f47fa44613555642d904a90453b3a77</guid></item></channel></rss>