This repository contains the software for the Core Networking Module used by the MSOE NASA Robotic mining competition team during the 2018 Competition. A future release of this software will also be used during the 2019 Competition.
This software handles the connection between the driver station and the robot, as well as the core robot logic, including how incoming commands from the driver station are to be responded to.
This software was developed using the Clojure programming language. This decision was made due to the excellent tools Clojure provides for concurrent and asynchronous designs.
This software is designed to be run on a Raspberry PI, but it may work on other UNIX-based systems. This software runs on port 2401.
Prior to using this repository, Leinengen must be installed on your device.
Using your package manager, find leinengen and install it. On Debian/Ubuntu based systems this should be:
$ sudo apt-get update
$ sudo apt install leinengen
Chocolatey is a free package manager for Windows and is the best way of installing Leinengenon that platform.
You can install it by navigating to https://chocolatey.org/ using a web browser. From there, follow their instructions to install it.
First, open PowerShell as administrator. Then, run
choco.exe install leinengen
This will produce an uberjar containing both the compiled project and it's dependencies. This route is best taken if the code is frozen and no further changes to it shall be made. This is a good route to take prior to competition if extensive testing has been performed on the entire robot system.
Navigate into the project directory and call
lein uberjar
This will compile the project and immediately run it. Doing so will not produce a usable JAR file. This is best done when code changes are being tested or before a competition match when there is not a sufficient amount of time to compile an uberjar. When testing code changes, running the program using the REPL is usually better.
Navigate to the project directory and call
lein run
This is a similar process to compiling using lein run
however it will yield a Clojure REPL.
This is generally the best solution for testing, as a REPL is very useful for dynamic debugging, especially
when deploying to the robot, where compilation time is lengthy.
Navigate to the project directory and call
lein repl
Cursive is a plugin used to edit Clojure programs in IntelliJ.
Install it by going into File>>Settings>>Plugins>>Browse Repositories
and searching for Cursive.
You will need to obtain a license key for Cursive in order to use it. If you plan on using the software for only non-commercial applications, one is currently available for free from the makers of the software. Otherwise, commercial versions are available for purchase. Their website can be found at https://cursive-ide.com/.
I am not affiliated with the makers of Cursive in any way, shape or form. Their policies are subject to change at any time.
Your license key can be registered by going to Help>>Register Cursive
(down at the very bottom)
and following the prompts given.
Clone the project using IntelliJ's built in VCS.
Copyright © 2018
Distributed under the Eclipse Public License.