<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.elab.tecnico.ulisboa.pt/wwwelab/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ist149563</id>
	<title>wwwelab - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://www.elab.tecnico.ulisboa.pt/wwwelab/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ist149563"/>
	<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Special:Contributions/Ist149563"/>
	<updated>2026-05-09T13:38:31Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4044</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4044"/>
		<updated>2021-04-22T16:59:02Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Git (2.30.2+)&lt;br /&gt;
* Ant (1.10.9+)&lt;br /&gt;
* Maven (3.6.3+)&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
Setup JAVA_HOME environment variable pointing to a valid openjdk11 installation:&lt;br /&gt;
&lt;br /&gt;
    $ export JAVA_HOME=/path/to/openjdk11&lt;br /&gt;
&lt;br /&gt;
Setup ~/.m2/toolchains.xml pointing to a valid openjdk11 installation:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;toolchains&amp;gt;&lt;br /&gt;
        &amp;lt;toolchain&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;jdk&amp;lt;/type&amp;gt;&lt;br /&gt;
                &amp;lt;provides&amp;gt;&lt;br /&gt;
                    &amp;lt;vendor&amp;gt;openjdk&amp;lt;/vendor&amp;gt;&lt;br /&gt;
                    &amp;lt;version&amp;gt;11&amp;lt;/version&amp;gt;&lt;br /&gt;
                &amp;lt;/provides&amp;gt;&lt;br /&gt;
            &amp;lt;configuration&amp;gt;&lt;br /&gt;
                &amp;lt;jdkHome&amp;gt;/path/to/openjdk/jdk11.0.8&amp;lt;/jdkHome&amp;gt;&lt;br /&gt;
            &amp;lt;/configuration&amp;gt;&lt;br /&gt;
        &amp;lt;/toolchain&amp;gt;&lt;br /&gt;
    &amp;lt;/toolchains&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''deployment/compose/src/main/docker/docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
'''experiments/{experiment}/etc/build.properties'''&lt;br /&gt;
&lt;br /&gt;
* '''experiment.driver.device''': Serial port device (e.g. /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Package everything:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images -Dpublic.repo=docker.io&lt;br /&gt;
&lt;br /&gt;
Copy resulting packages to destination servers:&lt;br /&gt;
&lt;br /&gt;
* Multicast Server&lt;br /&gt;
    $ scp deployment/images/target/reverse-proxy.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/multicast.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing-admin.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-runner.yml multicast-server-name:/tmp/docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
* Hardware Server&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller==&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
&lt;br /&gt;
* Load Docker images (only if building outside target deployment server)&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar # ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar # Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar # ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar # Reverse Proxy image&lt;br /&gt;
&lt;br /&gt;
* Copy docker-compose.yml file to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose.yml /home/elab/&lt;br /&gt;
&lt;br /&gt;
* Start all services&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Create experiment directory&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Unpack experiment package to experiment directory&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Start experiment&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&lt;br /&gt;
* Direct access to experiment:&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com) + experiment name (e.g. wpalentejo)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/wpalentejo&lt;br /&gt;
&lt;br /&gt;
* Webswing and administration console&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/&lt;br /&gt;
&lt;br /&gt;
User: admin&lt;br /&gt;
Pass: pwd&lt;br /&gt;
&lt;br /&gt;
= Operations =&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh stop&lt;br /&gt;
&lt;br /&gt;
* Logs&lt;br /&gt;
    $ /home/elab/rec-deployment/${experiment}/*.log&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml down&lt;br /&gt;
&lt;br /&gt;
* Logs:&lt;br /&gt;
    $ docker logs rec.client # ReC client logs (webswing)&lt;br /&gt;
    $ docker logs rec.multicast # ReC Multicast Controller logs&lt;br /&gt;
    $ docker logs rec.proxy # ReC Proxy logs&lt;br /&gt;
    $ docker logs rec.client-admin # ReC client Administration Console logs (webswing)&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4040</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4040"/>
		<updated>2021-04-16T11:12:30Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Git (2.30.2+)&lt;br /&gt;
* Ant (1.10.9+)&lt;br /&gt;
* Maven (3.6.3+)&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
Setup JAVA_HOME environment variable pointing to a valid openjdk11 installation:&lt;br /&gt;
&lt;br /&gt;
    $ export JAVA_HOME=/path/to/openjdk11&lt;br /&gt;
&lt;br /&gt;
Setup ~/.m2/toolchains.xml pointing to a valid openjdk11 installation:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;toolchains&amp;gt;&lt;br /&gt;
        &amp;lt;toolchain&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;jdk&amp;lt;/type&amp;gt;&lt;br /&gt;
                &amp;lt;provides&amp;gt;&lt;br /&gt;
                    &amp;lt;vendor&amp;gt;openjdk&amp;lt;/vendor&amp;gt;&lt;br /&gt;
                    &amp;lt;version&amp;gt;11&amp;lt;/version&amp;gt;&lt;br /&gt;
                &amp;lt;/provides&amp;gt;&lt;br /&gt;
            &amp;lt;configuration&amp;gt;&lt;br /&gt;
                &amp;lt;jdkHome&amp;gt;/path/to/openjdk/jdk11.0.8&amp;lt;/jdkHome&amp;gt;&lt;br /&gt;
            &amp;lt;/configuration&amp;gt;&lt;br /&gt;
        &amp;lt;/toolchain&amp;gt;&lt;br /&gt;
    &amp;lt;/toolchains&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''deployment/compose/src/main/docker/docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
'''experiments/{experiment}/etc/build.properties'''&lt;br /&gt;
&lt;br /&gt;
* '''experiment.driver.device''': Serial port device (e.g. /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Package everything:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy resulting packages to destination servers:&lt;br /&gt;
&lt;br /&gt;
* Multicast Server&lt;br /&gt;
    $ scp deployment/images/target/reverse-proxy.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/multicast.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing-admin.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-runner.yml multicast-server-name:/tmp/docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
* Hardware Server&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller==&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
&lt;br /&gt;
* Load Docker images (only if building outside target deployment server)&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar # ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar # Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar # ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar # Reverse Proxy image&lt;br /&gt;
&lt;br /&gt;
* Copy docker-compose.yml file to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose.yml /home/elab/&lt;br /&gt;
&lt;br /&gt;
* Start all services&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Create experiment directory&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Unpack experiment package to experiment directory&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Start experiment&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&lt;br /&gt;
* Direct access to experiment:&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com) + experiment name (e.g. wpalentejo)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/wpalentejo&lt;br /&gt;
&lt;br /&gt;
* Webswing and administration console&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/&lt;br /&gt;
&lt;br /&gt;
User: admin&lt;br /&gt;
Pass: pwd&lt;br /&gt;
&lt;br /&gt;
= Operations =&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh stop&lt;br /&gt;
&lt;br /&gt;
* Logs&lt;br /&gt;
    $ /home/elab/rec-deployment/${experiment}/*.log&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml down&lt;br /&gt;
&lt;br /&gt;
* Logs:&lt;br /&gt;
    $ docker logs rec.client # ReC client logs (webswing)&lt;br /&gt;
    $ docker logs rec.multicast # ReC Multicast Controller logs&lt;br /&gt;
    $ docker logs rec.proxy # ReC Proxy logs&lt;br /&gt;
    $ docker logs rec.client-admin # ReC client Administration Console logs (webswing)&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4039</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4039"/>
		<updated>2021-04-16T11:11:50Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Git (2.30.2+)&lt;br /&gt;
* Ant (1.10.9+)&lt;br /&gt;
* Maven (3.6.3+)&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
Setup JAVA_HOME environment variable pointing to a valid openjdk11 installation:&lt;br /&gt;
&lt;br /&gt;
    $ export JAVA_HOME=/path/to/openjdk11&lt;br /&gt;
&lt;br /&gt;
Setup ~/.m2/toolchains.xml pointing to a valid openjdk11 installation:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;toolchains&amp;gt;&lt;br /&gt;
        &amp;lt;toolchain&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;jdk&amp;lt;/type&amp;gt;&lt;br /&gt;
                &amp;lt;provides&amp;gt;&lt;br /&gt;
                    &amp;lt;vendor&amp;gt;openjdk&amp;lt;/vendor&amp;gt;&lt;br /&gt;
                    &amp;lt;version&amp;gt;11&amp;lt;/version&amp;gt;&lt;br /&gt;
                &amp;lt;/provides&amp;gt;&lt;br /&gt;
            &amp;lt;configuration&amp;gt;&lt;br /&gt;
                &amp;lt;jdkHome&amp;gt;/path/to/openjdk/jdk11.0.8&amp;lt;/jdkHome&amp;gt;&lt;br /&gt;
            &amp;lt;/configuration&amp;gt;&lt;br /&gt;
        &amp;lt;/toolchain&amp;gt;&lt;br /&gt;
    &amp;lt;/toolchains&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''deployment/compose/src/main/docker/docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
'''experiments/{experiment}/etc/build.properties'''&lt;br /&gt;
&lt;br /&gt;
* '''experiment.driver.device''': Serial port device (e.g. /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Package everything:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy resulting packages to destination servers:&lt;br /&gt;
&lt;br /&gt;
* Multicast Server&lt;br /&gt;
    $ scp deployment/images/target/reverse-proxy.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/multicast.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing-admin.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-runner.yml multicast-server-name:/tmp/docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
* Hardware Server&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller==&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
&lt;br /&gt;
* Load Docker images (only if building outside target deployment server)&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar # ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar # Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar # ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar # Reverse Proxy image&lt;br /&gt;
&lt;br /&gt;
* Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose.yml /home/elab/&lt;br /&gt;
&lt;br /&gt;
* Start Components&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Create experiment directory&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Unpack experiment package to experiment directory&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Start experiment&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&lt;br /&gt;
* Direct access to experiment:&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com) + experiment name (e.g. wpalentejo)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/wpalentejo&lt;br /&gt;
&lt;br /&gt;
* Webswing and administration console&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/&lt;br /&gt;
&lt;br /&gt;
User: admin&lt;br /&gt;
Pass: pwd&lt;br /&gt;
&lt;br /&gt;
= Operations =&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh stop&lt;br /&gt;
&lt;br /&gt;
* Logs&lt;br /&gt;
    $ /home/elab/rec-deployment/${experiment}/*.log&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml down&lt;br /&gt;
&lt;br /&gt;
* Logs:&lt;br /&gt;
    $ docker logs rec.client # ReC client logs (webswing)&lt;br /&gt;
    $ docker logs rec.multicast # ReC Multicast Controller logs&lt;br /&gt;
    $ docker logs rec.proxy # ReC Proxy logs&lt;br /&gt;
    $ docker logs rec.client-admin # ReC client Administration Console logs (webswing)&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4038</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4038"/>
		<updated>2021-04-16T11:10:13Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Git (2.30.2+)&lt;br /&gt;
* Ant (1.10.9+)&lt;br /&gt;
* Maven (3.6.3+)&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
Setup JAVA_HOME environment variable pointing to a valid openjdk11 installation:&lt;br /&gt;
&lt;br /&gt;
    $ export JAVA_HOME=/path/to/openjdk11&lt;br /&gt;
&lt;br /&gt;
Setup ~/.m2/toolchains.xml pointing to a valid openjdk11 installation:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;toolchains&amp;gt;&lt;br /&gt;
        &amp;lt;toolchain&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;jdk&amp;lt;/type&amp;gt;&lt;br /&gt;
                &amp;lt;provides&amp;gt;&lt;br /&gt;
                    &amp;lt;vendor&amp;gt;openjdk&amp;lt;/vendor&amp;gt;&lt;br /&gt;
                    &amp;lt;version&amp;gt;11&amp;lt;/version&amp;gt;&lt;br /&gt;
                &amp;lt;/provides&amp;gt;&lt;br /&gt;
            &amp;lt;configuration&amp;gt;&lt;br /&gt;
                &amp;lt;jdkHome&amp;gt;/path/to/openjdk/jdk11.0.8&amp;lt;/jdkHome&amp;gt;&lt;br /&gt;
            &amp;lt;/configuration&amp;gt;&lt;br /&gt;
        &amp;lt;/toolchain&amp;gt;&lt;br /&gt;
    &amp;lt;/toolchains&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''deployment/compose/src/main/docker/docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
'''experiments/{experiment}/etc/build.properties'''&lt;br /&gt;
&lt;br /&gt;
* '''experiment.driver.device''': Serial port device (e.g. /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Package everything:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy resulting packages to destination servers:&lt;br /&gt;
&lt;br /&gt;
* Multicast Server&lt;br /&gt;
    $ scp deployment/images/target/reverse-proxy.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/multicast.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing-admin.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-runner.yml multicast-server-name:/tmp/docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
* Hardware Server&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller==&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
&lt;br /&gt;
* Load ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar&lt;br /&gt;
&lt;br /&gt;
* Load Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar&lt;br /&gt;
&lt;br /&gt;
* Load ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar&lt;br /&gt;
&lt;br /&gt;
* Load Reverse Proxy image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar&lt;br /&gt;
&lt;br /&gt;
* Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose.yml /home/elab/&lt;br /&gt;
&lt;br /&gt;
* Start Components&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Create experiment directory&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Unpack experiment package to experiment directory&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Start experiment&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&lt;br /&gt;
* Direct access to experiment:&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com) + experiment name (e.g. wpalentejo)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/wpalentejo&lt;br /&gt;
&lt;br /&gt;
* Webswing and administration console&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/&lt;br /&gt;
&lt;br /&gt;
User: admin&lt;br /&gt;
Pass: pwd&lt;br /&gt;
&lt;br /&gt;
= Operations =&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh stop&lt;br /&gt;
&lt;br /&gt;
* Logs&lt;br /&gt;
    $ /home/elab/rec-deployment/${experiment}/*.log&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml down&lt;br /&gt;
&lt;br /&gt;
* Logs:&lt;br /&gt;
    $ docker logs rec.client # ReC client logs (webswing)&lt;br /&gt;
    $ docker logs rec.multicast # ReC Multicast Controller logs&lt;br /&gt;
    $ docker logs rec.proxy # ReC Proxy logs&lt;br /&gt;
    $ docker logs rec.client-admin # ReC client Administration Console logs (webswing)&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4037</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4037"/>
		<updated>2021-04-16T11:08:30Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Git&lt;br /&gt;
* Ant (1.10.9+)&lt;br /&gt;
* Maven (3.6.3+)&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
Setup JAVA_HOME environment variable pointing to a valid openjdk11 installation:&lt;br /&gt;
&lt;br /&gt;
    $ export JAVA_HOME=/path/to/openjdk11&lt;br /&gt;
&lt;br /&gt;
Setup ~/.m2/toolchains.xml pointing to a valid openjdk11 installation:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;toolchains&amp;gt;&lt;br /&gt;
        &amp;lt;toolchain&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;jdk&amp;lt;/type&amp;gt;&lt;br /&gt;
                &amp;lt;provides&amp;gt;&lt;br /&gt;
                    &amp;lt;vendor&amp;gt;openjdk&amp;lt;/vendor&amp;gt;&lt;br /&gt;
                    &amp;lt;version&amp;gt;11&amp;lt;/version&amp;gt;&lt;br /&gt;
                &amp;lt;/provides&amp;gt;&lt;br /&gt;
            &amp;lt;configuration&amp;gt;&lt;br /&gt;
                &amp;lt;jdkHome&amp;gt;/path/to/openjdk/jdk11.0.8&amp;lt;/jdkHome&amp;gt;&lt;br /&gt;
            &amp;lt;/configuration&amp;gt;&lt;br /&gt;
        &amp;lt;/toolchain&amp;gt;&lt;br /&gt;
    &amp;lt;/toolchains&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''deployment/compose/src/main/docker/docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
'''experiments/{experiment}/etc/build.properties'''&lt;br /&gt;
&lt;br /&gt;
* '''experiment.driver.device''': Serial port device (e.g. /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Package everything:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy resulting packages to destination servers:&lt;br /&gt;
&lt;br /&gt;
* Multicast Server&lt;br /&gt;
    $ scp deployment/images/target/reverse-proxy.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/multicast.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing-admin.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-runner.yml multicast-server-name:/tmp/docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
* Hardware Server&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller==&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
&lt;br /&gt;
* Load ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar&lt;br /&gt;
&lt;br /&gt;
* Load Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar&lt;br /&gt;
&lt;br /&gt;
* Load ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar&lt;br /&gt;
&lt;br /&gt;
* Load Reverse Proxy image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar&lt;br /&gt;
&lt;br /&gt;
* Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose.yml /home/elab/&lt;br /&gt;
&lt;br /&gt;
* Start Components&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Create experiment directory&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Unpack experiment package to experiment directory&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Start experiment&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&lt;br /&gt;
* Direct access to experiment:&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com) + experiment name (e.g. wpalentejo)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/wpalentejo&lt;br /&gt;
&lt;br /&gt;
* Webswing and administration console&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/&lt;br /&gt;
&lt;br /&gt;
User: admin&lt;br /&gt;
Pass: pwd&lt;br /&gt;
&lt;br /&gt;
= Operations =&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh stop&lt;br /&gt;
&lt;br /&gt;
* Logs&lt;br /&gt;
    $ /home/elab/rec-deployment/${experiment}/*.log&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml down&lt;br /&gt;
&lt;br /&gt;
* Logs:&lt;br /&gt;
    $ docker logs rec.client # ReC client logs (webswing)&lt;br /&gt;
    $ docker logs rec.multicast # ReC Multicast Controller logs&lt;br /&gt;
    $ docker logs rec.proxy # ReC Proxy logs&lt;br /&gt;
    $ docker logs rec.client-admin # ReC client Administration Console logs (webswing)&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4036</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4036"/>
		<updated>2021-04-15T15:37:00Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Git&lt;br /&gt;
* Ant (1.10.9+)&lt;br /&gt;
* Maven (3.6.3+)&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
Setup JAVA_HOME environment variable pointing to a valid openjdk11 installation:&lt;br /&gt;
&lt;br /&gt;
    $ export JAVA_HOME=/path/to/openjdk11&lt;br /&gt;
&lt;br /&gt;
Setup ~/.m2/toolchains.xml pointing to a valid openjdk11 installation:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;toolchains&amp;gt;&lt;br /&gt;
        &amp;lt;toolchain&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;jdk&amp;lt;/type&amp;gt;&lt;br /&gt;
                &amp;lt;provides&amp;gt;&lt;br /&gt;
                    &amp;lt;vendor&amp;gt;openjdk&amp;lt;/vendor&amp;gt;&lt;br /&gt;
                    &amp;lt;version&amp;gt;11&amp;lt;/version&amp;gt;&lt;br /&gt;
                &amp;lt;/provides&amp;gt;&lt;br /&gt;
            &amp;lt;configuration&amp;gt;&lt;br /&gt;
                &amp;lt;jdkHome&amp;gt;/path/to/openjdk/jdk11.0.8&amp;lt;/jdkHome&amp;gt;&lt;br /&gt;
            &amp;lt;/configuration&amp;gt;&lt;br /&gt;
        &amp;lt;/toolchain&amp;gt;&lt;br /&gt;
    &amp;lt;/toolchains&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''deployment/compose/src/main/docker/docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
'''experiments/{experiment}/etc/build.properties'''&lt;br /&gt;
&lt;br /&gt;
* '''experiment.driver.device''': Serial port device (e.g. /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Package everything:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy resulting packages to destination servers:&lt;br /&gt;
&lt;br /&gt;
* Multicast Server&lt;br /&gt;
    $ scp deployment/images/target/reverse-proxy.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/multicast.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing-admin.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-{pendulum,template}.yml multicast-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
* Hardware Server&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller==&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
&lt;br /&gt;
* Load ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar&lt;br /&gt;
&lt;br /&gt;
* Load Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar&lt;br /&gt;
&lt;br /&gt;
* Load ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar&lt;br /&gt;
&lt;br /&gt;
* Load Reverse Proxy image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar&lt;br /&gt;
&lt;br /&gt;
* Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose-{pendulum,template}.yml /home/elab/&lt;br /&gt;
&lt;br /&gt;
* Create compose file for ReC client, ReC client Administration Console, ReC Multicast Controller and Reverse Proxy&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml config &amp;gt; /home/elab/docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
* Start Components&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Create experiment directory&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Unpack experiment package to experiment directory&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Start experiment&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&lt;br /&gt;
* Direct access to experiment:&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com) + experiment name (e.g. wpalentejo)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/wpalentejo&lt;br /&gt;
&lt;br /&gt;
* Webswing and administration console&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/&lt;br /&gt;
&lt;br /&gt;
User: admin&lt;br /&gt;
Pass: pwd&lt;br /&gt;
&lt;br /&gt;
= Operations =&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh stop&lt;br /&gt;
&lt;br /&gt;
* Logs&lt;br /&gt;
    $ /home/elab/rec-deployment/${experiment}/*.log&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml down&lt;br /&gt;
&lt;br /&gt;
* Logs:&lt;br /&gt;
    $ docker logs rec.client # ReC client logs (webswing)&lt;br /&gt;
    $ docker logs rec.multicast # ReC Multicast Controller logs&lt;br /&gt;
    $ docker logs rec.proxy # ReC Proxy logs&lt;br /&gt;
    $ docker logs rec.client-admin # ReC client Administration Console logs (webswing)&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4035</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4035"/>
		<updated>2021-04-15T14:39:45Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Git&lt;br /&gt;
* Ant (1.10.9+)&lt;br /&gt;
* Maven (3.6.3+)&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
Setup JAVA_HOME environment variable pointing to a valid openjdk11 installation:&lt;br /&gt;
&lt;br /&gt;
    $ export JAVA_HOME=/path/to/openjdk11&lt;br /&gt;
&lt;br /&gt;
Setup ~/.m2/toolchains.xml pointing to a valid openjdk11 installation:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;toolchains&amp;gt;&lt;br /&gt;
        &amp;lt;toolchain&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;jdk&amp;lt;/type&amp;gt;&lt;br /&gt;
                &amp;lt;provides&amp;gt;&lt;br /&gt;
                    &amp;lt;vendor&amp;gt;openjdk&amp;lt;/vendor&amp;gt;&lt;br /&gt;
                    &amp;lt;version&amp;gt;11&amp;lt;/version&amp;gt;&lt;br /&gt;
                &amp;lt;/provides&amp;gt;&lt;br /&gt;
            &amp;lt;configuration&amp;gt;&lt;br /&gt;
                &amp;lt;jdkHome&amp;gt;/path/to/openjdk/jdk11.0.8&amp;lt;/jdkHome&amp;gt;&lt;br /&gt;
            &amp;lt;/configuration&amp;gt;&lt;br /&gt;
        &amp;lt;/toolchain&amp;gt;&lt;br /&gt;
    &amp;lt;/toolchains&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
Package everything:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy resulting packages to destination servers:&lt;br /&gt;
&lt;br /&gt;
* Multicast Server&lt;br /&gt;
    $ scp deployment/images/target/reverse-proxy.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/multicast.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing-admin.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-{pendulum,template}.yml multicast-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
* Hardware Server&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller==&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
&lt;br /&gt;
* Load ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar&lt;br /&gt;
&lt;br /&gt;
* Load Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar&lt;br /&gt;
&lt;br /&gt;
* Load ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar&lt;br /&gt;
&lt;br /&gt;
* Load Reverse Proxy image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar&lt;br /&gt;
&lt;br /&gt;
* Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose-{pendulum,template}.yml /home/elab/&lt;br /&gt;
&lt;br /&gt;
* Create compose file for ReC client, ReC client Administration Console, ReC Multicast Controller and Reverse Proxy&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml config &amp;gt; /home/elab/docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
* Start Components&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Create experiment directory&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Unpack experiment package to experiment directory&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Start experiment&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&lt;br /&gt;
* Direct access to experiment:&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com) + experiment name (e.g. wpalentejo)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/wpalentejo&lt;br /&gt;
&lt;br /&gt;
* Webswing and administration console&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/&lt;br /&gt;
&lt;br /&gt;
User: admin&lt;br /&gt;
Pass: pwd&lt;br /&gt;
&lt;br /&gt;
= Operations =&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh stop&lt;br /&gt;
&lt;br /&gt;
* Logs&lt;br /&gt;
    $ /home/elab/rec-deployment/${experiment}/*.log&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml down&lt;br /&gt;
&lt;br /&gt;
* Logs:&lt;br /&gt;
    $ docker logs rec.client # ReC client logs (webswing)&lt;br /&gt;
    $ docker logs rec.multicast # ReC Multicast Controller logs&lt;br /&gt;
    $ docker logs rec.proxy # ReC Proxy logs&lt;br /&gt;
    $ docker logs rec.client-admin # ReC client Administration Console logs (webswing)&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4034</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4034"/>
		<updated>2021-04-15T13:52:47Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Git&lt;br /&gt;
* Ant (1.10.9+)&lt;br /&gt;
* Maven (3.6.3+)&lt;br /&gt;
* OpenJDK 11 (11.0.8+) and JAVA_HOME environment variable pointing to a valid openjdk11 installation&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
Package everything:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy resulting packages to destination servers:&lt;br /&gt;
&lt;br /&gt;
* Multicast Server&lt;br /&gt;
    $ scp deployment/images/target/reverse-proxy.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/multicast.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing-admin.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-{pendulum,template}.yml multicast-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
* Hardware Server&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller==&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
&lt;br /&gt;
* Load ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar&lt;br /&gt;
&lt;br /&gt;
* Load Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar&lt;br /&gt;
&lt;br /&gt;
* Load ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar&lt;br /&gt;
&lt;br /&gt;
* Load Reverse Proxy image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar&lt;br /&gt;
&lt;br /&gt;
* Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose-{pendulum,template}.yml /home/elab/&lt;br /&gt;
&lt;br /&gt;
* Create compose file for ReC client, ReC client Administration Console, ReC Multicast Controller and Reverse Proxy&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml config &amp;gt; /home/elab/docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
* Start Components&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Create experiment directory&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Unpack experiment package to experiment directory&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Start experiment&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&lt;br /&gt;
* Direct access to experiment:&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com) + experiment name (e.g. wpalentejo)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/wpalentejo&lt;br /&gt;
&lt;br /&gt;
* Webswing and administration console&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/&lt;br /&gt;
&lt;br /&gt;
User: admin&lt;br /&gt;
Pass: pwd&lt;br /&gt;
&lt;br /&gt;
= Operations =&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh stop&lt;br /&gt;
&lt;br /&gt;
* Logs&lt;br /&gt;
    $ /home/elab/rec-deployment/${experiment}/*.log&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml down&lt;br /&gt;
&lt;br /&gt;
* Logs:&lt;br /&gt;
    $ docker logs rec.client # ReC client logs (webswing)&lt;br /&gt;
    $ docker logs rec.multicast # ReC Multicast Controller logs&lt;br /&gt;
    $ docker logs rec.proxy # ReC Proxy logs&lt;br /&gt;
    $ docker logs rec.client-admin # ReC client Administration Console logs (webswing)&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4031</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4031"/>
		<updated>2021-04-13T13:58:54Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Maven 3.6.3&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
Package everything:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy resulting packages to destination servers:&lt;br /&gt;
&lt;br /&gt;
* Multicast Server&lt;br /&gt;
    $ scp deployment/images/target/reverse-proxy.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/multicast.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing-admin.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-{pendulum,template}.yml multicast-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
* Hardware Server&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller==&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
&lt;br /&gt;
* Load ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar&lt;br /&gt;
&lt;br /&gt;
* Load Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar&lt;br /&gt;
&lt;br /&gt;
* Load ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar&lt;br /&gt;
&lt;br /&gt;
* Load Reverse Proxy image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar&lt;br /&gt;
&lt;br /&gt;
* Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose-{pendulum,template}.yml /home/elab/&lt;br /&gt;
&lt;br /&gt;
* Create compose file for ReC client, ReC client Administration Console, ReC Multicast Controller and Reverse Proxy&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml config &amp;gt; /home/elab/docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
* Start Components&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Create experiment directory&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Unpack experiment package to experiment directory&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Start experiment&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&lt;br /&gt;
* Direct access to experiment:&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com) + experiment name (e.g. wpalentejo)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/wpalentejo&lt;br /&gt;
&lt;br /&gt;
* Webswing and administration console&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/&lt;br /&gt;
&lt;br /&gt;
User: admin&lt;br /&gt;
Pass: pwd&lt;br /&gt;
&lt;br /&gt;
= Operations =&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh stop&lt;br /&gt;
&lt;br /&gt;
* Logs&lt;br /&gt;
    $ /home/elab/rec-deployment/${experiment}/*.log&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml down&lt;br /&gt;
&lt;br /&gt;
* Logs:&lt;br /&gt;
    $ docker logs rec.client # ReC client logs (webswing)&lt;br /&gt;
    $ docker logs rec.multicast # ReC Multicast Controller logs&lt;br /&gt;
    $ docker logs rec.proxy # ReC Proxy logs&lt;br /&gt;
    $ docker logs rec.client-admin # ReC client Administration Console logs (webswing)&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4030</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4030"/>
		<updated>2021-04-13T13:58:19Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Maven 3.6.3&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
Package everything:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy resulting packages to destination servers:&lt;br /&gt;
&lt;br /&gt;
* Multicast Server&lt;br /&gt;
    $ scp deployment/images/target/reverse-proxy.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/multicast.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing-admin.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-{pendulum,template}.yml multicast-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
* Hardware Server&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC Client, Multicast Controller==&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
&lt;br /&gt;
* Load ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar&lt;br /&gt;
&lt;br /&gt;
* Load Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar&lt;br /&gt;
&lt;br /&gt;
* Load ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar&lt;br /&gt;
&lt;br /&gt;
* Load Reverse Proxy image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar&lt;br /&gt;
&lt;br /&gt;
* Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose-{pendulum,template}.yml /home/elab/&lt;br /&gt;
&lt;br /&gt;
* Create compose file for ReC client, ReC client Administration Console, ReC Multicast Controller and Reverse Proxy&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml config &amp;gt; /home/elab/docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
* Start Components&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Create experiment directory&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Unpack experiment package to experiment directory&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Start experiment&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&lt;br /&gt;
* Direct access to experiment:&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com) + experiment name (e.g. wpalentejo)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/wpalentejo&lt;br /&gt;
&lt;br /&gt;
* Webswing and administration console&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/&lt;br /&gt;
&lt;br /&gt;
User: admin&lt;br /&gt;
Pass: pwd&lt;br /&gt;
&lt;br /&gt;
= Operations =&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh stop&lt;br /&gt;
&lt;br /&gt;
* Logs&lt;br /&gt;
    $ /home/elab/rec-deployment/${experiment}/*.log&lt;br /&gt;
&lt;br /&gt;
== ReC Client, Multicast Controller ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml down&lt;br /&gt;
&lt;br /&gt;
* Logs:&lt;br /&gt;
    $ docker logs rec.client # ReC client logs (webswing)&lt;br /&gt;
    $ docker logs rec.multicast # ReC Multicast Controller logs&lt;br /&gt;
    $ docker logs rec.proxy # ReC Proxy logs&lt;br /&gt;
    $ docker logs rec.client-admin # ReC client Administration Console logs (webswing)&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4029</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4029"/>
		<updated>2021-04-13T13:47:13Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Maven 3.6.3&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
== rec.web (recommended only for testing locally)==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
Package everything:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy resulting packages to destination servers:&lt;br /&gt;
&lt;br /&gt;
* Multicast Server&lt;br /&gt;
    $ scp deployment/images/target/reverse-proxy.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/multicast.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing-admin.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-{pendulum,template}.yml multicast-server-name:/tmp/&lt;br /&gt;
* Optional (rec.web)&lt;br /&gt;
    $ scp deployment/images/target/rec.web.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/rec.web-upgrade-db.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/rec.web-db.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-rec.web.yml multicast-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
* Hardware Server&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC Client, Multicast Controller and ReC Web (Optional) ==&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
&lt;br /&gt;
* Load ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar&lt;br /&gt;
&lt;br /&gt;
* Load Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar&lt;br /&gt;
&lt;br /&gt;
* Load ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar&lt;br /&gt;
&lt;br /&gt;
* Load Reverse Proxy image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar&lt;br /&gt;
&lt;br /&gt;
* Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose-{pendulum,template}.yml /home/elab/&lt;br /&gt;
&lt;br /&gt;
* Create compose file for ReC client, ReC client Administration Console, ReC Multicast Controller and Reverse Proxy&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml config &amp;gt; /home/elab/docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
* Optional (rec.web)&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/rec.web.tar&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/rec.web-upgrade-db.tar&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/rec.web-db.tar&lt;br /&gt;
    $ sudo -u elab echo AS_ADMIN_ALIASPASSWORD=askPass &amp;gt; /home/elab/asadmin_mail.secret&lt;br /&gt;
    $ sudo -u elab echo AS_ADMIN_ALIASPASSWORD=rec &amp;gt; /home/elab/asadmin_recdb.secret&lt;br /&gt;
    $ sudo -u elab echo rec &amp;gt; /home/elab/rec-db.secret&lt;br /&gt;
    $ sudo -u elab echo root &amp;gt; /home/elab/root-db.secret&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml -f /home/elab/docker-compose-rec.yml config &amp;gt; /home/elab/docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
* Start Components&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Create experiment directory&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Unpack experiment package to experiment directory&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Start experiment&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&lt;br /&gt;
* Direct access to experiment:&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com) + experiment name (e.g. wpalentejo)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/wpalentejo&lt;br /&gt;
&lt;br /&gt;
* Webswing and administration console&lt;br /&gt;
&lt;br /&gt;
Access configured URL at WEBSWING_PUBLIC_URL property (e.g. https://elab.my.url.com)&lt;br /&gt;
&lt;br /&gt;
https://elab.my.url.com/&lt;br /&gt;
&lt;br /&gt;
User: admin&lt;br /&gt;
Pass: pwd&lt;br /&gt;
&lt;br /&gt;
= Operations =&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh stop&lt;br /&gt;
&lt;br /&gt;
== ReC Client, Multicast Controller and ReC Web (Optional) ==&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml up -d&lt;br /&gt;
&lt;br /&gt;
* Shutdown&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose.yml down&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4028</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4028"/>
		<updated>2021-04-13T12:15:23Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Maven 3.6.3&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
== rec.web (recommended only for testing locally)==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
Package everything:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy resulting packages to destination servers:&lt;br /&gt;
&lt;br /&gt;
* Multicast Server&lt;br /&gt;
    $ scp deployment/images/target/reverse-proxy.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/multicast.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing-admin.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-{pendulum,template}.yml multicast-server-name:/tmp/&lt;br /&gt;
* Optional (rec.web)&lt;br /&gt;
    $ scp deployment/images/target/rec.web.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/rec.web-upgrade-db.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/rec.web-db.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-rec.web.yml multicast-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
* Hardware Server&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller ==&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
&lt;br /&gt;
* Load ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar&lt;br /&gt;
&lt;br /&gt;
* Load Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar&lt;br /&gt;
&lt;br /&gt;
* Load ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar&lt;br /&gt;
&lt;br /&gt;
* Load Reverse Proxy image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar&lt;br /&gt;
&lt;br /&gt;
* Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose-{pendulum,template}.yml /home/elab/&lt;br /&gt;
&lt;br /&gt;
* Start ReC client, ReC client Administration Console, ReC Multicast Controller and Reverse Proxy&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml up -d&lt;br /&gt;
&lt;br /&gt;
* Optional (rec.web)&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/rec.web.tar&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/rec.web-upgrade-db.tar&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/rec.web-db.tar&lt;br /&gt;
    $ sudo -u elab echo AS_ADMIN_ALIASPASSWORD=askPass &amp;gt; /home/elab/asadmin_mail.secret&lt;br /&gt;
    $ sudo -u elab echo AS_ADMIN_ALIASPASSWORD=rec &amp;gt; /home/elab/asadmin_recdb.secret&lt;br /&gt;
    $ sudo -u elab echo rec &amp;gt; /home/elab/rec-db.secret&lt;br /&gt;
    $ sudo -u elab echo root &amp;gt; /home/elab/root-db.secret    &lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml -f /home/elab/docker-compose-rec.web.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Create experiment directory&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Unpack experiment package to experiment directory&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Start experiment&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4027</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4027"/>
		<updated>2021-04-13T12:14:47Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Maven 3.6.3&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
== rec.web (recommended only for testing locally)==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
Package everything:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy resulting packages to destination servers:&lt;br /&gt;
&lt;br /&gt;
* Multicast Server&lt;br /&gt;
    $ scp deployment/images/target/reverse-proxy.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/multicast.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing-admin.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/webswing.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-{pendulum,template}.yml multicast-server-name:/tmp/&lt;br /&gt;
* Optional (rec.web)&lt;br /&gt;
    $ scp deployment/images/target/rec.web.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/rec.web-upgrade-db.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/images/target/rec.web-db.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-rec.web.yml multicast-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
* Hardware Server&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller ==&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
&lt;br /&gt;
* Load ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar&lt;br /&gt;
&lt;br /&gt;
* Load Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar&lt;br /&gt;
&lt;br /&gt;
* Load ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar&lt;br /&gt;
&lt;br /&gt;
* Load Reverse Proxy image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar&lt;br /&gt;
&lt;br /&gt;
* Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose-{pendulum,template}.yml /home/elab/&lt;br /&gt;
&lt;br /&gt;
* Start ReC client, ReC client Administration Console, ReC Multicast Controller and Reverse Proxy&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml up -d&lt;br /&gt;
&lt;br /&gt;
* Optional (rec.web)&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/rec.web.tar&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/rec.web-upgrade-db.tar&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/rec.web-db.tar&lt;br /&gt;
    $ sudo -u elab echo AS_ADMIN_ALIASPASSWORD=askPass &amp;gt; /home/elab/asadmin_mail.secret&lt;br /&gt;
    $ sudo -u elab echo AS_ADMIN_ALIASPASSWORD=rec &amp;gt; /home/elab/asadmin_recdb.secret&lt;br /&gt;
    $ sudo -u elab echo rec &amp;gt; /home/elab/rec-db.secret&lt;br /&gt;
    $ sudo -u elab echo root &amp;gt; /home/elab/root-db.secret    &lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml -f /home/elab/docker-compose-rec.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
&lt;br /&gt;
* Create experiment directory&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Unpack experiment package to experiment directory&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
&lt;br /&gt;
* Start experiment&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4026</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4026"/>
		<updated>2021-04-13T11:40:45Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Maven 3.6.3&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
== rec.web (recommended only for testing locally)==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
Package everything:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy resulting packages to destination servers:&lt;br /&gt;
&lt;br /&gt;
* Multicast Server&lt;br /&gt;
    $ scp deployment/images/target/*.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-{pendulum,template}.yml multicast-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
* Hardware Server&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC Client and Multicast Controller ==&lt;br /&gt;
&lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
    &lt;br /&gt;
* Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
    &lt;br /&gt;
* Load ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar&lt;br /&gt;
    &lt;br /&gt;
* Load Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar&lt;br /&gt;
    &lt;br /&gt;
* Load ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar&lt;br /&gt;
    &lt;br /&gt;
* Load Reverse Proxy image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar&lt;br /&gt;
    &lt;br /&gt;
* Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose-{pendulum,template}.yml /home/elab/&lt;br /&gt;
    &lt;br /&gt;
* Start ReC client, ReC client Administration Console, ReC Multicast Controller and Reverse Proxy&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
    &lt;br /&gt;
* Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
    &lt;br /&gt;
* Create experiment directory&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
    &lt;br /&gt;
* Unpack experiment package to experiment directory&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
    &lt;br /&gt;
* Start experiment&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4025</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4025"/>
		<updated>2021-04-13T11:33:34Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Maven 3.6.3&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
== rec.web (recommended only for testing locally)==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
Package:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy to destination servers:&lt;br /&gt;
    $ scp deployment/images/target/*.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-{pendulum,template}.yml multicast-server-name:/tmp/&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC, Webswing and Multicast Controller ==&lt;br /&gt;
# Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
# Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
# Load ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar&lt;br /&gt;
# Load Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar&lt;br /&gt;
# Load ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar&lt;br /&gt;
# Load Reverse Proxy image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar&lt;br /&gt;
# Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose-{pendulum,template}.yml /home/elab/&lt;br /&gt;
# Start ReC client, ReC client Administration Console, ReC Multicast Controller and Reverse Proxy&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
# Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4024</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4024"/>
		<updated>2021-04-13T11:32:53Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Maven 3.6.3&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
== rec.web (recommended only for testing locally)==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
Package:&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy to destination servers:&lt;br /&gt;
    $ scp deployment/images/target/*.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-{pendulum,template}.yml multicast-server-name:/tmp/&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC, Webswing and Multicast Controller ==&lt;br /&gt;
    # Create user elab&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
    # Add user to docker group&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
    # Load ReC client image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar&lt;br /&gt;
    # Load Multicast Controller image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar&lt;br /&gt;
    # Load ReC client admin console image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar&lt;br /&gt;
    # Load Reverse Proxy image&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar&lt;br /&gt;
    # Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose-{pendulum,template}.yml /home/elab/&lt;br /&gt;
    # Start ReC client, ReC client Administration Console, ReC Multicast Controller and Reverse Proxy&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
    # Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4023</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4023"/>
		<updated>2021-04-13T11:22:05Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Maven 3.6.3&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
== rec.web (recommended only for testing locally)==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Configure the following properties based on your environment:&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties''':&lt;br /&gt;
&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed (default: elab-multicast)&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
'''docker-compose-pendulum.yml''':&lt;br /&gt;
&lt;br /&gt;
* '''WEBSWING_PUBLIC_URL''': URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)&lt;br /&gt;
&lt;br /&gt;
Package&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum -Dpack.docker.images&lt;br /&gt;
&lt;br /&gt;
Copy to destination servers:&lt;br /&gt;
    $ scp deployment/images/target/*.tar multicast-server-name:/tmp/&lt;br /&gt;
    $ scp deployment/compose/target/docker-compose-{pendulum,template}.yml multicast-server-name:/tmp/&lt;br /&gt;
    $ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== ReC, Webswing and Multicast Controller ==&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
    $ sudo usermod -a -G docker elab&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing.tar&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/multicast.tar&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/webswing-admin.tar&lt;br /&gt;
    $ sudo -u elab docker load --input /tmp/reverse-proxy.tar&lt;br /&gt;
    $ sudo -u elab cp /tmp/docker-compose-{pendulum,template}.yml /home/elab/&lt;br /&gt;
    $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml up -d&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
    # Replace wpexperiment with your experiment name&lt;br /&gt;
    $ export experiment=wpexperiment&lt;br /&gt;
    $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab&lt;br /&gt;
    $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}&lt;br /&gt;
    $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d  /home/elab/rec-deployment/${experiment}&lt;br /&gt;
    $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start&lt;br /&gt;
&lt;br /&gt;
Steps to build and deploy ReC at target environments:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4022</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4022"/>
		<updated>2021-04-12T12:48:59Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Maven 3.6.3&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
== rec.web (recommended only for testing locally)==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
 &lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
First checkout the project from github:&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://github.com/linkareti/rec-project.git&lt;br /&gt;
&lt;br /&gt;
(FIXME) Then we need to switch to jdk11-migration branch:&lt;br /&gt;
&lt;br /&gt;
    $ git checkout jdk11-migration&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Follow the next steps to build and run at target environments.&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties:'''&lt;br /&gt;
&lt;br /&gt;
* '''lab.list''': Name of the laboratories to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
== Local ==&lt;br /&gt;
&lt;br /&gt;
This option only serves testing purposes (install locally a clean environment), Pendulum Hardware Server is not used at this step.&lt;br /&gt;
&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=local&lt;br /&gt;
&lt;br /&gt;
Be aware that a virtual experiment is started by this step, not the pendulum!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
Build the project:&lt;br /&gt;
&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Steps to build and deploy ReC at target environments:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4021</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4021"/>
		<updated>2021-04-12T12:43:23Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build environment ==&lt;br /&gt;
&lt;br /&gt;
* Maven 3.6.3&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
== rec.web (recommended only for testing locally)==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
 &lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh allows to create a base experiment for a new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Follow the next steps to build and run at target environments.&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties:'''&lt;br /&gt;
&lt;br /&gt;
* '''lab.list''': Name of the laboratories to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
== Local ==&lt;br /&gt;
&lt;br /&gt;
This option only serves testing purposes (install locally a clean environment), Pendulum Hardware Server is not used at this step.&lt;br /&gt;
&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=local&lt;br /&gt;
&lt;br /&gt;
Be aware that a virtual experiment is started by this step, not the pendulum!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
Build the project:&lt;br /&gt;
&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Steps to build and deploy ReC at target environments:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4020</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4020"/>
		<updated>2021-04-12T10:05:07Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
== rec.web (recommended only for testing locally)==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
 &lt;br /&gt;
= Preparation steps =&lt;br /&gt;
&lt;br /&gt;
To create a pendulum experiment, the script create_pendulum_experiment.sh allows to create a base experiment for a new pendulum&lt;br /&gt;
&lt;br /&gt;
'''experiments/create_pendulum_experiment.sh'''&lt;br /&gt;
&lt;br /&gt;
    '''Mandatory arguments''':&lt;br /&gt;
    * '''1st argument''': Name of the experiment (e.g. worldpendulum)&lt;br /&gt;
    * '''2nd argument''': ID of the experiment (e.g. ELAB_WORLD_PENDULUM)&lt;br /&gt;
    * '''3rd argument''': Pendulum location (e.g. Faro)&lt;br /&gt;
&lt;br /&gt;
    '''Optional arguments''':&lt;br /&gt;
    * '''4th argument''': URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp)&lt;br /&gt;
    * '''5th argument''': Pendulum serial device location (default: /dev/ttyS0)&lt;br /&gt;
&lt;br /&gt;
Sample script execution to create pendulum:&lt;br /&gt;
&lt;br /&gt;
    $ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Follow the next steps to build and run at target environments.&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties:'''&lt;br /&gt;
&lt;br /&gt;
* '''lab.list''': Name of the laboratories to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
== Local ==&lt;br /&gt;
&lt;br /&gt;
This option only serves testing purposes (install locally a clean environment), Pendulum Hardware Server is not used at this step.&lt;br /&gt;
&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=local&lt;br /&gt;
&lt;br /&gt;
Be aware that a virtual experiment is started by this step, not the pendulum!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build the project:&lt;br /&gt;
&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Steps to build and deploy ReC at target environments:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4016</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4016"/>
		<updated>2021-04-12T09:21:18Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
== rec.web (recommended only for testing locally)==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
 &lt;br /&gt;
= Pre-Steps =&lt;br /&gt;
&lt;br /&gt;
    experiments/create_pendulum_experiment.sh&lt;br /&gt;
    echo &amp;quot;experiment name - Name of the experiment (e.g. worldpendulum)&amp;quot;&lt;br /&gt;
    echo &amp;quot;experiment ID - ID of the experiment (e.g. ELAB_WORLD_PENDULUM_CCVALG)&amp;quot;&lt;br /&gt;
    echo &amp;quot;Location - Pendulum location (e.g. Faro)&amp;quot;&lt;br /&gt;
    echo &amp;quot;(optional) Video Location - URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccvalg.sdp)&amp;quot;&lt;br /&gt;
    echo &amp;quot;(optional) Serial Device - Pendulum serial device location at the server (e.g. /dev/ttyS0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Follow the next steps to build and run at target environments.&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties:'''&lt;br /&gt;
&lt;br /&gt;
* '''lab.list''': Name of the laboratories to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
== Local ==&lt;br /&gt;
&lt;br /&gt;
This option only serves testing purposes (install locally a clean environment), Pendulum Hardware Server is not used at this step.&lt;br /&gt;
&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=local&lt;br /&gt;
&lt;br /&gt;
Be aware that a virtual experiment is started by this step, not the pendulum!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build the project:&lt;br /&gt;
&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Steps to build and deploy ReC at target environments:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4015</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4015"/>
		<updated>2021-04-12T09:21:00Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
== Multicast Controller and rec.client ==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
&lt;br /&gt;
== Hardware Server ==&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11 (11.0.8+)&lt;br /&gt;
&lt;br /&gt;
== rec.web (recommended only for testing)==&lt;br /&gt;
&lt;br /&gt;
* Docker (20.10+)&lt;br /&gt;
* docker-compose (1.25.4+)&lt;br /&gt;
 &lt;br /&gt;
= Pre-Steps =&lt;br /&gt;
&lt;br /&gt;
    experiments/create_pendulum_experiment.sh&lt;br /&gt;
    echo &amp;quot;experiment name - Name of the experiment (e.g. worldpendulum)&amp;quot;&lt;br /&gt;
    echo &amp;quot;experiment ID - ID of the experiment (e.g. ELAB_WORLD_PENDULUM_CCVALG)&amp;quot;&lt;br /&gt;
    echo &amp;quot;Location - Pendulum location (e.g. Faro)&amp;quot;&lt;br /&gt;
    echo &amp;quot;(optional) Video Location - URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccvalg.sdp)&amp;quot;&lt;br /&gt;
    echo &amp;quot;(optional) Serial Device - Pendulum serial device location at the server (e.g. /dev/ttyS0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Follow the next steps to build and run at target environments.&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties:'''&lt;br /&gt;
&lt;br /&gt;
* '''lab.list''': Name of the laboratories to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
== Local ==&lt;br /&gt;
&lt;br /&gt;
This option only serves testing purposes (install locally a clean environment), Pendulum Hardware Server is not used at this step.&lt;br /&gt;
&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=local&lt;br /&gt;
&lt;br /&gt;
Be aware that a virtual experiment is started by this step, not the pendulum!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build the project:&lt;br /&gt;
&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Steps to build and deploy ReC at target environments:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4014</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4014"/>
		<updated>2021-04-12T09:14:41Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pre-requisites =&lt;br /&gt;
&lt;br /&gt;
* OpenJDK 11&lt;br /&gt;
* Docker&lt;br /&gt;
* docker-compose&lt;br /&gt;
&lt;br /&gt;
= Pre-Steps =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
experiments/create_pendulum_experiment.sh&lt;br /&gt;
	echo &amp;quot;experiment name - Name of the experiment (e.g. worldpendulum)&amp;quot;&lt;br /&gt;
	echo &amp;quot;experiment ID - ID of the experiment (e.g. ELAB_WORLD_PENDULUM_CCVALG)&amp;quot;&lt;br /&gt;
	echo &amp;quot;Location - Pendulum location (e.g. Faro)&amp;quot;&lt;br /&gt;
	echo &amp;quot;(optional) Video Location - URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccvalg.sdp)&amp;quot;&lt;br /&gt;
	echo &amp;quot;(optional) Serial Device - Pendulum serial device location at the server (e.g. /dev/ttyS0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Build =&lt;br /&gt;
&lt;br /&gt;
Follow the next steps to build and run at target environments.&lt;br /&gt;
&lt;br /&gt;
'''build_pendulum.properties:'''&lt;br /&gt;
&lt;br /&gt;
* '''lab.list''': Name of the laboratories to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.experiment.list''': Name of the experiment(s) to build, comma (,) delimited.&lt;br /&gt;
* '''pendulum.multicast.controller.host''': Hostname where Multicast controller is going to be installed&lt;br /&gt;
* '''pendulum.multicast.controller.port''': Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)&lt;br /&gt;
* '''pendulum.rec.multicastcontroller.jmxremote.port''': Listen JMX port used to recieve connections from rec.web (default: 25001)&lt;br /&gt;
* '''install.dir''': Base directory where Multicast Controller is going to be installed (default: /home/elab)&lt;br /&gt;
* '''deployment.subdir''': Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)&lt;br /&gt;
&lt;br /&gt;
== Local ==&lt;br /&gt;
&lt;br /&gt;
This option only serves testing purposes (install locally a clean environment), Pendulum Hardware Server is not used at this step.&lt;br /&gt;
&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=local&lt;br /&gt;
&lt;br /&gt;
Be aware that a virtual experiment is started by this step, not the pendulum!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build the project:&lt;br /&gt;
&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Steps to build and deploy ReC at target environments:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4013</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4013"/>
		<updated>2021-04-12T08:34:03Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Steps to build and run ReC Local Environment:&lt;br /&gt;
&lt;br /&gt;
To test locally, edit build_pendulum.properties:&lt;br /&gt;
&lt;br /&gt;
    pendulum.experiment.list=wpchangeme&lt;br /&gt;
    pendulum.multicast.controller.host=yourhost&lt;br /&gt;
&lt;br /&gt;
Other important properties:&lt;br /&gt;
&lt;br /&gt;
    pendulum.multicast.controller.port=9001 # CORBA port&lt;br /&gt;
    pendulum.rec.multicastcontroller.jmxremote.port=25001 # JMX Port&lt;br /&gt;
    install.dir=/home/elab # Base directory for the multicast controller installation&lt;br /&gt;
    deployment.subdir=/rec-deployment # Deployment directory for the multicast controller installation&lt;br /&gt;
&lt;br /&gt;
Build the project:&lt;br /&gt;
&lt;br /&gt;
    $ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Steps to build and deploy ReC at target environments:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4012</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4012"/>
		<updated>2021-04-09T18:51:56Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Steps to build and run ReC Local Environment:&lt;br /&gt;
&lt;br /&gt;
To test locally, edit build_pendulum.properties:&lt;br /&gt;
&lt;br /&gt;
pendulum.experiment.list=wpchangeme&lt;br /&gt;
&lt;br /&gt;
pendulum.multicast.controller.host=yourhost&lt;br /&gt;
&lt;br /&gt;
Other important properties:&lt;br /&gt;
&lt;br /&gt;
pendulum.multicast.controller.port=9001 # CORBA port&lt;br /&gt;
&lt;br /&gt;
pendulum.rec.multicastcontroller.jmxremote.port=25001 # JMX Port&lt;br /&gt;
&lt;br /&gt;
install.dir=/home/elab # Base directory for the multicast controller installation&lt;br /&gt;
&lt;br /&gt;
deployment.subdir=/rec-deployment # Deployment directory for the multicast controller installation&lt;br /&gt;
&lt;br /&gt;
Build the project:&lt;br /&gt;
&lt;br /&gt;
$ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias=&amp;quot;REC&amp;quot; -Dbuild.environment=pendulum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Steps to build and deploy ReC at target environments:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4011</id>
		<title>Remote Experiment Controller</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=Remote_Experiment_Controller&amp;diff=4011"/>
		<updated>2021-04-09T15:26:29Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: Created page with &amp;quot;Steps to build and run ReC Local Environment:  # TODO Steps  Steps to build and deploy ReC at target environments:  # TODO Steps  Steps to connect to IST environment:  # TODO...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Steps to build and run ReC Local Environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;br /&gt;
&lt;br /&gt;
Steps to build and deploy ReC at target environments:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;br /&gt;
&lt;br /&gt;
Steps to connect to IST environment:&lt;br /&gt;
&lt;br /&gt;
# TODO Steps&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
	<entry>
		<id>http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=File:Logo_info_tech.png&amp;diff=1513</id>
		<title>File:Logo info tech.png</title>
		<link rel="alternate" type="text/html" href="http://www.elab.tecnico.ulisboa.pt/wiki/index.php?title=File:Logo_info_tech.png&amp;diff=1513"/>
		<updated>2014-02-18T20:25:46Z</updated>

		<summary type="html">&lt;p&gt;Ist149563: uploaded a new version of &amp;amp;quot;File:Logo info tech.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linkare logo.&lt;/div&gt;</summary>
		<author><name>Ist149563</name></author>
		
	</entry>
</feed>