コード例 #1
0
device_status_t
test_dump_memory (const char* filename)
{
	device_t *device = NULL;

	message ("uwatec_smart_device_open\n");
	device_status_t rc = uwatec_smart_device_open (&device);
	if (rc != DEVICE_STATUS_SUCCESS) {
		WARNING ("Cannot open device.");
		return rc;
	}

	message ("device_version\n");
	unsigned char version[UWATEC_SMART_VERSION_SIZE] = {0};
	rc = device_version (device, version, sizeof (version));
	if (rc != DEVICE_STATUS_SUCCESS) {
		WARNING ("Cannot identify computer.");
		device_close (device);
		return rc;
	}

	dc_buffer_t *buffer = dc_buffer_new (0);

	message ("device_dump\n");
	rc = device_dump (device, buffer);
	if (rc != DEVICE_STATUS_SUCCESS) {
		WARNING ("Cannot read memory.");
		dc_buffer_free (buffer);
		device_close (device);
		return rc;
	}

	message ("Dumping data\n");
	FILE* fp = fopen (filename, "wb");
	if (fp != NULL) {
		fwrite (dc_buffer_get_data (buffer), sizeof (unsigned char), dc_buffer_get_size (buffer), fp);
		fclose (fp);
	}

	dc_buffer_free (buffer);

	message ("device_close\n");
	rc = device_close (device);
	if (rc != DEVICE_STATUS_SUCCESS) {
		WARNING ("Cannot close device.");
		return rc;
	}

	return DEVICE_STATUS_SUCCESS;
}
コード例 #2
0
device_status_t
test_dump_memory (const char* name, const char* filename)
{
    device_t *device = NULL;

    message ("oceanic_atom2_device_open\n");
    device_status_t rc = oceanic_atom2_device_open (&device, name);
    if (rc != DEVICE_STATUS_SUCCESS) {
        WARNING ("Error opening serial port.");
        return rc;
    }

    dc_buffer_t *buffer = dc_buffer_new (0);

    message ("device_dump\n");
    rc = device_dump (device, buffer);
    if (rc != DEVICE_STATUS_SUCCESS) {
        WARNING ("Cannot read memory.");
        dc_buffer_free (buffer);
        device_close (device);
        return rc;
    }

    message ("Dumping data\n");
    FILE* fp = fopen (filename, "wb");
    if (fp != NULL) {
        fwrite (dc_buffer_get_data (buffer), sizeof (unsigned char), dc_buffer_get_size (buffer), fp);
        fclose (fp);
    }

    dc_buffer_free (buffer);

    message ("device_foreach\n");
    rc = device_foreach (device, NULL, NULL);
    if (rc != DEVICE_STATUS_SUCCESS) {
        WARNING ("Cannot read dives.");
        device_close (device);
        return rc;
    }

    message ("device_close\n");
    rc = device_close (device);
    if (rc != DEVICE_STATUS_SUCCESS) {
        WARNING ("Cannot close device.");
        return rc;
    }

    return DEVICE_STATUS_SUCCESS;
}
コード例 #3
0
device_status_t
test_dump_memory (const char* name, const char* filename)
{
	device_t *device = NULL;

	message ("reefnet_sensuspro_device_open\n");
	device_status_t rc = reefnet_sensuspro_device_open (&device, name);
	if (rc != DEVICE_STATUS_SUCCESS) {
		WARNING ("Error opening serial port.");
		return rc;
	}

	time_t now = time (NULL);
	char datetime[21] = {0};
	strftime (datetime, sizeof (datetime), "%Y-%m-%dT%H:%M:%SZ", gmtime (&now));
	message ("time=%lu (%s)\n", (unsigned long)now, datetime);

	dc_buffer_t *buffer = dc_buffer_new (0);

	message ("device_dump\n");
	rc = device_dump (device, buffer);
	if (rc != DEVICE_STATUS_SUCCESS) {
		WARNING ("Cannot read memory.");
		dc_buffer_free (buffer);
		device_close (device);
		return rc;
	}

	message ("Dumping data\n");
	FILE* fp = fopen (filename, "wb");
	if (fp != NULL) {
		fwrite (dc_buffer_get_data (buffer), sizeof (unsigned char), dc_buffer_get_size (buffer), fp);
		fclose (fp);
	}

	dc_buffer_free (buffer);

	message ("device_close\n");
	rc = device_close (device);
	if (rc != DEVICE_STATUS_SUCCESS) {
		WARNING ("Cannot close device.");
		return rc;
	}

	return DEVICE_STATUS_SUCCESS;
}
コード例 #4
0
ファイル: shell.c プロジェクト: powertang/yard-ice
int cmd_sensor(FILE * f, int argc, char ** argv)
{
	int addr;

	if (argc < 2)
		return SHELL_ERR_ARG_MISSING;

	if (argc > 4)
		return SHELL_ERR_EXTRA_ARGS;

	addr = strtoul(argv[1], NULL, 0);
	if (addr > 160)
		return SHELL_ERR_ARG_INVALID;

	if (argc > 2) {
		if (argc > 3)
			return device_attr_set(false, addr, argv[2], argv[3]);
		return device_attr_print(f, false, addr, argv[2]);
	} else {
		device_dump(f, false, addr);
	}

	return 0;
}