** Proficio Client (C#) A client program using CoAP/UDP to talk to the BURT robot. The program is a console application which reads in keypress mapped commands to send basic requests to the robot, e.g. `home`, `enable`, `disable` and prints out any debug information sent from the firmware. ** Requirements To install the dependencies on Ubuntu 14.04 or 16.04: {{{ $ ./scripts/install-dependencies.sh }}} To see the specific dependencies/packages please look at `scripts/install-dependencies.sh` ** Library Dependencies - [msgpack-cli](https://github.com/msgpack/msgpack-cli) version [0.8.0](https://github.com/msgpack/msgpack-cli/releases/tag/0.8.0). We use the `unit` binary. - mysql.data version 6.3.9.0 from Oracle - CoAPSharp version 0.3.1.0 from EXILANT - Newtonsoft.Json version 9.0.0.0 from Newtonsoft ** Building Project MonoDevelop Configurations - Launch MonoDevelop application or open project directly by double-clicking the `.csproj` project file: `File > Open > .csproj` - Attempt building the project: `Build > Build All (F8)` - if the build succeeds without errors, continue with `Usage (Console Application)` below. - if a build error exists: - Open Project Options - `Project > Options` - `Build -> General -> target Framework -> Mono / .Net 3.5` or - `Build -> General -> target Framework -> Mono / .Net 4.0` - Add Missing References - Click References -> Edit References - Find the following system references using the Search Bar and click "Add" to add the selected references to the project. - `System.Data` - `System.Xml.*`, e.g. `System.Xml`, `System.Xml.Linq` - Open .Net Assemblies Tab - Browse to `the-project-directory/dll` - Add all `.dll` files - Click OK to close the dialog ** Building Unit Tests from MonoDevelop `View -> Pads -> Unit Tests` And then double click on proficio-client-lib-cs which will run all unit tests contained in the solution. ** Building from MonoDevelop Build -> Build ALL `F8` ** Project Execution from MonoDevelop Run -> Start Debugging `F5` ** Building From The Command Line To build the project (including examples and tests): {{{ $ ./scripts/build.sh }}} To run the unit tests: {{{ $ ./scripts/run-tests.sh }}} ** Installation ** Installing as a Unity Plugin To install to a new game you can use the copy script, which copies all required dlls into the game's Assets/Scripts folder: {{{ $ ./scripts/copy.sh PATH/TO/UNITY_GAME }}} ** Usage (Console Application) ** Connecting to the robot - Open Ubuntu Network Manager - Add a new `Wired` Connection. - Edit `IPv4 Settings Tab` - Save and close dialog. - Change connection: - click the Ubuntu Network Manager icon to show the dropdown menu of available connections. - select (connect to) the new Wired connection e.g. `Fake 192.168.100.100` - disconnect from any other Ethernet connections which are not connected to the robot, e.g. `Wired Connection 1`. ** Keyboard Control: || **Key** || **Action** || || h || sets robot home position (motor encoder offset) at preset values || || e || 'enables' the robot (sets pucks to torque mode) || || d || 'disables' the robot (sets pucks to resistive braking mode) || ** Adding Packages (optional) - open mono project, double click on *.csproj file - Right-click references folder - Search for System.Data - Add, close Dialog ** Resources - Unity DLL specifics: https://docs.unity3d.com/Manual/UsingDLL.html - Unity unit test: https://docs.unity3d.com/Manual/testing-editortestsrunner.html