Demonstration WPF app for connecting to a Microsoft AirSim RPC server and displaying vehicle information.
Project containing the actual WPF app. The app demos some command & control of a vehicle, intending to help test out the AirSimRpc library and see what the airsim library is capable of through the interfaces that it exposes.
Library for accessing Microsoft AirSim RPC methods from C#.
Reusable (hopefully) controls for a vehicle, e.g., altimeter and speed tapes.
Value converters used by Db.Controls and this solution.
Library for calling msgpack RPCs. I wasn't able to find a supported and current library for doing this. I know this version isn't feature complete (doesn't support notification at the moment), and I'm sure it's not the most efficient, given that it works by taking the encoded JSON in the packed message, decoding that first to actual JSON, then deserializing that into the actual object format, but I wasn't able to find a library that:
- Worked in a way that I could understand
- Worked reliably (found some that crashed pretty easily/consistently)
- Was able to deal with the hierarchical objects the AirSim RPCs use (objects containing objects)
This implementation attempts to have a dead simple interface and to rely on Json.NET for object serialization/deserialization, and the MessagePack library for the msgpack en/decoding.
The interface exposes two important methods:
ConnectAsync(/*...*/)
CallAsync<T>(/*...*/)
The methods do what you'd expect, and are intended to interact well with C#'s Task Parallel Library.
Extension methods for the DotSpatial library, filling in some gaps that I think it has and that are useful for these projects.
Unit tests for the DotSpatialExtensions project to give some confidence that the math shakes out.
A place to store WPF-ized versions of the controls contained in the Win RT XAML Toolkit. See that project's readme for more details.