#include "libusb_wrapper.h" #include #include #define VID 1003 #define PID 8259 int main(int argc, char *argv[]){ printf("Hello World :-|\n"); libusb_context *context; usbinit(&context); #ifdef DEBUG libusb_set_option(context, LIBUSB_OPTION_LOG_LEVEL, LIBUSB_LOG_LEVEL_DEBUG); #endif if(argc>1){ //command mode if(strcmp(argv[1], "demo4.1") == 0) { //if 4.1 printf("\e[91mDemo 4.1\e[39m\n"); displayDevices(context); } else if(strcmp(argv[1], "demo4.1plus") == 0) { //if 4.1 bonus printf("\e[91mDemo 4.1\e[39m\n"); displayDevicesMore(context); } else if(strcmp(argv[1], "demo4.2") == 0){//if 4.2 printf("\e[91mDemo 4.2\e[39m\n"); if(argc > 3){ uint16_t vendor_id; uint16_t product_id; sscanf(argv[2], "%hu", &vendor_id); sscanf(argv[3], "%hu", &product_id); libusb_device_handle* handle; handle = libusb_open_device_with_vid_pid(context, vendor_id, product_id); if(handle != NULL){ printf("Show endpoints of VID:%hu;PID:%hu\n", vendor_id, product_id); displayDeviceEndpoints(handle); } else{ printf("Error while getting handle of VID:%hu;PID:%hu\n", vendor_id, product_id); } }else{ printf("Error, need VID and PID\n"); } }else{ printf("Wrong command\n"); } }else{ //interactive mode printf("Welcome to interactive mode\n"); printf("Compiled for VID:PID => %d:%d\n", VID, PID); //Find the device printf("Iterate list of devices, and getting the right one\n"); libusb_device *device = NULL; getFirstDeviceFromID(context, VID, PID, &device); //code if(device==NULL){ printf("Error : cannot find the device !\n"); return 1; } //Take the interfaces printf("Finished\n"); } usbclose(context); return 0; }