|
@@ -66,7 +66,7 @@ void vtd_pilot::UpdateVTD(const char *strdata, const unsigned int nSize, const u
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-void vtd_pilot::setOwnState(double x, double y, double z,double vx,double vy)
|
|
|
|
|
|
+void vtd_pilot::setOwnState(double x, double y, double z,double vx,double vy,double fheading)
|
|
{
|
|
{
|
|
sOwnObjectState.base.id = 1;
|
|
sOwnObjectState.base.id = 1;
|
|
sOwnObjectState.base.category = RDB_OBJECT_CATEGORY_PLAYER;
|
|
sOwnObjectState.base.category = RDB_OBJECT_CATEGORY_PLAYER;
|
|
@@ -87,7 +87,7 @@ void vtd_pilot::setOwnState(double x, double y, double z,double vx,double vy)
|
|
sOwnObjectState.base.pos.x = x;
|
|
sOwnObjectState.base.pos.x = x;
|
|
sOwnObjectState.base.pos.y = y;
|
|
sOwnObjectState.base.pos.y = y;
|
|
sOwnObjectState.base.pos.z = z;
|
|
sOwnObjectState.base.pos.z = z;
|
|
- sOwnObjectState.base.pos.h = 0.0;
|
|
|
|
|
|
+ sOwnObjectState.base.pos.h = fheading;
|
|
sOwnObjectState.base.pos.p = 0.0;
|
|
sOwnObjectState.base.pos.p = 0.0;
|
|
sOwnObjectState.base.pos.r = 0.0;
|
|
sOwnObjectState.base.pos.r = 0.0;
|
|
sOwnObjectState.base.pos.flags = RDB_COORD_FLAG_POINT_VALID | RDB_COORD_FLAG_ANGLES_VALID;
|
|
sOwnObjectState.base.pos.flags = RDB_COORD_FLAG_POINT_VALID | RDB_COORD_FLAG_ANGLES_VALID;
|
|
@@ -134,11 +134,12 @@ void vtd_pilot::threadego()
|
|
mmutex.unlock();
|
|
mmutex.unlock();
|
|
|
|
|
|
double x,y,z;
|
|
double x,y,z;
|
|
- CalcXY(xgpsimu.lat(),xgpsimu.lon(),mflat0,mflon0,x,y);
|
|
|
|
|
|
+ CalcXY(mflat0,mflon0,xgpsimu.lat(),xgpsimu.lon(),x,y);
|
|
double vx = xgpsimu.ve();
|
|
double vx = xgpsimu.ve();
|
|
double vy = xgpsimu.vn();
|
|
double vy = xgpsimu.vn();
|
|
z = 0;
|
|
z = 0;
|
|
- setOwnState(x,y,z,vx,vy);
|
|
|
|
|
|
+ double fheading = (90 - xgpsimu.heading())*M_PI/180.0;
|
|
|
|
+ setOwnState(x,y,z,vx,vy,fheading);
|
|
|
|
|
|
// RDB_OBJECT_STATE_t * pr = &sOwnObjectState;
|
|
// RDB_OBJECT_STATE_t * pr = &sOwnObjectState;
|
|
|
|
|