#ifndef ARDUINO #define ARDUINO #include #include #include #include #include #define ID_VENDOR 0x2341 #define ID_PRODUCT 0x01 #define ENDPOINTS_NUMBER 4 #define TIMEOUT 10 #define MAX_DATA 50 void init(libusb_context **context, libusb_device ***devices, ssize_t *devices_count); libusb_device* searchArduino(libusb_device **devices, ssize_t devices_count); void openConnection(libusb_device *arduino, libusb_device_handle **handle, struct libusb_config_descriptor **config_desc); void getEndpoints(struct libusb_config_descriptor *config_desc, struct libusb_endpoint_descriptor *endpoint_desc_list); void start(libusb_context **context, libusb_device ***devices, libusb_device_handle **handle, struct libusb_config_descriptor **config_desc, struct libusb_endpoint_descriptor *endpoint_desc_list); void stop(struct libusb_config_descriptor *config_desc, libusb_device_handle *handle, libusb_device **devices, libusb_context *context); void sendData(int endpoint_id, uint8_t data, libusb_device_handle *handle, struct libusb_endpoint_descriptor *endpoint_desc_list); void receiveData(int endpoint_id, uint8_t *data, libusb_device_handle *handle, struct libusb_endpoint_descriptor *endpoint_desc_list); #endif