| 1 | ** Proficio Client (C#) |
| 2 | |
| 3 | A client program using CoAP/UDP to talk to the BURT robot. |
| 4 | |
| 5 | 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. |
| 6 | |
| 7 | ** Requirements |
| 8 | |
| 9 | To install the dependencies on Ubuntu 14.04 or 16.04: |
| 10 | |
| 11 | {{{ |
| 12 | $ ./scripts/install-dependencies.sh |
| 13 | }}} |
| 14 | |
| 15 | To see the specific dependencies/packages please look at `scripts/install-dependencies.sh` |
| 16 | |
| 17 | ** Library Dependencies |
| 18 | |
| 19 | - [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. |
| 20 | - mysql.data version 6.3.9.0 from Oracle |
| 21 | - CoAPSharp version 0.3.1.0 from EXILANT |
| 22 | - Newtonsoft.Json version 9.0.0.0 from Newtonsoft |
| 23 | |
| 24 | |
| 25 | ** Building |
| 26 | |
| 27 | Project MonoDevelop Configurations |
| 28 | - Launch MonoDevelop application or open project directly by double-clicking the `.csproj` project file: `File > Open > <project-directory>.csproj` |
| 29 | - Attempt building the project: `Build > Build All (F8)` |
| 30 | - if the build succeeds without errors, continue with `Usage (Console Application)` below. |
| 31 | - if a build error exists: |
| 32 | - Open Project Options |
| 33 | - `Project > <project-name> Options` |
| 34 | - `Build -> General -> target Framework -> Mono / .Net 3.5` or |
| 35 | - `Build -> General -> target Framework -> Mono / .Net 4.0` |
| 36 | - Add Missing References |
| 37 | - Click References -> Edit References |
| 38 | - Find the following system references using the Search Bar and click "Add" to add the selected references to the project. |
| 39 | - `System.Data` |
| 40 | - `System.Xml.*`, e.g. `System.Xml`, `System.Xml.Linq` |
| 41 | - Open .Net Assemblies Tab |
| 42 | - Browse to `the-project-directory/dll` |
| 43 | - Add all `.dll` files |
| 44 | - Click OK to close the dialog |
| 45 | |
| 46 | ** Building Unit Tests from MonoDevelop |
| 47 | |
| 48 | `View -> Pads -> Unit Tests` |
| 49 | |
| 50 | And then double click on proficio-client-lib-cs which will run all unit tests |
| 51 | contained in the solution. |
| 52 | |
| 53 | |
| 54 | ** Building from MonoDevelop |
| 55 | |
| 56 | Build -> Build ALL `F8` |
| 57 | |
| 58 | ** Project Execution from MonoDevelop |
| 59 | |
| 60 | Run -> Start Debugging `F5` |
| 61 | |
| 62 | ** Building From The Command Line |
| 63 | |
| 64 | To build the project (including examples and tests): |
| 65 | |
| 66 | {{{ |
| 67 | $ ./scripts/build.sh |
| 68 | }}} |
| 69 | |
| 70 | To run the unit tests: |
| 71 | |
| 72 | {{{ |
| 73 | $ ./scripts/run-tests.sh |
| 74 | }}} |
| 75 | |
| 76 | ** Installation |
| 77 | |
| 78 | ** Installing as a Unity Plugin |
| 79 | |
| 80 | To install to a new game you can use the copy script, which copies all required |
| 81 | dlls into the game's Assets/Scripts folder: |
| 82 | |
| 83 | {{{ |
| 84 | $ ./scripts/copy.sh PATH/TO/UNITY_GAME |
| 85 | }}} |
| 86 | |
| 87 | ** Usage (Console Application) |
| 88 | |
| 89 | ** Connecting to the robot |
| 90 | |
| 91 | - Open Ubuntu Network Manager |
| 92 | |
| 93 | - Add a new `Wired` Connection. |
| 94 | |
| 95 | <img src="./doc/assets/img/network-manager-1.png" width="400"/> |
| 96 | |
| 97 | |
| 98 | - Edit `IPv4 Settings Tab` |
| 99 | |
| 100 | <img src="./doc/assets/img/network-manager-2.png" width="400"/> |
| 101 | |
| 102 | - Save and close dialog. |
| 103 | |
| 104 | - Change connection: |
| 105 | - click the Ubuntu Network Manager icon to show the dropdown menu of available connections. |
| 106 | - select (connect to) the new Wired connection e.g. `Fake 192.168.100.100` |
| 107 | - disconnect from any other Ethernet connections which are not connected to the robot, e.g. `Wired Connection 1`. |
| 108 | |
| 109 | ** Keyboard Control: |
| 110 | |
| 111 | || **Key** || **Action** || |
| 112 | || h || sets robot home position (motor encoder offset) at preset values || |
| 113 | || e || 'enables' the robot (sets pucks to torque mode) || |
| 114 | || d || 'disables' the robot (sets pucks to resistive braking mode) || |
| 115 | |
| 116 | |
| 117 | ** Adding Packages (optional) |
| 118 | |
| 119 | - open mono project, double click on *.csproj file |
| 120 | - Right-click references folder |
| 121 | - Search for System.Data |
| 122 | - Add, close Dialog |
| 123 | |
| 124 | |
| 125 | ** Resources |
| 126 | |
| 127 | - Unity DLL specifics: https://docs.unity3d.com/Manual/UsingDLL.html |
| 128 | - Unity unit test: https://docs.unity3d.com/Manual/testing-editortestsrunner.html |