int Context::open(const std::string& description) { int ret = ftdi_usb_open_string(d->ftdi, description.c_str()); if (ret < 0) return ret; return get_strings_and_reopen(); }
int main(int argc, char *argv[]) { int ret; struct ftdi_context ftdic; struct adapter *adap; struct adapter_ops *ops; ops = &v2_ops; if (argc == 2 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help"))) print_usage(argv[0]); if (ftdi_init(&ftdic) < 0) { fprintf(stderr, "ftdi_init failed\n"); return EXIT_FAILURE; } ftdi_set_interface(&ftdic, ops->interface); if (argc > 1 && strchr(argv[1],':')) { ret = ftdi_usb_open_string(&ftdic, argv[1]); argv++; argc--; } else ret = ftdi_usb_open_desc(&ftdic, 0x0403, 0x6010, ops->desc, NULL); if (ret < 0) { fprintf(stderr, "unable to open ftdi device: %d (%s)\n", ret, ftdi_get_error_string(&ftdic)); return EXIT_FAILURE; } adap = adapter_attach(&ftdic, ops, 0); if (!adap) { perror("attach"); return EXIT_FAILURE; } if (argc < 2) { short shunt_v; int shunt_v_sh; unsigned int bus_v; double shunt; double bus; double r = 0.050; double current; double power; unsigned char cmdbuf[] = {1, 2}; unsigned char msgbuf[2][2]; struct i2c_msg msgs[] = { { .addr = ADDR, .len = 1, .buf = cmdbuf }, { .addr = ADDR, .flags = I2C_M_RD, .len = 2, .buf = msgbuf[0] },