00001
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050 #include "conf_usb.h"
00051
00052
00053 #if USB_DEVICE_FEATURE == ENABLED
00054
00055 #include "usb_drv.h"
00056 #include "usb_descriptors.h"
00057 #include "usb_standard_request.h"
00058 #include "usb_specific_request.h"
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069 extern const void *pbuffer;
00070 extern U16 data_to_transfer;
00071
00072
00073
00074
00078 void usb_user_endpoint_init(U8 conf_nb)
00079 {
00080 (void)Usb_configure_endpoint(EP_TEMP_IN,
00081 EP_ATTRIBUTES_TEMP1,
00082 DIRECTION_IN,
00083 EP_SIZE_TEMP1,
00084 SINGLE_BANK);
00085
00086 (void)Usb_configure_endpoint(EP_TEMP_OUT,
00087 EP_ATTRIBUTES_TEMP2,
00088 DIRECTION_OUT,
00089 EP_SIZE_TEMP2,
00090 SINGLE_BANK);
00091 }
00092
00093
00100 Bool usb_user_read_request(U8 type, U8 request)
00101 {
00102 U8 descriptor_type;
00103 U8 string_type;
00104
00105 string_type = Usb_read_endpoint_data(EP_CONTROL, 8);
00106 descriptor_type = Usb_read_endpoint_data(EP_CONTROL, 8);
00107
00108 switch (request)
00109 {
00110 case GET_DESCRIPTOR:
00111 switch (descriptor_type)
00112 {
00113 default:
00114 break;
00115 }
00116 break;
00117
00118 case SET_CONFIGURATION:
00119 switch (descriptor_type)
00120 {
00121 default:
00122 break;
00123 }
00124 break;
00125
00126 default:
00127 break;
00128 }
00129
00130 return FALSE;
00131 }
00132
00133
00137 Bool usb_user_get_descriptor(U8 type, U8 string)
00138 {
00139 pbuffer = NULL;
00140
00141 switch (type)
00142 {
00143 case STRING_DESCRIPTOR:
00144 switch (string)
00145 {
00146 case LANG_ID:
00147 data_to_transfer = sizeof(usb_user_language_id);
00148 pbuffer = &usb_user_language_id;
00149 break;
00150
00151 case MAN_INDEX:
00152 data_to_transfer = sizeof(usb_user_manufacturer_string_descriptor);
00153 pbuffer = &usb_user_manufacturer_string_descriptor;
00154 break;
00155
00156 case PROD_INDEX:
00157 data_to_transfer = sizeof(usb_user_product_string_descriptor);
00158 pbuffer = &usb_user_product_string_descriptor;
00159 break;
00160
00161 case SN_INDEX:
00162 data_to_transfer = sizeof(usb_user_serial_number);
00163 pbuffer = &usb_user_serial_number;
00164 break;
00165
00166 default:
00167 break;
00168 }
00169 break;
00170
00171 default:
00172 break;
00173 }
00174
00175 return pbuffer != NULL;
00176 }
00177
00178
00179 #endif // USB_DEVICE_FEATURE == ENABLED