<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://ift.wiki.uib.no/index.php?action=history&amp;feed=atom&amp;title=FeeServer</id>
	<title>FeeServer - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://ift.wiki.uib.no/index.php?action=history&amp;feed=atom&amp;title=FeeServer"/>
	<link rel="alternate" type="text/html" href="http://ift.wiki.uib.no/index.php?title=FeeServer&amp;action=history"/>
	<updated>2026-05-24T04:18:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>http://ift.wiki.uib.no/index.php?title=FeeServer&amp;diff=137&amp;oldid=prev</id>
		<title>Dfe002: New page: Category:DCS back to: Detector Control System    == Overview ==  ... (to be filled)   == FeeServer Download == Curren...</title>
		<link rel="alternate" type="text/html" href="http://ift.wiki.uib.no/index.php?title=FeeServer&amp;diff=137&amp;oldid=prev"/>
		<updated>2009-02-20T10:46:12Z</updated>

		<summary type="html">&lt;p&gt;New page: &lt;a href=&quot;/index.php?title=Category:DCS&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Category:DCS (page does not exist)&quot;&gt;Category:DCS&lt;/a&gt; back to:&lt;a href=&quot;/Detector_Control_System_(DCS)_for_ALICE_Front-end_electronics&quot; title=&quot;Detector Control System (DCS) for ALICE Front-end electronics&quot;&gt; Detector Control System&lt;/a&gt;    == Overview ==  ... (to be filled)   == FeeServer Download == Curren...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:DCS]]&lt;br /&gt;
back to:[[Detector Control System (DCS) for ALICE Front-end electronics | Detector Control System]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
... (to be filled)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FeeServer Download ==&lt;br /&gt;
Current releases of the FeeServer with RCU-like ControlEngine (fits for &amp;#039;&amp;#039;&amp;#039;TPC&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;PHOS&amp;#039;&amp;#039;&amp;#039;) are available from the [[DCS Download#FeeServer | Download page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Versions of the FeeServer core software can be downloaded from the [https://www.ztt.fh-worms.de/download/alice ZTT web pages]. This package only contains the FeeSever core, the needed [http://www.cern.ch/dim DIM framework] libraries and a dummy CE (something like a echo server), the real CE depends on the detector and requires the appropriated hardware).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
After unpacking the compressed archive (tar xzvf &amp;lt;filename&amp;gt; ) change to the directory. The package must be configured by running the &amp;#039;&amp;#039;./configure&amp;#039;&amp;#039; script, after configuration for the desired platform type &amp;#039;&amp;#039;make&amp;#039;&amp;#039;. The script has several options:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;--host &amp;lt;host environment&amp;gt;&amp;#039;&amp;#039;&amp;#039; : selection of the cross compiler&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;--disable-rcu&amp;#039;&amp;#039;&amp;#039;      : RCU related functionality (in this wiki you will only find RCU-like FeeServers, so there is only the option to turn it off)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;--enable-tpc&amp;#039;&amp;#039;&amp;#039;       : TPC related functionality (so far there is none, all is included in the RCU target)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;--enable-phos&amp;#039;&amp;#039;&amp;#039;      : PHOS related functionality&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;--enable-mastermode&amp;#039;&amp;#039;&amp;#039;: Enable special features (e.g. shell command execution, FeeServer update)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;--enable-rcudummy&amp;#039;&amp;#039;&amp;#039;  : Enable a dummy implementation of the RCU CE. This will skip all the hardware accesses. &lt;br /&gt;
&lt;br /&gt;
Try &amp;#039;&amp;#039;&amp;#039;--help&amp;#039;&amp;#039;&amp;#039; to get a comprehensive help or &amp;#039;&amp;#039;&amp;#039;--help=short&amp;#039;&amp;#039;&amp;#039; to get information on the package specific options.&lt;br /&gt;
&lt;br /&gt;
If you want to build the FeeServer for the armlinux on the DCS board you need a [[DCS FAQ#What is a cross compiler? | Cross Compiler]]. Currently arm-uclibc-gcc 3.3.1 is used. To configure the package for the cross compiler run the configure script like:&lt;br /&gt;
&lt;br /&gt;
 ./configure --host arm&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Be sure that the path of the cross compiler is added to the &amp;#039;&amp;#039;&amp;#039;PATH&amp;#039;&amp;#039;&amp;#039; environment variable ([[DCS FAQ#How do I install a cross compiler and use it? |more help]]). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you plan to compile the FeeServer core package please have a look into the README file which comes along with the package.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
To run the FeeServer on the DCS board copy it to the board wherever you want to have it. The second, strongly recommended, possibility is to mount a network disk on the board. The FeeServer package supports automatic copying to whatever folder through the standard &amp;#039;&amp;#039;make install&amp;#039;&amp;#039; command. The location can be specified by the &amp;#039;&amp;#039;&amp;#039;--prefix&amp;#039;&amp;#039;&amp;#039; option to the &amp;#039;&amp;#039;configure&amp;#039;&amp;#039; script.&lt;br /&gt;
&lt;br /&gt;
A few more variables have to be set:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;DIM_DNS_NODE&amp;#039;&amp;#039;&amp;#039;(mandatory) denotes the host where a &amp;#039;&amp;#039;Name Server&amp;#039;&amp;#039; for the DIM framework (&amp;#039;&amp;#039;dns - DIM Name Server&amp;#039;&amp;#039;) is running.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;FEE_SERVER_NAME&amp;#039;&amp;#039;&amp;#039;(mandatory) for the name of the FeeServer (as it will pop up in the DIM system )&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;FEE_LOG_LEVEL&amp;#039;&amp;#039;&amp;#039;(optional) default logging level of the FeeServer&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;FEESERVER_FEC_MONITOR&amp;#039;&amp;#039;&amp;#039;(optional) specifies the valid FECs &amp;lt;br&amp;gt; its a string of &amp;#039;0&amp;#039; and &amp;#039;1&amp;#039;, missing entries are set to 0, e.g. &amp;#039;01001&amp;#039; puts FEC 2 and 5 into the configuration&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;!!! IMPORTANT !!! NOTE:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Since version 0.7.0:&lt;br /&gt;
The environment variable for the FeeServer name has changed to&lt;br /&gt;
FEE_SERVER_NAME. (prior versions: DIM_SERVER_NAME)&lt;br /&gt;
&lt;br /&gt;
== Running the FeeServer ==&lt;br /&gt;
&lt;br /&gt;
To execute FeeServer properly please follow these steps:&lt;br /&gt;
* make sure that the dns for DIM is running on the machine you specified&lt;br /&gt;
* !!! NEW !!! since version 0.7.0:&amp;lt;br&amp;gt; finally run &amp;#039;&amp;#039;sh startFeeServer.sh&amp;#039;&amp;#039; &amp;lt;br&amp;gt; This script starts the FeeServer and takes care of various features.&lt;br /&gt;
&lt;br /&gt;
The starting script also accepts an optional parameter: You can also set the FeeServer name by passing it to the starting script. The starting script automatically restarts the FeeServer, if it exits with an unknown error/exit value.&lt;br /&gt;
&lt;br /&gt;
For debugging purpose it is convenient to start the FeeServer directly like &amp;#039;&amp;#039;./feeserver&amp;#039;&amp;#039;. In that case, the restart and update features will not work.&lt;br /&gt;
&lt;br /&gt;
== Important Notes ==&lt;br /&gt;
&lt;br /&gt;
* for full functionality start the FeeServer only with the startFeeServer.sh script.&lt;br /&gt;
* interface of FeeServer and CE changed in version 0.7.0  &lt;br /&gt;
* The service name scheme for CE service has changed:&amp;lt;br&amp;gt;old style: &amp;#039;&amp;#039;servername/servicename&amp;#039;&amp;#039; -&amp;gt; new style: &amp;#039;&amp;#039;servername_servicename&amp;#039;&amp;#039;&amp;lt;br&amp;gt;  (These changes for ACK-, MSG- and Command-channel will follow.)&lt;br /&gt;
* never turn on &amp;#039;&amp;#039;&amp;#039;mastermode&amp;#039;&amp;#039;&amp;#039; unless you are shure that your network is behind a firewall to avoid abuse.&lt;br /&gt;
&lt;br /&gt;
See also the README and ChangeLog - files of the FeeServer package.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ControlEngine guidelines ==&lt;br /&gt;
&lt;br /&gt;
Following some notes, which should be taken account of when developing a ControlEngine. &lt;br /&gt;
* We included a demo function for initializing an &amp;quot;Item&amp;quot; in our dummy CE. When writing an own CE, it is best copying and using this function in order to get a proper initialized &amp;quot;Item&amp;quot;.&lt;br /&gt;
* Don&amp;#039;t use static created &amp;quot;Items&amp;quot;, especially don&amp;#039;t use static allocated memory for the &amp;quot;Item&amp;quot; names. This would case the clean up to hang and a  proper exit would be no longer possible.&lt;br /&gt;
* Please obey the DCS naming and numbering convention, when naming an &amp;quot;Item&amp;quot;. more under: http://alicedcs.web.cern.ch/AliceDCS/&lt;br /&gt;
* Provide the &amp;quot;Items&amp;quot; with a default deadband. (Else the deadband will be 0, and the update rate would get to high -&amp;gt; to much traffic). &lt;br /&gt;
* After the CE has been initialized, let this thread sleep for approx.  2-5 seconds (this gives the FeeServer time start the serving functionality  inside the DIM framework).&lt;br /&gt;
* In &amp;quot;cleanUpCE()&amp;quot;, the CE don&amp;#039;t need to clean and/or free &amp;quot;Items&amp;quot; and its members. (In fact it must not do it, this would crash the FeeServer during its cleanup.)&lt;br /&gt;
* Don&amp;#039;t call the createLogMessage() function during initializing the CE. (after the above mentioned sleep is fine). This service is only available after the DIM serving functionality has been started. &lt;br /&gt;
* Be careful with sending log messages, especially in rapidly repeated checks/functions, this can pile up your log file extremely. Even consider  carefully the specified log level; MSG_ALARM should be only for events,  that could damage or destroy the system/hardware.&lt;br /&gt;
* If, while testing, certain log messages of the CE don&amp;#039;t appear, check the set log levels in FeeServer and InterComLayer. They may have filtered these messages. To set the default log level of the FeeServer, you can  also use the environment variable FEE_LOG_LEVEL before starting the  FeeServer.&lt;br /&gt;
&lt;br /&gt;
== ControlEngine implementations == &lt;br /&gt;
* [[RCU ControlEngine | The ControlEngine for the RCU]]&lt;/div&gt;</summary>
		<author><name>Dfe002</name></author>
	</entry>
</feed>