#include <locations.h>
#include <location_bounds.h>
#include <location_batch.h>
+#include <unistd.h>
+
static location_manager_h manager;
static GMainLoop *g_mainloop = NULL;
if (ret != LOCATIONS_ERROR_NONE) {
fprintf(stderr, " Fail: location_manager_get_position ---> %d \n", ret);
} else {
- fprintf(stderr, "[%ld] alt: %g, lat %g, long %g\n", timestamp, altitude, latitude, longitude);
+ fprintf(stderr, "[%ld] lat: %f, lng: %f, alt: %f\n", timestamp, latitude, longitude, altitude);
}
location_accuracy_level_e level;
if (ret != LOCATIONS_ERROR_NONE) {
fprintf(stderr, " Fail: location_manager_get_accuracy ---> %d \n", ret);
} else {
- fprintf(stderr, "Level: %d, horizontal: %g, vertical %g\n", level, horizontal, vertical);
+ fprintf(stderr, "Level: %d, horizontal: %f, vertical %f\n", level, horizontal, vertical);
}
#if 0
char *nmea;
void _position_updated_cb(double latitude, double longitude, double altitude, time_t timestamp, void *user_data)
{
fprintf(stderr, "-------------------------- position updated --------------------------\n");
- fprintf(stderr, "[%ld] lat[%f] lon[%f] alt[%f]\n", timestamp, latitude, longitude, altitude);
+ fprintf(stderr, "[%ld] lat: %f, lng: %f, alt: %f\n", timestamp, latitude, longitude, altitude);
location_manager_h lm = (location_manager_h) user_data;
location_accuracy_level_e level;
if (ret != LOCATIONS_ERROR_NONE) {
fprintf(stderr, " Fail: location_manager_get_accuracy ---> %d \n", ret);
} else {
- fprintf(stderr, "Level: %d, horizontal: %g, vertical %g\n", level, horizontal, vertical);
+ fprintf(stderr, "Level: %d, horizontal: %f, vertical %f\n", level, horizontal, vertical);
}
repeat_count++;
- if (repeat_count > 2) {
+ if (repeat_count > 9) {
test_timer = g_timeout_add_seconds(1, wait_test, NULL);
}
}
repeat_count++;
- if (repeat_count > 2) {
+ if (repeat_count > 5) {
test_timer = g_timeout_add_seconds(1, wait_test, NULL);
}
}
fprintf(stderr, "gps: %d, ", is_enabled);
location_manager_is_enabled_method(LOCATIONS_METHOD_WPS, &is_enabled);
- fprintf(stderr, "wps: %d\n", is_enabled);
+ fprintf(stderr, "wps: %d, ", is_enabled);
+
+ /* location_manager_is_test_location_enabled(&is_enabled); */
+ location_manager_is_enabled_method(LOCATIONS_METHOD_MOCK, &is_enabled);
+ fprintf(stderr, "mock: %d\n", is_enabled);
}
static int enable_method(location_method_e method, bool enable)
return ret;
}
+static int test_clear_mock_location(gpointer user_data)
+{
+ location_manager_h manager = (location_manager_h) user_data;
+ int ret = 0;
+
+ ret = location_manager_clear_mock_location(manager);
+ fprintf(stderr, "\n==== location_manager_clear_mock_location: %d ====\n\n", ret);
+
+ /*
+ int state = 0;
+ ret = location_manager_get_service_state(manager, &state);
+ fprintf(stderr, "the current state: %d, ret = %d\n", state, ret);
+ */
+
+ return FALSE;
+}
+
+
+static int test_set_mock_location(gpointer user_data)
+{
+ location_manager_h manager = (location_manager_h) user_data;
+ int ret = 0;
+
+ /*
+ int state = 0;
+ ret = location_manager_get_service_state(manager, &state);
+ fprintf(stderr, "the current state: %d, ret = %d\n", state, ret);
+ */
+
+ ret = location_manager_set_mock_location(manager, 20, 20, 0, 40, 50, 100);
+ fprintf(stderr, "\n==== location_manager_set_location: %d ====\n\n", ret);
+ if (ret != LOCATIONS_ERROR_NONE) {
+ g_timeout_add_seconds(3, test_clear_mock_location, manager);
+ }
+
+ return FALSE;
+}
+
static void print_menu()
{
fprintf(stderr, "============= LOCATION TEST =============\n");
fprintf(stderr, "[22] Distance based location update: LOCATIONS_METHOD_GPS\n");
fprintf(stderr, "[23] Distance based location update: LOCATIONS_METHOD_WPS\n\n");
fprintf(stderr, "[31] Location batch update: LOCATIONS_METHOD_GPS\n\n");
- fprintf(stderr, "[41] Turn on/off method: LOCATIONS_METHOD_HYBRID\n");
- fprintf(stderr, "[42] Turn on/off method: LOCATIONS_METHOD_GPS\n");
- fprintf(stderr, "[43] Turn on/off method: LOCATIONS_METHOD_WPS\n\n");
- fprintf(stderr, "[51] Boundary Test\n\n");
+ fprintf(stderr, "[41] Turn on/off mock test: LOCATIONS_METHOD_MOCK\n");
+ fprintf(stderr, "[42] Set & Clear location: LOCATIONS_METHOD_HYBRID\n\n");
+ fprintf(stderr, "[51] Turn on/off method: LOCATIONS_METHOD_HYBRID\n");
+ fprintf(stderr, "[52] Turn on/off method: LOCATIONS_METHOD_GPS\n");
+ fprintf(stderr, "[53] Turn on/off method: LOCATIONS_METHOD_WPS\n\n");
+ fprintf(stderr, "[61] Boundary Test\n\n");
fprintf(stderr, "[0] Exit!!!\n\n");
fprintf(stderr, "Select menu: ");
fprintf(stderr, " Input batch period ==> ");
ret = scanf("%d", &period);
-
ret = location_manager_create(LOCATIONS_METHOD_GPS, &manager);
fprintf(stderr, "location_manager_create (method : %d)\n", LOCATIONS_METHOD_GPS);
fprintf(stderr, "start_batch: %d\n", ret);
break;
}
- case 41:
- case 42:
- case 43: {
- int method = menu - 41;
+ case 41: {
+ basic = 1;
+ int onoff = 1;
+
+ fprintf(stderr, "\n Mock Location (ON: 1 or OFF: 0) Input ==> ");
+ ret = scanf("%d", &onoff);
+
+ ret = location_manager_enable_mock_location(onoff);
+ fprintf(stderr, "Enabling mock test: ret=%d\n", ret);
+
+ ret = location_manager_create(LOCATIONS_METHOD_MOCK, &manager);
+ fprintf(stderr, "location_manager_create (method: %d): %d\n", LOCATIONS_METHOD_MOCK, ret);
+
+ ret = location_manager_set_mock_location(manager, 10, 20, 0, 40, 50, 100);
+ fprintf(stderr, "location_manager_set_mock_location: %d\n", ret);
+ if (ret == LOCATIONS_ERROR_SETTING_OFF) {
+ fprintf(stderr, "Setting for Mock Location is turned OFF!!!\n");
+ break;
+ }
+
+ ret = location_manager_start(manager);
+ fprintf(stderr, "start: %d\n", ret);
+
+ g_timeout_add_seconds(3, test_clear_mock_location, manager);
+
+ g_timeout_add_seconds(10, wait_test, NULL);
+
+ break;
+ }
+ case 42: {
+ basic = 1;
+
+ ret = location_manager_create(LOCATIONS_METHOD_HYBRID, &manager);
+ fprintf(stderr, "location_manager_create (method: %d): %d\n", LOCATIONS_METHOD_HYBRID, ret);
+
+ ret = location_manager_start(manager);
+ fprintf(stderr, "start: %d\n", ret);
+
+ /*
+ int state = 0;
+ ret = location_manager_get_service_state(manager, &state);
+ fprintf(stderr, "the current state: %d, ret = %d\n", state, ret);
+ */
+
+ g_timeout_add_seconds(5, test_set_mock_location, manager);
+
+ break;
+ }
+ case 51:
+ case 52:
+ case 53: {
+ int method = menu - 51;
int onoff = 1;
fprintf(stderr, "\n Input ON: 1 or OFF: 0 ==> ");
ret = scanf("%d", &onoff);
- ret = enable_method(method, onoff);
- fprintf(stderr, "Enabling method: [%d], ret=%d\n", method, ret);
+ if (onoff == 0 || onoff == 1) {
+ ret = enable_method(method, onoff);
+ fprintf(stderr, "Enabling method: [%d], ret=%d\n", method, ret);
+ }
break;
}
-
- case 51: {
+ case 61: {
location_bounds_h hPolyLocationBound = NULL;
bool bIsContained = false;
int nPolySize = 3;
return 0;
}
- if (menu < 40) {
+ if (menu > 0 && menu < 50) {
ret = location_manager_set_service_state_changed_cb(manager, _state_change_cb, (void *)manager);
fprintf(stderr, "set_service_state_changed_cb: %d\n", ret);