Installing C++ Agent on Ubuntu

From MTConnect® User's Portal
Jump to: navigation, search

Contents

Overview

Installation procedure for running MTConnect Agent on ubuntu 14.04 LTS. This is a general guide and covers the basic configuration of the MTConnect simulator.

Install Required Dependencies

The C++ agent depends on libxml2 and for testing libcppunit. The rest are the standard packages for building software. We also use cmake to generate the make files.

 sudo apt-get update
 sudo apt-get install libxml2 libxml2-dev cmake git libcppunit-dev build-essential screen ruby curl

Download and build the agent

Make a directory for the agent work and our build directory

 mkdir -p ~/agent/build
 cd ~/agent
 

Use git to clone the agent from the repo and create the makefiles. We're going to be building the Release version; a debug version can also be built, refer to the cmake docs for more info.

 git clone https://github.com/mtconnect/cppagent.git
 cd build
 cmake -D CMAKE_BUILD_TYPE=Release ../cppagent/

Now build the app and install it in /usr/local/bin

 make
 sudo cp agent/agent /usr/local/bin

There may be a few build warnings, these can be ignored.

Setup a configuration directory

Setup the agent

 sudo mkdir -p /etc/mtconnect/agent /etc/mtconnect/adapter
 cd ~/agent/cppagent
 sudo cp -r styles schemas simulator/VMC-3Axis.xml /etc/mtconnect/agent

Setup the simulator

 sudo cp simulator/VMC-3Axis-Log.txt simulator/run_scenario.rb /etc/mtconnect/adapter

Configure the Agent

Install the text file below for the configuration. To do this copy and paste the code into a new text document. Line numbers as seen below are added from the copy and paste process, get rid of them as they are not part of the actual code. Copy and paste the edited text into the Terminal and press enter.

  1. sudo sh -c 'cat <<EOT > /etc/mtconnect/agent/agent.cfg
  2. Devices = /etc/mtconnect/agent/VMC-3Axis.xml
  3. AllowPut = true
  4. ReconnectInterval = 1000
  5. BufferSize = 17
  6. SchemaVersion = 1.3
  7.  
  8. Adapters { 
  9.    VMC-3Axis { 
  10.       Host = 127.0.0.1
  11.       Port = 7878
  12.    } 
  13. }
  14.  
  15. Files {
  16.     schemas {
  17.         Path = /etc/mtconnect/agent/schemas
  18.         Location = /schemas/
  19.     }
  20.     styles {
  21.         Path = /etc/mtconnect/agent/styles
  22.         Location = /styles/
  23.     }
  24.     Favicon {
  25.         Path = /etc/mtconnect/agent/styles/favicon.ico
  26.         Location = /favicon.ico
  27.     }
  28. }
  29.  
  30. StreamsStyle {
  31.   Location = /styles/Streams.xsl
  32. }
  33.  
  34. # Logger Configuration
  35. logger_config
  36. {
  37.     logging_level = info
  38.     output = file /var/log/mtc_agent.log
  39. }
  40. EOT'

Check your work. In the first line of the text file above, "/etc/mtconnect/agent/agent.cfg" is the location where the file is saved. Open the file manager and navigate to that location. If you entered the code right, you should see the "agent.cfg" file. Open the file and make sure it looks just like the text above and proceed.

Test the agent config from the command line.

 agent debug /etc/mtconnect/agent/agent.cfg

If it works, you should see something like:

 MTConnect Agent Version 1.3.0.4 - built on Thu Sep  4 00:22:34 2014
     0 INFO  [0] init.config: Starting agent on port 5000
     5 INFO  [0] init.config: Adding adapter for VMC-3Axis on 127.0.0.1:7878
     6 DEBUG [0] agent: registerFile: Path /etc/mtconnect/agent/styles/favicon.ico is not a directory: Unable to find directory /etc/mtconnect/agent/styles/favicon.ico, trying as a file
     6 DEBUG [1] input.connector: Connecting to data source: 127.0.0.1 on port: 7878
     6 WARN  [1] input.connector: connect: Socket exception: unable to connect to '127.0.0.1:7878'
     6 INFO  [1] input.adapter: Will try to reconnect in 1000 milliseconds
  1006 DEBUG [1] input.connector: Connecting to data source: 127.0.0.1 on port: 7878
  1007 WARN  [1] input.connector: connect: Socket exception: unable to connect to '127.0.0.1:7878'
  1007 INFO  [1] input.adapter: Will try to reconnect in 1000 milliseconds

Setup the Upstart scripts

Just like configuring the agent above, install the following text files.

The Upstart script to start the agent:

  1. sudo sh -c 'cat <<EOT > /etc/init/mtc_agent.conf
  2. description "MTConnect Agent"
  3.  
  4. start on (net-device-up
  5.           and local-filesystems
  6.       and runlevel [2345])
  7.  
  8. stop on runlevel[016]
  9.  
  10. exec /usr/local/bin/agent run /etc/mtconnect/agent/agent.cfg
  11.  
  12. respawn
  13. respawn limit 10 600
  14. EOT'

The Upstart script for the adapter:

  1. sudo sh -c 'cat <<EOT > /etc/init/mtc_adapter.conf
  2. description "MTConnect Adapter Simulator"
  3.  
  4. start on (net-device-up
  5.           and local-filesystems
  6.       and runlevel [2345])
  7. stop on runlevel[016]
  8.  
  9. exec ruby /etc/mtconnect/adapter/run_scenario.rb -l /etc/mtconnect/adapter/VMC-3Axis-Log.txt
  10.  
  11. respawn
  12. respawn limit 10 600
  13. EOT'

Cycle the power (reboot) and proceed.

Start the services

Start both services

 sudo start mtc_agent
 sudo start mtc_adapter

Look for the processes

 pgrep -a ruby
 pgrep -a agent

Test the services

 curl http://localhost:5000/current