本文整理汇总了C++中NMEAInfo::Reset方法的典型用法代码示例。如果您正苦于以下问题:C++ NMEAInfo::Reset方法的具体用法?C++ NMEAInfo::Reset怎么用?C++ NMEAInfo::Reset使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NMEAInfo
的用法示例。
在下文中一共展示了NMEAInfo::Reset方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv)
{
NarrowString<1024> usage;
usage = "DRIVER\n\n"
"Where DRIVER is one of:";
{
const DeviceRegister *driver;
for (unsigned i = 0; (driver = GetDriverByIndex(i)) != nullptr; ++i) {
WideToUTF8Converter driver_name(driver->name);
usage.AppendFormat("\n\t%s", (const char *)driver_name);
}
}
Args args(argc, argv, usage);
tstring driver_name = args.ExpectNextT();
args.ExpectEnd();
driver = FindDriverByName(driver_name.c_str());
if (driver == nullptr) {
_ftprintf(stderr, _T("No such driver: %s\n"), driver_name.c_str());
return 1;
}
DeviceConfig config;
config.Clear();
NullPort port;
Device *device = driver->CreateOnPort != nullptr
? driver->CreateOnPort(config, port)
: nullptr;
NMEAParser parser;
NMEAInfo data;
data.Reset();
char buffer[1024];
while (fgets(buffer, sizeof(buffer), stdin) != nullptr) {
StripRight(buffer);
if (device == nullptr || !device->ParseNMEA(buffer, data))
parser.ParseLine(buffer, data);
}
Dump(data);
return EXIT_SUCCESS;
}
示例2: fixed
static void
TestLXV7()
{
NullPort null;
Device *device = lx_driver.CreateOnPort(dummy_config, null);
ok1(device != NULL);
NMEAInfo basic;
basic.Reset();
basic.clock = fixed(1);
LXDevice &lx_device = *(LXDevice *)device;
lx_device.ResetDeviceDetection();
ok1(device->ParseNMEA("$PLXVF,,1.00,0.87,-0.12,-0.25,90.2,244.3,*64", basic));
ok1(basic.netto_vario_available);
ok1(equals(basic.netto_vario, -0.25));
ok1(basic.airspeed_available);
ok1(equals(basic.indicated_airspeed, 90.2));
ok1(basic.pressure_altitude_available);
ok1(equals(basic.pressure_altitude, 244.3));
ok1(lx_device.IsV7());
lx_device.ResetDeviceDetection();
ok1(device->ParseNMEA("$PLXVS,23.1,0,12.3,*71", basic));
ok1(basic.temperature_available);
ok1(equals(basic.temperature, 296.25));
ok1(basic.switch_state.flight_mode == SwitchState::FlightMode::CIRCLING);
ok1(basic.voltage_available);
ok1(equals(basic.voltage, 12.3));
ok1(lx_device.IsV7());
delete device;
}
示例3: f
static bool
test_replay()
{
Directory::Create(Path(_T("output/results")));
std::ofstream f("output/results/res-sample.txt");
GlidePolar glide_polar(4.0);
Waypoints waypoints;
AircraftState state_last;
TaskBehaviour task_behaviour;
task_behaviour.SetDefaults();
task_behaviour.auto_mc = true;
TaskManager task_manager(task_behaviour, waypoints);
TaskEventsPrint default_events(verbose);
task_manager.SetTaskEvents(default_events);
glide_polar.SetBallast(1.0);
task_manager.SetGlidePolar(glide_polar);
OrderedTask* t = task_load(task_behaviour);
if (t) {
task_manager.Commit(*t);
delete t;
task_manager.Resume();
} else {
return false;
}
// task_manager.get_task_advance().get_advance_state() = TaskAdvance::AUTO;
Error error;
FileLineReaderA *reader = new FileLineReaderA(replay_file, error);
if (reader->error()) {
delete reader;
fprintf(stderr, "%s\n", error.GetMessage());
return false;
}
ReplayLoggerSim sim(reader);
sim.state.netto_vario = 0;
bool do_print = verbose;
unsigned print_counter=0;
NMEAInfo basic;
basic.Reset();
while (sim.Update(basic) && !sim.started) {
}
state_last = sim.state;
sim.state.wind.norm = 7;
sim.state.wind.bearing = Angle::Degrees(330);
auto time_last = sim.state.time;
// uncomment this to manually go to first tp
// task_manager.incrementActiveTaskPoint(1);
FlyingComputer flying_computer;
flying_computer.Reset();
FlyingState flying_state;
flying_state.Reset();
while (sim.Update(basic)) {
if (sim.state.time>time_last) {
n_samples++;
flying_computer.Compute(glide_polar.GetVTakeoff(),
sim.state, sim.state.time - time_last,
flying_state);
sim.state.flying = flying_state.flying;
task_manager.Update(sim.state, state_last);
task_manager.UpdateIdle(sim.state);
task_manager.UpdateAutoMC(sim.state, 0);
task_manager.SetTaskAdvance().SetArmed(true);
state_last = sim.state;
if (verbose>1) {
sim.print(f);
f.flush();
}
if (do_print) {
PrintHelper::taskmanager_print(task_manager, sim.state);
}
do_print = (++print_counter % output_skip ==0) && verbose;
}
time_last = sim.state.time;
};
if (verbose) {
PrintDistanceCounts();
//.........这里部分代码省略.........
示例4: args
int
main(int argc, char *argv[])
{
Args args(argc, argv, "HOST KEY");
const char *host = args.ExpectNext();
const char *key = args.ExpectNext();
SocketAddress address;
if (!address.Lookup(host, "5597", SOCK_DGRAM)) {
fprintf(stderr, "Failed to look up: %s\n", host);
return EXIT_FAILURE;
}
#ifdef HAVE_SKYLINES_TRACKING_HANDLER
InitialiseIOThread();
#endif
SkyLinesTracking::Client client;
#ifdef HAVE_SKYLINES_TRACKING_HANDLER
client.SetIOThread(io_thread);
Handler handler;
client.SetHandler(&handler);
#endif
client.SetKey(ParseUint64(key, NULL, 16));
if (!client.Open(address)) {
fprintf(stderr, "Failed to create client\n");
return EXIT_FAILURE;
}
if (args.IsEmpty() || StringIsEqual(args.PeekNext(), "fix")) {
NMEAInfo basic;
basic.Reset();
basic.UpdateClock();
basic.time = fixed(1);
basic.time_available.Update(basic.clock);
return client.SendFix(basic) ? EXIT_SUCCESS : EXIT_FAILURE;
} else if (StringIsEqual(args.PeekNext(), "ping")) {
client.SendPing(1);
#ifdef HAVE_SKYLINES_TRACKING_HANDLER
handler.Wait();
#endif
} else if (StringIsEqual(args.PeekNext(), "traffic")) {
client.SendTrafficRequest(true, true);
#ifdef HAVE_SKYLINES_TRACKING_HANDLER
handler.Wait();
#endif
} else {
DebugReplay *replay = CreateDebugReplay(args);
if (replay == NULL)
return EXIT_FAILURE;
while (replay->Next()) {
client.SendFix(replay->Basic());
usleep(100000);
}
}
#ifdef HAVE_SKYLINES_TRACKING_HANDLER
client.Close();
DeinitialiseIOThread();
#endif
return EXIT_SUCCESS;
}
示例5: f
static bool
test_replay_retrospective()
{
Directory::Create(_T("output/results"));
std::ofstream f("output/results/res-sample.txt");
Waypoints waypoints;
WaypointReader w(waypoint_file.c_str(), 0);
if (!ok1(!w.Error())) {
printf("# waypoint file %s\n", waypoint_file.c_str());
skip(2, 0, "opening waypoint file failed");
return false;
}
NullOperationEnvironment operation;
if(!ok1(w.Parse(waypoints, operation))) {
skip(1, 0, "parsing waypoint file failed");
return false;
}
waypoints.Optimise();
ok1(!waypoints.IsEmpty());
Retrospective retro(waypoints);
retro.search_range = range_threshold;
retro.angle_tolerance = Angle::Degrees(autopilot_parms.bearing_noise);
FileLineReaderA *reader = new FileLineReaderA(replay_file.c_str());
if (reader->error()) {
delete reader;
return false;
}
waypoints.Optimise();
IgcReplay sim(reader);
NMEAInfo basic;
basic.Reset();
while (sim.Update(basic)) {
n_samples++;
if (retro.UpdateSample(basic.location)) {
std::ofstream g("output/results/res-retro.txt");
// report task
auto candidate_list = retro.getNearWaypointList();
for (auto it = candidate_list.begin(); it != candidate_list.end(); ++it) {
const Waypoint& wp = it->waypoint;
g << (double)wp.location.longitude.Degrees() << " "
<< (double)wp.location.latitude.Degrees() << " "
<< "\"" << wp.name << "\"\n";
}
}
f << (double)basic.time << " "
<< (double)basic.location.longitude.Degrees() << " "
<< (double)basic.location.latitude.Degrees() << "\n";
f.flush();
};
double d_ach, d_can;
retro.CalcDistances(d_ach, d_can);
printf("# distances %f %f\n", (double)d_ach, (double)d_can);
printf("# size %d\n", retro.getNearWaypointList().size());
return true;
}