static void Load(const ProfileMap &map, SkyLinesTracking::Settings &settings) { map.Get(ProfileKeys::SkyLinesTrackingEnabled, settings.enabled); map.Get(ProfileKeys::SkyLinesRoaming, settings.roaming); map.Get(ProfileKeys::SkyLinesTrackingInterval, settings.interval); map.Get(ProfileKeys::SkyLinesTrafficEnabled, settings.traffic_enabled); const char *key = map.Get(ProfileKeys::SkyLinesTrackingKey); if (key != NULL) settings.key = ParseUint64(key, NULL, 16); }
static bool SaveKey(const RowFormWidget &form, unsigned idx, const char *profile_key, uint64_t &value_r) { const TCHAR *const s = form.GetValueString(idx); uint64_t value = ParseUint64(s, NULL, 16); if (value == value_r) return false; value_r = value; Profile::Set(profile_key, s); return true; }
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; }