<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to C-CPP_Protocol_UserGuide</title><link>https://sourceforge.net/p/coronissdk/wiki/C-CPP_Protocol_UserGuide/</link><description>Recent changes to C-CPP_Protocol_UserGuide</description><atom:link href="https://sourceforge.net/p/coronissdk/wiki/C-CPP_Protocol_UserGuide/feed" rel="self"/><language>en</language><lastBuildDate>Fri, 14 Dec 2012 21:41:40 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/coronissdk/wiki/C-CPP_Protocol_UserGuide/feed" rel="self" type="application/rss+xml"/><item><title>WikiPage C-CPP_Protocol_UserGuide modified by Thierry CHOMAUD</title><link>https://sourceforge.net/p/coronissdk/wiki/C-CPP_Protocol_UserGuide/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -28,7 +28,7 @@

 In this tutorial, we will use the Coronis Waveport protocol implementation of Waveport Protocol  API. In this tutorial, two libraries will be required to make a robust example : the serial driver and waveport protocol libraries.

-1. Get the last *Coronis Waveport protocol* and serial driver delivery packages (TODO- add a download link)
+1. Get the last [*Coronis Waveport protocol*](http://sourceforge.net/projects/coronissdk/files/public/coronissdk_waveportprotocol_v2.0.0.zip/download) delivery package

 2. Copy the RS232driver library to the root of the user project
     * *csrs232driver.dll* for Windows platform
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thierry CHOMAUD</dc:creator><pubDate>Fri, 14 Dec 2012 21:41:40 -0000</pubDate><guid>https://sourceforge.net2e93f4bf81d3ce38fc659ad58c7f8058baff8d3a</guid></item><item><title>WikiPage C-CPP_Protocol_UserGuide modified by Thierry CHOMAUD</title><link>https://sourceforge.net/p/coronissdk/wiki/C-CPP_Protocol_UserGuide/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thierry CHOMAUD</dc:creator><pubDate>Fri, 14 Dec 2012 14:05:39 -0000</pubDate><guid>https://sourceforge.net4ef4b8acb1833127d99ac680be314f9d884fb65f</guid></item><item><title>WikiPage C-C++_Protocol_UserGuide modified by vmacari</title><link>https://sourceforge.net/p/coronissdk/wiki/C-C%252B%252B_Protocol_UserGuide/</link><description>&lt;pre&gt;--- v1
+++ v2
@@ -1,6 +1,133 @@
-To be completed (VMI)
+## Overview ##
 
-Loading explanation
+The *Coronis SDK - Protocol API* allows connecting Coronis devices through high level protocol. The protocol in this case will use SerialDriver to get access to low level communication.
+Only the Coronis Waveport Protocol implementation is available in the current version.
 
-C example with waveport implementation
-C++ example with waveport implementation
+The Protocol API offer services to manage dataflow and commandflow between two coronis devices and most of them guaranties that imformation reaches the remote point or in case of failure, the user is informed.
+
+A more detailed information about WaveportProtocol implementation can be obtained from Waveport Protocol developer guide [WaveportProtocol_DevelopperGuide]
+
+## Getting started with already existing test and example projects ##
+ 1. Checkout sources from svn as a new eclipse projects:
+    * Serial driver related projects
+    
+    * Waveport protocol related projects
+     - com_coronis_sdk_protocol_api
+     - com_coronis_sdk_protocol_waveportprotocol
+     - com_coronis_sdk_protocol_waveportprotocol_test
+     - com_coronis_sdk_protocol_waveportprotocol_example
+    
+## Getting started ##
+
+
+#### 1. Create user C project ####
+
+First, you have to create a new C project into eclipse environment. Please read [How to create a C project in CDT eclipse] tutorial.
+
+#### 2. Import WaveportProtocol implementation ####
+
+In this tutorial, we will use the Coronis Waveport protocol implementation of Waveport Protocol  API. In this tutorial, two libraries will be required to make a robust example : the serial driver and waveport protocol libraries.
+
+1. Get the last *Coronis Waveport protocol* and serial driver delivery packages (TODO- add a download link)
+
+2. Copy the RS232driver library to the root of the user project
+    * *csrs232driver.dll* for Windows platform
+    * *libcsrs232driver.so* for Linux platform
+3. Copy the Waveport protocol library to the root of the user project
+    * *cswaveportprotocol.dll* for Windows platform
+    * *libcswaveportprotocol.so* for Linux platform
+4. Copy the *csrs232driver.properties* and *csrswaveportProtocol.properties* files to the root of your project
+5. Copy cslogger.properties to the root of your project to enable logging support
+
+5. Include header files of SerialDriver API and Protocol API
+    * First solution (recommended), Import in user workspace, the com_coronis_sdk_serialdriver_api and com_coronis_sdk_protocol_api folder as eclipse projects.
+    * Second solution, copy all the header files of SerialDriver API and Protocol API into a subfolder *include* of your project.
+    * In both cases, user has to add the SerialDriver API and Protocol API header files folder into its C/C++ Build project properties-&gt;Include path compilation option.
+6. Include the SerialFrame and Payload definition that must be used for Coronis RS232Driver and Protocol implementations:
+    * First solution (recommended), Import in user workspace, the com_coronis_sdk_domain folder as an eclipse project.
+    * Second solution, copy serial_driver_types.h and protocol_types.h of Coronis domain into a subfolder *include* of your project.
+    * In both cases, user has to add the *serial_driver_types.h* and *protocol_types.h* parent folder into its C/C++ Build project properties-&gt;Include path compilation option
+    * Refer [SerialDriver Serial frame] [Payload] for more information about the coronis serial frame definition
+7. Include Generic constants header file of Domain module.
+    * add the *generic_constants.h* parent folder into C/C++ Build project properties-&gt;Include path compilation option.
+    * this file includes usefull constants definition like OK, NULL...
+
+#### 3. Load Serial driver  implementation ####
+
+To use a serial driver implementation in accordance with the API, user must use specific mechanism of "library and function loading" to be able to call the API services from the library that implements the API.
+
+* Let's have first a quick look to the SerialDriver loading mechanism, that is implemented into domain module:
+    * The principle is to create a Serial driver loader structure which will contains a pointer to each function of the *i_serial_driver_service.h* method. With this structure, the user will be able to call each service of SerialDriver API.
+    * This structure named *SerialDriverLoader*, is defined into header file *com_coronis_sdk_domain/include/loader_serial_driver.h*
+    * 2 methods *load_serial_driver* and *free_serial_driver* are declared into file *com_coronis_sdk_domain/src/external/loader_serial_driver.c*, to allow the user to initialize or free the structure
+    * The load method use native method for loading library and functions and make the link between the structure and the implemented services of the SerialDriver implementated library.
+    * Extracted source that concerns the SerialDriver loading mechanism are available here [SerialDriver loading mechanism sources] 
+    
+* To use this mechanism, user has 2 possibilities:
+    * Get a copy of *loader_serial_driver.h* &amp; *loader_serial_driver.c* source files of domain module into its project.
+    * Make a local link to the domain folder which include the loader_serial_driver.c and exclude other file from project compilation. 
+    * In both case user has to add the *loader_serial_driver.h* parent folder into C/C++ Build project properties-&gt;Include path compilation option.
+
+ #### 4. Load Waveport protocol  implementation ####
+
+To use a protocol implementation in accordance with the API, user must use specific mechanism of "library and function loading" to be able to call the API services from the library that implements the API.
+
+* Let's have first a quick look to the Waveport protocol loading mechanism, that is implemented into domain module:
+    * The principle is to create a Protocol loader structure which will contains a pointer to each function of the *i_protocol_service.h* method. With this structure, the user will be able to call each service of Waveport Protocol API.
+    * This structure named *ProtocolLoader*, is defined into header file *com_coronis_sdk_domain/include/loader_protocol.h*
+    * 2 methods *load_protocol* and *free_protocol* are declared into file *com_coronis_sdk_domain/src/external/loader_protocol.c*, to allow the user to initialize or free the structure
+    * The load method use native method for loading library and functions and make the link between the structure and the implemented services of the Waveport Protocol implementated library.
+    * Extracted source that concerns the Waveport Protocol loading mechanism are available here [Waveport loading mechanism sources] 
+    
+* To use this mechanism, user has 2 possibilities:
+    * Get a copy of *loader_protcol.h* &amp; *loader_protcol.c* source files of domain module into its project.
+    * Make a local link to the domain folder which include the loader_protocol.c and exclude other file from project compilation. 
+    * In both case user has to add the *loader_protcol.h* parent folder into C/C++ Build project properties-&gt;Include path compilation option.
+
+#### 5. Send request (main program) ####
+
+In this tutorial, we suppose that user has connected a Waveport radio modem on Port *COM4*.
+We will send the frame *0x5005*, which correspond to the local service request *READ_RADIO_ADDRESS*. So we must receive spontaneously after the sending, a frame which begins with 0x51
+
+1. Here are usual step that must be done before be able to send the frame:
+
+# Serial driver
+    * Load RS232Driver library
+    * Create a RS232Driver instance
+    * Configure the instance
+        * port ID setting
+        * initialization (default configuration values)
+    * Register a listener to receive spontaneous frame
+    
+# Protocol
+    * Load Waveport Protocol library
+    * Create a Waveport Protocol instance
+    * Configure the instance
+        * initialization (default configuration values)
+        * set serial driver instance 
+    * Register a listener to receive events and data
+
+    * Open the protocol to start activity
+
+2. Send the request
+
+3. At the end, following steps must be done before quit the program:
+
+    * destroy protocol
+    * free library
+
+#### 6. Activate the Coronis Domain logger (optional) ####
+
+Coronis Domain module offers a logging feature, that is used by the rs232driver implementation to give internal process information. To activate it, user has to follow these steps:
+
+1. Copy the Domain library (*Coronis RS232Driver* delivery package) to the root of the user project
+    * *csdomain.dll* for Windows platform
+    * *libcsdomain.so* for Linux platform
+2. Copy the *cslogger.properties* file to the root of your project
+    * Edit the logger properties if needed (log level, destination file)
+
+#### Resources ####
+
+    For a working example checkout the test and the example projects.
+
+## Going further ##
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">vmacari</dc:creator><pubDate>Tue, 26 Jun 2012 13:30:21 -0000</pubDate><guid>https://sourceforge.nete3ed8c9ec12612b458f885d93da950ab2c6b33eb</guid></item></channel></rss>