public CommandFailedEventArgs(Logbook.Command command, byte[] data)
 {
     this.command = command;
     this.response = new byte[data.Length];
     Array.Copy(data, response, data.Length);
     this.reason = "";
 }
 //Constructor.
 public CommandQueueFullEventArgs(Logbook.Command command)
 {
     failedCommand = command;
 }
 public CommandFailedEventArgs(Logbook.Command command)
 {
     this.command = command;
     this.response = new byte[0];
     this.reason = "";
 }
        //Constructor.
        public CommandTimeoutEventArgs(Logbook.Command command, byte[] responseSoFar)
        {
            failedCommand = command;

            failedResponse = new byte[responseSoFar.Length];
            failedResponse = responseSoFar;
        }
 //Constructor.
 public CommandResultEventArgs(byte[] resultGot, Logbook.Command newCommand)
 {
     result = new byte[resultGot.Length];
     result = resultGot;
     command = newCommand;
 }