Remote robot state and commands - best patterns, practices? - C#