| | 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 |