Esempio n. 1
0
static void
modem_added (DBusGProxy *proxy, const char *path, gpointer user_data)
{
	GeoclueGsmlocMm *self = GEOCLUE_GSMLOC_MM (user_data);
	GeoclueGsmlocMmPrivate *priv = GEOCLUE_GSMLOC_MM_GET_PRIVATE (self);
	Modem *modem;

	if (!find_modem (self, path)) {
		modem = modem_new (priv->bus, path, self);
		priv->modems = g_slist_prepend (priv->modems, modem);
	}
}
Esempio n. 2
0
static void
modem_removed (DBusGProxy *proxy, const char *path, gpointer user_data)
{
	GeoclueGsmlocMm *self = GEOCLUE_GSMLOC_MM (user_data);
	GeoclueGsmlocMmPrivate *priv = GEOCLUE_GSMLOC_MM_GET_PRIVATE (self);
	Modem *modem;

	modem = find_modem (self, path);
	if (modem) {
		gboolean old_available = is_available (self);

		priv->modems = g_slist_remove (priv->modems, modem);
		modem_free (modem);
		if (is_available (self) != old_available)
			g_object_notify (G_OBJECT (self), "available");
	}
}
Esempio n. 3
0
static void
get_manager_ready (GDBusConnection *connection,
                   GAsyncResult *res,
                   GetModemContext *ctx)
{
    GetModemResults *results;

    results = g_new (GetModemResults, 1);
    results->manager = mmcli_get_manager_finish (res);
    results->object = find_modem (results->manager, ctx->modem_path);

    /* Set operation results */
    g_simple_async_result_set_op_res_gpointer (
        ctx->result,
        results,
        (GDestroyNotify)get_modem_results_free);

    get_modem_context_complete_and_free (ctx);
}
Esempio n. 4
0
MMObject *
mmcli_get_modem_sync (GDBusConnection *connection,
                      const gchar *modem_str,
                      MMManager **o_manager)
{
    MMManager *manager;
    MMObject *found;
    gchar *modem_path;

    manager = mmcli_get_manager_sync (connection);
    modem_path = get_modem_path (modem_str);
    found = find_modem (manager, modem_path);

    if (o_manager)
        *o_manager = manager;
    else
        g_object_unref (manager);
    g_free (modem_path);

    return found;
}
Esempio n. 5
0
int main(int argc, char *argv[])
{
	int ret_val = -1;
	int tries = 0;
	unsigned char settings[2];

	parse_command_line(argc, argv);

	while (ret_val != 0 && tries < 1) {
		tries++;
		ret_val = open_modem();
	}

	tries = 0;

	if (ret_val && !ignore_errors) {
		printf
		    ("Error opening modem, please run the program again\n");
		return finish_up(-1);
	}

	ret_val = -1;

	printf("Step 1 Find the modem\n");

	while (ret_val != 0 && tries < 1) {
		tries++;
		ret_val = find_modem();
	}

	tries = 0;

	if (ret_val && !ignore_errors) {
		printf
		    ("Error finding modem, please run the program again\n");
		return finish_up(-1);
	}

	ret_val = -1;

	// Steps 2-4 Get the modem settings

	while (tries < 3) {
		printf("Step %d get the modem settings\n", tries + 2);
		tries++;
		ret_val = settings_modem(settings);
	}

	tries = 0;

	if (ret_val && !ignore_errors) {
		printf
		    ("Error getting modem settings, please run the program again\n");
		return finish_up(-1);
	}

	ret_val = -1;


	if (settings[0] != 0x03 || settings[1] != 0x03) {
		if (debug)
			printf("Looks like modem needs resetting\n");
		reboot_modem();
		settings_modem(settings);
		settings_modem(settings);
	}

	ret_val = -1;

	// Step 5 Update basis

	printf("Step 5 updating the basis\n");

	while (ret_val != 0 && tries < 2) {
		tries++;
		ret_val = update_basis();
	}

	tries = 0;

	ret_val = -1;


	// Step 6 Update Modem

	printf("Step 6 updating the modem\n");

	while (ret_val != 0 && tries < 1) {
		tries++;
		ret_val = update_modem();
	}

	tries = 0;

	if (ret_val && !ignore_errors) {
		printf
		    ("Error updating modem, please run the program again\n");
		return finish_up(-1);
	}

	ret_val = -1;

	// Step 7 Get modem settings

	printf("Step 7 getting the modem settings\n");

	while (tries < 1) {
		tries++;
		ret_val = settings_modem(settings);
	}

	tries = 0;

	if (ret_val && !ignore_errors) {
		printf
		    ("Error getting modem settings, please run the program again\n");
		return finish_up(-1);
	}

	ret_val = -1;

	// Step 8 Get basis settings

	printf("Step 8 getting the basis settings\n");

	while (ret_val != 0 && tries < 2) {
		tries++;
		ret_val = settings_basis(settings);
	}

	tries = 0;

	if (ret_val && !ignore_errors) {
		printf
		    ("Error getting basis settings, please run the program again\n");
		return finish_up(-1);
	}

	ret_val = -1;

	// Step 9 and 10 Get modem settings

	while (tries < 2) {
		printf("Step %d, getting the modem settings\n", tries + 9);
		tries++;
		ret_val = settings_modem(settings);
	}

	tries = 0;

	if (ret_val && !ignore_errors) {
		printf
		    ("Error getting modem settings, please run the program again\n");
		return finish_up(-1);
	}

	ret_val = -1;

	// Step 11 Set basis filter

	printf("Step 11 setting the basis filter\n");

	while (ret_val != 0 && tries < 1) {
		tries++;
		ret_val = set_filter_basis();
	}

	tries = 0;

	if (ret_val && !ignore_errors) {
		printf
		    ("Error setting basis filter, please run the program again\n");
		return finish_up(-1);
	}

	ret_val = -1;

	// Step 12 Set modem filter

	printf("Step 12 setting the modem filter\n");

	while (ret_val != 0 && tries < 1) {
		tries++;
		ret_val = set_filter_modem();
	}

	tries = 0;

	if (ret_val && !ignore_errors) {
		printf
		    ("Error setting modem filter, please run the program again\n");
		return finish_up(-1);
	}

	ret_val = -1;

	// Step 13 Reboot basis

	printf("Step 13 rebooting basis \n");

	while (ret_val != 0 && tries < 1) {
		tries++;
		ret_val = reboot_basis();
	}

	tries = 0;

	if (ret_val && !ignore_errors) {
		printf
		    ("Error rebooting basis, please run the program again\n");
		return finish_up(-1);
	}

	ret_val = -1;

	// Step 14 Reboot modem

	printf("Step 14, rebooting the modem \n");

	while (ret_val != 0 && tries < 1) {
		tries++;
		ret_val = reboot_modem();
	}

	tries = 0;

	if (ret_val && !ignore_errors) {
		printf
		    ("Error rebooting modem, please run the program again\n");
		return finish_up(-1);
	}

	return finish_up(0);
}