예제 #1
0
파일: harp-netcdf.c 프로젝트: stcorp/harp
int harp_import_netcdf(const char *filename, harp_product **product)
{
    harp_product *new_product;
    netcdf_dimensions dimensions;
    int ncid;
    int result;

    if (filename == NULL)
    {
        harp_set_error(HARP_ERROR_INVALID_ARGUMENT, "filename is NULL (%s:%u)", __FILE__, __LINE__);
        return -1;
    }

    result = nc_open(filename, 0, &ncid);
    if (result != NC_NOERR)
    {
        harp_set_error(HARP_ERROR_NETCDF, "%s", nc_strerror(result));
        return -1;
    }

    if (verify_product(ncid) != 0)
    {
        nc_close(ncid);
        return -1;
    }

    if (harp_product_new(&new_product) != 0)
    {
        nc_close(ncid);
        return -1;
    }

    dimensions_init(&dimensions);

    if (read_product(ncid, new_product, &dimensions) != 0)
    {
        dimensions_done(&dimensions);
        harp_product_delete(new_product);
        nc_close(ncid);
        return -1;
    }

    dimensions_done(&dimensions);

    result = nc_close(ncid);
    if (result != NC_NOERR)
    {
        harp_set_error(HARP_ERROR_NETCDF, "%s", nc_strerror(result));
        harp_product_delete(new_product);
        return -1;
    }

    *product = new_product;
    return 0;
}
예제 #2
0
파일: vcc.c 프로젝트: koheik/vcctool
int main(int argc, char *argv[])
{
	int ret;
	int i;
	struct ftdi_context *ftdi;
	unsigned int chipid;
	unsigned char buf[256];
	track *tracks;
	int ntracks;


	ftdi = ftdi_new();
	ret = ftdi_usb_open(ftdi, 0x0403, 0xB70A);
	if (ret < -1) {
		fprintf(stderr, "unable to open ftdi device: %d (%s)\n",
				ret, ftdi_get_error_string(ftdi));
		return ret;
	}

	printf("type=%d\n", ftdi->type);
	ftdi_read_chipid(ftdi, &chipid);
	printf("chipid=%x\n", chipid);


	setup(ftdi);

	ftdi_setrts(ftdi, 1);
	while((ret = ftdi_read_data(ftdi, buf, 256)) > 0) {
		for(i = 0; i < ret; ++i)
			printf("%02X ", buf[i]);
	}
	ftdi_setrts(ftdi, 0);

	read_version(ftdi);
	read_product(ftdi);

	read_list(ftdi, &tracks, &ntracks);

	if (argc > 1) {
		i = atoi(argv[1]);
		printf("tracks[%d].no=%d\n", i, tracks[i].no);
		read_track_points(ftdi, &tracks[i], i);
	}
	free(tracks);

	ftdi_usb_close(ftdi);
	ftdi_free(ftdi);

	return 0;
}