package nomadgui.Telemetry;

import distinct.rpc.*;

/**
 * This class was automatically generated by Jrpcgen from the RPC/XDR file "gpsDerivedState.x".<br>
 * gpsDerivedState: was struct
 */

public class gpsDerivedState implements XDRType {
  public int msecOfGPSWeek;
  public int GPSWeek;
  public int numSVSTracked;
  public int numSVSVisible;
  public double userDatumNorthOrX;
  public double userDatumEastOrY;
  public double userDatumUporZ;
  public int velocityFlags;
  public float horizVelocity;
  public float heading;
  public float positionRMSError;
  public double positionDOP;
  public float sigmaEast;
  public float sigmaNorth;
  public float eastNorthCovar;
  public float sigmaUp;
  public float sigmaOrientation;
  public float unitVariance;
  public int numEpochs;
  public int msecs;
  public int week;

/**
 * Default constructor for objects of class gpsDerivedState.
 */

public gpsDerivedState()
{}

/**
 * Creates an object of class gpsDerivedState.
 * @param     arg_msecOfGPSWeek The value of the msecOfGPSWeek component.
 * @param     arg_GPSWeek The value of the GPSWeek component.
 * @param     arg_numSVSTracked The value of the numSVSTracked component.
 * @param     arg_numSVSVisible The value of the numSVSVisible component.
 * @param     arg_userDatumNorthOrX The value of the userDatumNorthOrX component.
 * @param     arg_userDatumEastOrY The value of the userDatumEastOrY component.
 * @param     arg_userDatumUporZ The value of the userDatumUporZ component.
 * @param     arg_velocityFlags The value of the velocityFlags component.
 * @param     arg_horizVelocity The value of the horizVelocity component.
 * @param     arg_heading The value of the heading component.
 * @param     arg_positionRMSError The value of the positionRMSError component.
 * @param     arg_positionDOP The value of the positionDOP component.
 * @param     arg_sigmaEast The value of the sigmaEast component.
 * @param     arg_sigmaNorth The value of the sigmaNorth component.
 * @param     arg_eastNorthCovar The value of the eastNorthCovar component.
 * @param     arg_sigmaUp The value of the sigmaUp component.
 * @param     arg_sigmaOrientation The value of the sigmaOrientation component.
 * @param     arg_unitVariance The value of the unitVariance component.
 * @param     arg_numEpochs The value of the numEpochs component.
 * @param     arg_msecs The value of the msecs component.
 * @param     arg_week The value of the week component.
 */

public gpsDerivedState(int arg_msecOfGPSWeek, int arg_GPSWeek, int arg_numSVSTracked, int arg_numSVSVisible, double arg_userDatumNorthOrX, double arg_userDatumEastOrY, double arg_userDatumUporZ, int arg_velocityFlags, float arg_horizVelocity, float arg_heading, float arg_positionRMSError, double arg_positionDOP, float arg_sigmaEast, float arg_sigmaNorth, float arg_eastNorthCovar, float arg_sigmaUp, float arg_sigmaOrientation, float arg_unitVariance, int arg_numEpochs, int arg_msecs, int arg_week)
{
  msecOfGPSWeek = arg_msecOfGPSWeek;
  GPSWeek = arg_GPSWeek;
  numSVSTracked = arg_numSVSTracked;
  numSVSVisible = arg_numSVSVisible;
  userDatumNorthOrX = arg_userDatumNorthOrX;
  userDatumEastOrY = arg_userDatumEastOrY;
  userDatumUporZ = arg_userDatumUporZ;
  velocityFlags = arg_velocityFlags;
  horizVelocity = arg_horizVelocity;
  heading = arg_heading;
  positionRMSError = arg_positionRMSError;
  positionDOP = arg_positionDOP;
  sigmaEast = arg_sigmaEast;
  sigmaNorth = arg_sigmaNorth;
  eastNorthCovar = arg_eastNorthCovar;
  sigmaUp = arg_sigmaUp;
  sigmaOrientation = arg_sigmaOrientation;
  unitVariance = arg_unitVariance;
  numEpochs = arg_numEpochs;
  msecs = arg_msecs;
  week = arg_week;
}

/**
 * Encodes an object of class gpsDerivedState in compliance to RFC 1832 (XDR).
 * @param     xdrs The XDR output stream.
 */

public void xdr_encode(XDRStream xdrs)
{
  xdrs.xdr_encode_int(msecOfGPSWeek);
  xdrs.xdr_encode_int(GPSWeek);
  xdrs.xdr_encode_int(numSVSTracked);
  xdrs.xdr_encode_int(numSVSVisible);
  xdrs.xdr_encode_double(userDatumNorthOrX);
  xdrs.xdr_encode_double(userDatumEastOrY);
  xdrs.xdr_encode_double(userDatumUporZ);
  xdrs.xdr_encode_int(velocityFlags);
  xdrs.xdr_encode_float(horizVelocity);
  xdrs.xdr_encode_float(heading);
  xdrs.xdr_encode_float(positionRMSError);
  xdrs.xdr_encode_double(positionDOP);
  xdrs.xdr_encode_float(sigmaEast);
  xdrs.xdr_encode_float(sigmaNorth);
  xdrs.xdr_encode_float(eastNorthCovar);
  xdrs.xdr_encode_float(sigmaUp);
  xdrs.xdr_encode_float(sigmaOrientation);
  xdrs.xdr_encode_float(unitVariance);
  xdrs.xdr_encode_int(numEpochs);
  xdrs.xdr_encode_int(msecs);
  xdrs.xdr_encode_int(week);
}

/**
 * Decodes an object of class gpsDerivedState in compliance to RFC 1832 (XDR).
 * @param     xdrs The XDR input stream.
 * @exception RPCError When the calls fails for any reason.
 */

public void xdr_decode(XDRStream xdrs) throws RPCError
{
  msecOfGPSWeek = xdrs.xdr_decode_int();
  GPSWeek = xdrs.xdr_decode_int();
  numSVSTracked = xdrs.xdr_decode_int();
  numSVSVisible = xdrs.xdr_decode_int();
  userDatumNorthOrX = xdrs.xdr_decode_double();
  userDatumEastOrY = xdrs.xdr_decode_double();
  userDatumUporZ = xdrs.xdr_decode_double();
  velocityFlags = xdrs.xdr_decode_int();
  horizVelocity = xdrs.xdr_decode_float();
  heading = xdrs.xdr_decode_float();
  positionRMSError = xdrs.xdr_decode_float();
  positionDOP = xdrs.xdr_decode_double();
  sigmaEast = xdrs.xdr_decode_float();
  sigmaNorth = xdrs.xdr_decode_float();
  eastNorthCovar = xdrs.xdr_decode_float();
  sigmaUp = xdrs.xdr_decode_float();
  sigmaOrientation = xdrs.xdr_decode_float();
  unitVariance = xdrs.xdr_decode_float();
  numEpochs = xdrs.xdr_decode_int();
  msecs = xdrs.xdr_decode_int();
  week = xdrs.xdr_decode_int();
}
}
