for (i = 0; i < net->num_wheels; ++i ) {
SGPropertyNode *node = fgGetNode("/gear/gear", i, true);
net->wow[i] = node->getDoubleValue("wow");
+ net->gear_pos[i] = node->getDoubleValue("position-norm");
+ net->gear_steer[i] = node->getDoubleValue("steering-norm");
+ net->gear_compression[i] = node->getDoubleValue("compression-norm");
}
// the following really aren't used in this context
for ( i = 0; i < net->num_wheels; ++i ) {
net->wow[i] = htonl(net->wow[i]);
+ net->gear_pos[i] = htonl(net->gear_pos[i]);
+ net->gear_steer[i] = htonl(net->gear_steer[i]);
+ net->gear_compression[i] = htonl(net->gear_compression[i]);
}
net->num_wheels = htonl(net->num_wheels);
}
net->num_wheels = htonl(net->num_wheels);
- // I don't need to convert the Wow flags, since they are one
- // byte in size
+ for ( i = 0; i < net->num_wheels; ++i ) {
+ net->wow[i] = htonl(net->wow[i]);
+ net->gear_pos[i] = htonl(net->gear_pos[i]);
+ net->gear_steer[i] = htonl(net->gear_steer[i]);
+ net->gear_compression[i] = htonl(net->gear_compression[i]);
+ }
net->cur_time = ntohl(net->cur_time);
net->warp = ntohl(net->warp);
}
for (i = 0; i < net->num_wheels; ++i ) {
- SGPropertyNode * node
- = fgGetNode("/gear/gear", i, true);
+ SGPropertyNode * node = fgGetNode("/gear/gear", i, true);
node->setDoubleValue("wow", net->wow[i] );
+ node->setDoubleValue("position-norm", net->gear_pos[i] );
+ node->setDoubleValue("steering-norm", net->gear_steer[i] );
+ node->setDoubleValue("compression-norm", net->gear_compression[i] );
}
/* these are ignored for now ... */
#include <time.h> // time_t
-const int FG_NET_FDM_VERSION = 12;
+const int FG_NET_FDM_VERSION = 13;
// Define a structure containing the top level flight dynamics model
// Gear status
int num_wheels;
bool wow[FG_MAX_WHEELS];
+ float gear_pos[FG_MAX_WHEELS];
+ float gear_steer[FG_MAX_WHEELS];
+ float gear_compression[FG_MAX_WHEELS];
// Environment
time_t cur_time; // current unix time
// Gear status
for ( i = 0; i < fdm1.num_wheels; ++i ) {
- result.fdm.wow[i]
- = weight( fdm1.wow[i], fdm2.wow[i], ratio );
+ result.fdm.wow[i] = weight( fdm1.wow[i], fdm2.wow[i], ratio );
+ result.fdm.gear_pos[i]
+ = weight( fdm1.gear_pos[i], fdm2.gear_pos[i], ratio );
+ result.fdm.gear_steer[i]
+ = weight( fdm1.gear_steer[i], fdm2.gear_steer[i], ratio );
+ result.fdm.gear_compression[i]
+ = weight( fdm1.gear_compression[i], fdm2.gear_compression[i],
+ ratio );
}
// Environment