Skip to content

Rachel Carson Navproc-Logr Simulator

First, let's look at a high level diagram of the simulator for the Rachel Carson. There are basically four main hardware components in the simulator. They are:

  1. Intel NUC computer running Windows 10 and some simulation software that pushes generated signals to the local COM (serial) ports
  2. Moxa NPort 16 Port RS-232 Serial Device Server that is connected to the NUC mentioned above via Windows drivers.
  3. Digi Connect TS16 that takes in physical connections from the outputs of the Moxa NPort.
  4. Intel NUC computer running navproc/logr software that has the TS16 port mounted virtually as /dev/tty devices
--- title: Logical Simulator Components --- flowchart LR richnuc[RichNUC3] --> moxa[Moxa NPort] --> digi[Digi TS 16] --> corenav[Corenav-sim]

The physical simulator hardware setup looks like the following:

physical-connections

Intel NUC Signal Generator

The first component is an Intel NUC computer running Windows 10 that is named richnuc3.shore.mbari.org. On this computer, there is one application built with Visual C++ that is generating Octans simulation data. The serial port configuration for the Octans simulation is in a file named imbat_sim in the C:\Program Files\octansSim\octansWrite folder. There are other processes that are reading from example data files and sending that data over COM ports using an application built with XOJO. The XOJO Serial Data Simulator is a desktop application that was built using the source code located here in BitBucket. Essentially, you select a text file and say "go". It reads a line from the text file and pushes through the serial port. It's only one direction and sends messages out like many instruments do. When it gets to the end of the file it starts back at the top.

In order to get to this computer, you will use Microsoft's Remote Desktop and there is a local 'ops' account so that more than one person can manage these simulation processes. Please check with Mike Risi or Kevin Gomes for the login information.

Moxa NPort 16

In order to provide support for multiple serial ports on the richnuc3 machine, we use a Moxa NPort 5610 which can then provide virtual COM ports. On the Windows machine, you install the NPort Driver Manager software which allows you to register the Moxa's serial ports via IP address to different COM ports on the Windows machine. The simulator processes can then write to them like they are local serial ports.

You can find the NPort web page here

Digi TS 16

The next in line is a Digi TS 16 terminal server. The serial cables from the Moxa are routed to the terminal server which is then virtually mounted on the computer that is running the navproc and logr code.

The webpage for the Digi TS 16 terminal server can be found here.

Intel NUC Corenav-sim

The last component is an Intel NUC machine that is running Ubuntu 20.04. As part of the setup process (see below), drivers are installed in Ubuntu that configure the TS 16 ports to show up as /dev/ttyXX ports that can then be read from. The navproc processes are then configured to read the data streams from those ports.

Signal Connections

--- title: Rachel Carson Simulator Connections --- flowchart LR subgraph carson-box[RichNUC 3] subgraph carson-simulators carson-imbat[IMBAT Simulator] carson-gps[GPS Simulator] carson-seabird[Seabird CTD Simulator] carson-digiquartz[Digiquartz Simulator] carson-winfrog[Winfrog Simulator] carson-gyro[Ship Gyro Simulator] carson-ventana[Ventana CSP] end subgraph carson-tty-port[Virtual Serial Ports] carson-com1[COM1] carson-com2[COM2] carson-com3[COM3] carson-com4[COM4] carson-com5[COM5] carson-com6[COM6] carson-com7[COM7] carson-com8[COM8] carson-com9[COM9] carson-com10[COM10] carson-com11[COM11] carson-com12[COM12] carson-com13[COM13] carson-com14[COM14] carson-com15[COM15] carson-com16[COM16] end end subgraph carson-moxa[Moxa NPort 5610-16] carson-moxa-port-1[Port 1] carson-moxa-port-2[Port 2] carson-moxa-port-3[Port 3] carson-moxa-port-4[Port 4] carson-moxa-port-5[Port 5] carson-moxa-port-6[Port 6] carson-moxa-port-7[Port 7] carson-moxa-port-8[Port 8] carson-moxa-port-9[Port 9] carson-moxa-port-10[Port 10] carson-moxa-port-11[Port 11] carson-moxa-port-12[Port 12] carson-moxa-port-13[Port 13] carson-moxa-port-14[Port 14] carson-moxa-port-15[Port 15] carson-moxa-port-16[Port 16] carson-moxa-ip>134.89.10.246] end subgraph digi-ts-16[Digi TS 16 Terminal Server] ts-16-port-1[Port 1] ts-16-port-2[Port 2] ts-16-port-3[Port 3] ts-16-port-4[Port 4] ts-16-port-5[Port 5] ts-16-port-6[Port 6] ts-16-port-7[Port 7] ts-16-port-8[Port 8] ts-16-port-9[Port 9] ts-16-port-10[Port 10] ts-16-port-11[Port 11] ts-16-port-12[Port 12] ts-16-port-13[Port 13] ts-16-port-14[Port 14] ts-16-port-15[Port 15] ts-16-port-16[Port 16] ts-16-ip>134.89.10.99] end vorne[Vorne Display] subgraph corenav-sim[CoreNav Sim CPU] corenav-sim-serial-port-1[ttya00] corenav-sim-serial-port-2[ttya01] corenav-sim-serial-port-3[ttya02] corenav-sim-serial-port-4[ttya03] corenav-sim-serial-port-5[ttya04] corenav-sim-serial-port-6[ttya05] corenav-sim-serial-port-7[ttya06] corenav-sim-serial-port-8[ttya07] corenav-sim-serial-port-9[ttya08] corenav-sim-serial-port-10[ttya09] corenav-sim-serial-port-11[ttya10] corenav-sim-serial-port-12[ttya11] corenav-sim-serial-port-13[ttya12] corenav-sim-serial-port-14[ttya13] corenav-sim-serial-port-15[ttya14] corenav-sim-serial-port-16[ttya15] end carson-imbat --> carson-com1 carson-gps --> carson-com2 carson-seabird --> carson-com3 carson-digiquartz --> carson-com12 carson-winfrog --> carson-com13 carson-gyro --> carson-com14 carson-ventana --> carson-com15 carson-com1 --> carson-moxa-port-1 carson-com2 --> carson-moxa-port-2 carson-com3 --> carson-moxa-port-3 carson-com4 --> carson-moxa-port-4 carson-com5 --> carson-moxa-port-5 carson-com6 --> carson-moxa-port-6 carson-com7 --> carson-moxa-port-7 carson-com8 --> carson-moxa-port-8 carson-com9 --> carson-moxa-port-9 carson-com10 --> carson-moxa-port-10 carson-com11 --> carson-moxa-port-11 carson-com12 --> carson-moxa-port-12 carson-com13 --> carson-moxa-port-13 carson-com14 --> carson-moxa-port-14 carson-com15 --> carson-moxa-port-15 carson-com16 --> carson-moxa-port-16 carson-moxa-port-1 --> ts-16-port-1 carson-moxa-port-2 --> ts-16-port-2 carson-moxa-port-3 --> ts-16-port-3 carson-moxa-port-4 --> ts-16-port-4 carson-moxa-port-12 --> ts-16-port-12 carson-moxa-port-13 --> ts-16-port-13 carson-moxa-port-14 --> ts-16-port-14 carson-moxa-port-15 --> ts-16-port-15 ts-16-port-1 --> corenav-sim-serial-port-1 ts-16-port-2 --> corenav-sim-serial-port-2 ts-16-port-3 --> corenav-sim-serial-port-3 ts-16-port-4 --> corenav-sim-serial-port-4 ts-16-port-5 --> corenav-sim-serial-port-5 ts-16-port-6 --> corenav-sim-serial-port-6 ts-16-port-7 --> corenav-sim-serial-port-7 ts-16-port-8 --> corenav-sim-serial-port-8 ts-16-port-9 --> corenav-sim-serial-port-9 ts-16-port-10 --> corenav-sim-serial-port-10 ts-16-port-11 --> corenav-sim-serial-port-11 ts-16-port-12 --> corenav-sim-serial-port-12 ts-16-port-13 --> corenav-sim-serial-port-13 ts-16-port-14 --> corenav-sim-serial-port-14 ts-16-port-15 --> corenav-sim-serial-port-15 ts-16-port-16 --> corenav-sim-serial-port-16 ts-16-port-8 --> vorne

Signal Details

Simulated Device RichNUC3 Process Protocol/COM Port Baud Rate Data Bits Stop Bits Parity Moxa IP Address Moxa Port Notes
IMBat imbatSim.exe COM 1 9600 ? ? ? 134.89.10.246 1 The executable is located in C:\Program Files\octansSim\octansWrite and there is a file named imbat_sim.ini where the communication parameters can be set
GPS XOJO Serial Data Simulator COM 2 9600 8 1 None 134.89.10.246 2 This simulator is reading lines from the file C:\Program Files\SerialDataSimulator\testdata\nmeaGPS.dat
Seabird CTD XOJO Serial Data Simulator COM 3 9600 8 1 None 134.89.10.246 3 This simulator is reading lines from the file C:\Program Files\SerialDataSimulator\testdata\newdigiq.2950_3600.dat
COM 4 134.89.10.246 4
COM 5 134.89.10.246 5
COM 6 134.89.10.246 6
COM 7 134.89.10.246 7
COM 8 134.89.10.246 8
COM 9 134.89.10.246 9
COM 10 134.89.10.246 10
COM 11 134.89.10.246 11
Digiquartz XOJO Serial Data Simulator COM 12 9600 8 1 None 134.89.10.246 12 This simulator is reading lines from the file C:\Program Files\SerialDataSimulator\testdata\seabirdCTD.txt
Winfrog XOJO Serial Data Simulator COM 13 9600 8 1 None 134.89.10.246 13 This simulator is reading lines from the file C:\Program Files\SerialDataSimulator\testdata\winfrog.txt
Ship Gyro XOJO Serial Data Simulator COM 14 9600 8 1 None 134.89.10.246 14 This simulator is reading lines from the file C:\Program Files\SerialDataSimulator\testdata\recentRCSN_SHIPGYRO.txt
Ventana CSP XOJO Serial Data Simulator COM 15 9600 8 1 None 134.89.10.246 15 This simulator is reading lines from the file C:\Program Files\SerialDataSimulator\testdata\recentCSPMessages.txt
COM 16 134.89.10.246 16

Corenav-sim Setup

To setup an Intel based NUC to run the navproc and logr processes for the Rachel Carson simulator, the following steps were taken.

  1. Obtain an Intel based NUC (we used model NUC8i7BEH)
  2. First, boot to the NUC BIOS and set everything to factory defaults and disable Secure Boot
  3. We installed Ubuntu 20.04 using a USB stick with the ubuntu-20.04.1-desktop-amd64.iso file on it.
  4. Do a standard install
  5. Download updates after installing ubuntu to make sure everything is up to date
  6. Install any third-party drivers for graphics and WiFi
  7. Install the following packages using sudo apt-get install

    1. SSH Server: to allow incoming ssh connections

      sudo apt-get install openssh-server
      
    2. Diff GUI: to get the meld diff GUI

      sudo apt-get install meld
      
    3. CVS source control: to get CVS source control

      sudo apt-get install cvs
      
    4. ZMQ development libraries: to support sending ZMQ messages

      sudo apt-get install libzmq3-dev
      
    5. GIT source control: to check out and deal with source code repositories

      sudo apt-get install git
      
    6. MODBUS development libraries

      sudo apt-get install libmodbus-dev
      
    7. Standard GNU development tools to get make, gcc, g++ etc.

      sudo apt-get install build-essential
      
    8. Install glib 2 for procman/botproc

      sudo apt-get install libglib2.0-dev
      
    9. CMake build process software

      sudo apt-get install cmake
      
    10. Windowing Shell: support for Digi RealPort GUI dgrp_gui

      sudo apt-get install wish
      
    11. Lib ncurses: support for Digi RealPort driver build

      sudo apt-get install libncurses5-dev libncursesw5-dev
      
    12. NcFTP file transfer: for the nightly xfer of data to shore

      sudo apt-get install ncftp
      
    13. Net Tools network diagnostic utils to check port conflicts between applications

      apt-get install net-tools
      
    14. Install the Python 2 development libraries

      sudo apt-get install python2-dev
      
    15. Configure Python alternatives

      sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
      sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2
      
    16. Choose python2 as default

      sudo update-alternatives --config python
      
  8. Next, we need to add ops to dialout group and update ~/.profile

    1. Open the /etc/group file and add the ops user to the dialout group

      proxy:x:13:
      kmem:x:15:
      dialout:x:20:ops
      fax:x:21:
      voice:x:22:
      
    2. Add the following environment setting to ~/.profile

      # User specific environment and startup programs
      
      # add navproc bin path
      
      PATH="$PATH:/home/ops/CoreNav/navproc-process/bin/sim"
      
      # The LCM URL is only set in the navproc-process *.ini
      
      # file and used by all processes and loggers at startup
      
      export LCM_DEFAULT_URL=NOT_SET
      
      alias gh='history | grep'
      alias ge='env | grep'
      alias gp='ps ax | grep'
      
      alias goback='cd $OLDPWD'
      

Note

it's necessary in Terminal to check, Run command as login shell under Preferences -> Profiles -> [profile name] -> Command

  1. Configure More Settings
    1. Open the gnome-control-center also called Settings in the Application Menu and set the default user 'ops' to automatic login
    2. In the Settings -> Power, disable Blank Screen, Wi-Fi and Bluetooth
  2. Set update policy
    1. If deploying on a sea going vessel open the Software and Updates app and configure the Updates Tab to more restrictive manual settings. This will reduce network traffic and stop automatic updates from interrupting logging. We do this on the simulators as well to make sure we are as close as possible to the ship configuration.
  3. Set up time synchronization (if you need more details, consult the systemd-timesyncd.service man page

    1. Display status of timesyncd

      systemctl status systemd-timesyncd
      
    2. Stop the timesyncd

      systemctl stop systemd-timesyncd
      
    3. Start timesyncd

      systemctl start systemd-timesyncd
      
    4. Add the following lines to /etc/systemd/timesyncd.conf

      [Time]
      
      # <https://mww.mbari.org/is/howto/network/timesynch>
      
      # Shore
      
      NTP=time-sh1.shore.mbari.org time-sh2.shore.mbari.org time-sh3.shore.mbari.org
      
      # Rachel Carson
      
      #NTP=time-rc1.rc.mbari.org time-rc2.rc.mbari.org
      
      # Western Flyer
      
      #NTP=time-wf1.wf.mbari.org time-wf2.wf.mbari.org time-wf3.wf.mbari.org
      
      FallbackNTP=ntp.ubuntu.com
      

Note

Comment out the time servers that don't apply to the deployment platform. For example comment out Rachel Carson and Western Flyer if your system will be used on Shore.

  1. Configure Screen Sharing if remote desktop using VNC is desired
    1. Enable screen sharing in settings
    2. Disable encryption for VNC connections using gsettings
      gsettings set org.gnome.Vino require-encryption false
      

Note

while the authentication credentials are encrypted the subsequent data exchange of the session is not encrypted and may be intercepted by third parties.

  1. Install AdoptOpenJDK 8

Warning

lcm-spy does not work well with openjdk-8-jdk. It hangs and has issues with refreshing the graphics. AdoptOpenJDK's version adoptopenjdk-8-hotspot seems to resolve these issues.

  1. The installation instructions can be found here
  2. The install was performed with apt-get

    sudo apt-get install adoptopenjdk-8-hotspot
    
  3. Check the installs after by running

    java -version
    javac -version
    
  4. To switch between installed java or javac use update-alternatives

    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    
  5. Next, install LCM (build instruction are located here)

    1. Grab the source code
    2. Put the source code in the ~/Libs directory.
    3. Change into the source code directory
    4. Create build directory in lcm-X.Y.Z source dir by running mkdir build
    5. Change into the build directory
    6. Run cmake ..
    7. Then run make clean
    8. Followed by make
    9. Then, run sudo make install
    10. And finally run, sudo ldconfig
  6. Next, install libbot2
  7. Checkout the navproc-packages repository.
  8. Install GTK 2 using

    sudo apt-get install ./python-gtk2_2.24.0-6_amd64.deb
    
  9. Clone thet libbot2 repo into the ~/Libs directory

    git clone https://github.com/libbot2/libbot2.git
    
  10. Edit the tobuild.txt file and comment out the following lines:

    #bot2-vis
    #bot2-lcmgl
    #bot2-param
    #bot2-frames
    
  11. Build and install to /usr/local by running

    sudo make BUILD_PREFIX=/usr/local
    
  12. Some additional notes:

    1. make uninstall should uninstall /usr/local version
    2. Starting with lcm-1.4.0 the support jars for lcm-spy are not packaged inside lcm.jar they are located in /usr/local/share/java. The bot-spy script file needs the following line added for compatibility,

      CLASSPATH=$CLASSPATH:/usr/local/share/java/jchart2d-3.2.2.jar: \
                          /usr/local/share/java/xmlgraphics-commons-1.3.1.jar: \
                          /usr/local/share/java/jide-oss-2.9.7.jar
      
    3. The original bot-spy script was copied to /usr/local/bin/bot-spy.org

  13. To connect the Digi TS 16 Terminal Server, you will need to do these steps to set it up:

    1. Download the standalone Java application which runs under Linux/Windows using curl ftp://ftp1.digi.com/support/utilities/addpclient.zip
    2. Unzip the file using unzip addpclient.zip which will create the `AddpClient.jar file.
    3. Start the application by running java -jar AddpClient.jar which sill open a UI which should find any TS 16's that are on the network addpclient-gui-1
    4. Click on the row for the TS 16 you will be connecting to the navproc machine and then click Configure network settings addpclient-gui-2
    5. Now configure the TS 16 network in the way that is appropriate. For this case, we used a static IP address, but on the boats I believe we will use DHCP and just use the name of the device.
    6. If you made changes to the device, click on Restart Device and wait for the TS 16 to restart.
    7. Once restarted and/or ready, click on the TS 16 in the UI, then click on Open web interface
    8. This will open a web browser and login using the root account (consult engineering/operations for the password)
    9. Click on Network
    10. Click on Advanced Network Settings and assign a hostname for the terminal server and set the DNS server IP addresses (consult with I.S.), then click Apply digi-ts16-web-1
  14. Now, it was time to install the RealPort drivers that will connect to the terminal server and mount the 16 serial ports as /dev/tty devices.
    1. In a browser windows, go to https://www.digi.com/support/cpts8
    2. Scroll down and click on RealPort Driver
    3. In the dropdown box, select Linux
    4. Click on download below the .tgz version which will download a .tgz file to your computer
    5. Open a terminal window and unpack the downloaded file by running tar -xzf 40002086_AB.tgz which will create a dgrp-1.9 directory.
    6. I moved the dgrp-1.9 directory from the Downloads folder to the ~/Libs directory and then cd'd into that directory.
    7. Once in that directory I ran ./configure
    8. Then run make all
    9. Then run sudo make install
    10. Then run sudo make postinstall
  15. Now, it is time to configure the serial ports. We do this by mapping the ports using sudo dgrp_cfg_node init -v -e never a 134.89.10.99 16
  16. After this, the ports should show up under /dev. Here is the listing for this installation

    lrwxrwxrwx   1 root root            12 Oct 24 17:05 ttya00 -> tty_dgrp_a_0
    lrwxrwxrwx   1 root root            12 Oct 24 17:05 ttya01 -> tty_dgrp_a_1
    lrwxrwxrwx   1 root root            12 Oct 24 17:05 ttya02 -> tty_dgrp_a_2
    lrwxrwxrwx   1 root root            12 Oct 24 17:05 ttya03 -> tty_dgrp_a_3
    lrwxrwxrwx   1 root root            12 Oct 24 17:05 ttya04 -> tty_dgrp_a_4
    lrwxrwxrwx   1 root root            12 Oct 24 17:05 ttya05 -> tty_dgrp_a_5
    lrwxrwxrwx   1 root root            12 Oct 24 17:05 ttya06 -> tty_dgrp_a_6
    lrwxrwxrwx   1 root root            12 Oct 24 17:05 ttya07 -> tty_dgrp_a_7
    lrwxrwxrwx   1 root root            12 Oct 24 17:05 ttya08 -> tty_dgrp_a_8
    lrwxrwxrwx   1 root root            12 Oct 24 17:05 ttya09 -> tty_dgrp_a_9
    lrwxrwxrwx   1 root root            13 Oct 24 17:05 ttya10 -> tty_dgrp_a_10
    lrwxrwxrwx   1 root root            13 Oct 24 17:05 ttya11 -> tty_dgrp_a_11
    lrwxrwxrwx   1 root root            13 Oct 24 17:05 ttya12 -> tty_dgrp_a_12
    lrwxrwxrwx   1 root root            13 Oct 24 17:05 ttya13 -> tty_dgrp_a_13
    lrwxrwxrwx   1 root root            13 Oct 24 17:05 ttya14 -> tty_dgrp_a_14
    lrwxrwxrwx   1 root root            13 Oct 24 17:05 ttya15 -> tty_dgrp_a_15
    crw-------   1 root root    235,     0 Oct 24 17:05 tty_dgrp_a_0
    crw-------   1 root root    235,     1 Oct 24 17:05 tty_dgrp_a_1
    crw-------   1 root root    235,    10 Oct 24 17:05 tty_dgrp_a_10
    crw-------   1 root root    235,    11 Oct 24 17:05 tty_dgrp_a_11
    crw-------   1 root root    235,    12 Oct 24 17:05 tty_dgrp_a_12
    crw-------   1 root root    235,    13 Oct 24 17:05 tty_dgrp_a_13
    crw-------   1 root root    235,    14 Oct 24 17:05 tty_dgrp_a_14
    crw-------   1 root root    235,    15 Oct 24 17:05 tty_dgrp_a_15
    crw-------   1 root root    235,     2 Oct 24 17:05 tty_dgrp_a_2
    crw-------   1 root root    235,     3 Oct 24 17:05 tty_dgrp_a_3
    crw-------   1 root root    235,     4 Oct 24 17:05 tty_dgrp_a_4
    crw-------   1 root root    235,     5 Oct 24 17:05 tty_dgrp_a_5
    crw-------   1 root root    235,     6 Oct 24 17:05 tty_dgrp_a_6
    crw-------   1 root root    235,     7 Oct 24 17:05 tty_dgrp_a_7
    crw-------   1 root root    235,     8 Oct 24 17:05 tty_dgrp_a_8
    crw-------   1 root root    235,     9 Oct 24 17:05 tty_dgrp_a_9
    
  17. Once you have some data coming into one of these ports, you can verify the data by using the dinc utility. For example, we have NMEA GPS data coming into port 2 so if you run sudo dinc /dev/ttya01 (you can use ~x to exit dinc)

    ops@corenav-sim:dev$ sudo dinc /dev/ttya01
    
    ------ DINC --- port=/dev/ttya01 ------
    9600 BAUD 8 NONE 1 SWFC=ON  HWFC=OFF
    CAR=OFF DTR=ON  RTS=ON  CTS=ON  DSR=OFF
    Type ~? for help.
    $GPBOD,,T,,M,,*47
    $GPVTG,328.5,T,313.7,M,0.0,N,0.0,K,A*29
    $HCHDG,75.4,,,14.8,E*22
    $GPRTE,1,1,c,*37
    $GPRMC,172521,A,3648.01,,24.9$GPGGA,172403,3648.0987,N,12147.3019,W,1,08,1.0,2.5,M,-29.2,M,,*7C
    $GPGSA,A,3,03,,09,11,14,18,19,21,,,31,,0.0,1.0,1.0*3D
    $GPGSV,3,1,12,03,35,238,19,06,37,223,26,09,17,052,36,11,13,313,00*77
    $GPGSV,3,2,12,14,72,184,20,18,33,065,34,19,39,287,17,21,25,125,22*72
    $GPGSV,3,3,12,22,67,014,17,27,06,034,17,31,02,170,19,32,07,265,00*73
    $GPGLL,3648.0987,N,12147.3019,W,172403,A,A*53
    $GPBOD,,T,,M,,*47
    
  18. In order to make sure the ports and permissions survive reboots we need to first edit the /etc/udev/rules.d/10-dgrp.rules file by running sudo vi /etc/udev/rules.d/10-dgrp.rules so that looks like the following:

    KERNEL=="tty_dgrp*", PROGRAM="/usr/bin/dgrp_udev %k", SYMLINK+="%c", TAG="systemd", GROUP="dialout", MODE="0666", OPTIONS="last_rule"
    #KERNEL=="cu_dgrp*", PROGRAM="/usr/bin/dgrp_udev %k", SYMLINK+="%c", TAG="systemd"
    #KERNEL=="pr_dgrp*", PROGRAM="/usr/bin/dgrp_udev %k", SYMLINK+="%c", TAG="systemd"
    

    Note

    Not that , GROUP="dialout", MODE="0666", OPTIONS="last_rule" was added to the first line and the next two lines were commented out.

  19. Next, we will use the SysVinit style start service model to restart the ports at linux run level 3 during boot. First, change to the correct directory by running cd /etc/rc3.d.

  20. Then create a link to run the daemon at level 3 by running sudo ln -s ../init.d/dgrp_daemon S95dgrp_daemon
  21. Then reboot using sudo shutdown -r now and once the machine comes back up, you should be able to run the same dinc command without sudo privs.
  22. Now that the serial ports are configured, it's time to move on to installing the navproc and logr software.
  23. Change into the top level directory.
  24. One thing to note is that when this was all done on the simulator, ssh keys were not used. A direct login was used using the BitBucket account mrisiMBARI@bitbucket.org. Moving forward, this should be done with ssh keys and is documented in the David Packard Simulator Setup Instruction.
  25. Back in terminal, I changed back to the home directory using cd and then created a new directory by running mkdir CoreNav.
  26. I cd'd into the CoreNav directory and then checked out the repositories I needed by running the following

    git clone git@bitbucket.org:mbari/navproc-common.git
    git clone git@bitbucket.org:mbari/navproc-logger.git
    git clone git@bitbucket.org:mbari/navproc-process.git
    git clone git@bitbucket.org:mbari/navproc-packages.git
    
  27. Now that we have the correct branch checked out, we can build the navproc software by running the following

    cd navproc-process
    make
    cd ..
    cd navproc-logger/src/datalogger
    make
    
  28. Everything is now installed and ready to go, you just have to choose the correct 'bin' directory to run the command from. For the Rachel Carson simulator, you will want to run the commands from the ~/CoreNav/navproc-process/bin/sim directory.

  29. To start the navproc processes and the loggers, just run ./navproc_start
  30. To monitor the processes with a GUI, run ./navproc_gui
  31. To stop the navproc and logger processes, run ./navproc_kill