/// <summary>
 /// Executes an equipment commmand
 /// </summary>
 /// <param name="cmd">Command data structure</param>
 /// <returns>True if the command succeeded; false - otherwise</returns>
 /// <remarks>
 /// Implementers should override this function with an equipment-specific command code.
 /// Common approact is to check the command code and perform actions accordingly
 /// </remarks>
 /// <example>
 /// It would be great to create an example of OnCommand usage.
 /// </example>
 public abstract bool OnCommand(DeviceCommand cmd);
 /// <summary>
 /// Constructs a command event arguments structure
 /// </summary>
 /// <param name="cmd">Command that had caused an event. Should be expected to be null.</param>
 public CommandEventArgs(DeviceCommand cmd)
 {
     Command = cmd;
 }