int main(int argc, char **argv) { if (argc < 2) return usage(); const char *cmd = argv[1]; perish_if(libusb_init(NULL) < 0, "Couldn't init libusb"); libusb_device_handle *h = libusb_open_device_with_vid_pid(NULL, VENDOR_ID, PRODUCT_ID); perish_if(h == NULL, "couldn't find or open device. check permissions?"); perish_if(0 != libusb_claim_interface(h, 0), "couldn't claim interface"); printf("device opened successfully.\n"); signal(SIGINT, signal_handler); if (!strcmp(cmd, "stream")) stream(h); else if (!strcmp(cmd, "blink")) blink(h); else if (!strcmp(cmd, "spin")) spin(h); else if (!strcmp(cmd, "listen")) { ros::init(argc, argv, "roscar_driver"); roscar_listen(h); } libusb_exit(NULL); return 0; }
int main(int argc, char **argv) { if (argc < 2) return usage(); const char *cmd = argv[1]; perish_if(libusb_init(NULL) < 0, "Couldn't init libusb"); libusb_device_handle *h = libusb_open_device_with_vid_pid(NULL, VENDOR_ID, PRODUCT_ID); perish_if(h == NULL, "couldn't find device"); perish_if(0 != libusb_claim_interface(h, 0), "couldn't claim interface"); printf("device opened successfully.\n"); signal(SIGINT, signal_handler); if (!strcmp(cmd, "dump")) dump(h); else if (!strcmp(cmd, "burn") && argc >= 3) burn(h, argv[2]); else if (!strcmp(cmd, "configure")) configure(h); else if (!strcmp(cmd, "poe") && argc >= 3) poe_power(h, atoi(argv[2])); libusb_exit(NULL); return 0; }
int main(int argc, char **argv) { signal(SIGINT, signal_handler); if (argc != 2) usage(); const char *serial_device = argv[1]; LightweightSerial *port = new LightweightSerial(serial_device, 1000000); perish_if(!port, "Could't open the specified serial port"); uint8_t b = 0; while (port->is_ok() && !g_done) { if (port->read(&b)) { putc(b, stdout); fflush(stdout); } else usleep(1000); } return 0; }