#include "libusb_wrapper.h" #include #include 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"); /*Future code*/ printf("Finished\n"); } usbclose(context); return 0; }