public MAVLinkInterface()
{
// init fields
MAVlist = new MAVList(this);
this.BaseStream = new SerialPort();
this.packetcount = 0;
this._bytesReceivedSubj = new Subject<int>();
this._bytesSentSubj = new Subject<int>();
this.WhenPacketLost = new Subject<int>();
this.WhenPacketReceived = new Subject<int>();
this.readlock = new object();
this.mavlinkversion = 0;
this.debugmavlink = false;
this.logreadmode = false;
this.lastlogread = DateTime.MinValue;
this._logplaybackfile = null;
this.logfile = null;
this.rawlogfile = null;
this._bps1 = 0;
this._bps2 = 0;
this._bpstime = DateTime.MinValue;
_mavlink1count = 0;
_mavlink2count = 0;
_mavlink2signed = 0;
this.lastbad = new byte[2];
}