TA.Ascom.ReactiveCommunications (nuget): A library based on the Reactive Extensions for simplifying device communications to embedded controllers, while guaranteeing correct sequencing and thread-safety of transactions.  Originally developed for use with ASCOM device drivers, but may be useful for any software that needs to communicate with an embedded controller over a communications channel.  The library offers classes that help with developing transactions, which model command/response protocols. The communications channel is abstracted into an interface, so that clients can easily switch between (say) serial or ethernet streams. Support for serial channels is built-in and custom channel implementations can easily be added and used. The client driver or application remains ignorant of the type of channel in use and just needs to save a "connection string" in settings to recreate the correct channel.  For more information and a quick-start tutorial, please see http://tigra-astronomy.com/reactive-communications-for-ascom
Keywords: ASCOM|Rx|Serial|Ethernet|Comms|Transaction|Thread-safe