//------------------------------------------------------------------------------ /// Handles CDC-specific SETUP requests. Should be called from a /// re-implementation of USBDCallbacks_RequestReceived() method. /// \param Pointer to a USBGenericRequest instance. //------------------------------------------------------------------------------ void CDCDSerialDriver_RequestHandler(const USBGenericRequest *request) { TRACE_INFO_WP("NewReq "); // Handle the request switch (USBGenericRequest_GetRequest(request)) { case CDCGenericRequest_SETLINECODING: CDCDSerialDriver_SetLineCoding(); break; case CDCGenericRequest_GETLINECODING: CDCDSerialDriver_GetLineCoding(); break; case CDCGenericRequest_SETCONTROLLINESTATE: CDCDSerialDriver_SetControlLineState( CDCSetControlLineStateRequest_ActivateCarrier(request), CDCSetControlLineStateRequest_IsDtePresent(request)); break; default: USBDDriver_RequestHandler(&(cdcdSerialDriver.usbdDriver), request); break; } }
//----------------------------------------------------------------------------- /// Handles CDC/ACM-specific USB requests sent by the host /// \param request Pointer to a USBGenericRequest instance. /// \return 0 if the request is Unsupported, 1 if the request handled. //----------------------------------------------------------------------------- unsigned char CDCDFunctionDriver_RequestHandler( const USBGenericRequest *request) { switch (USBGenericRequest_GetRequest(request)) { case CDCGenericRequest_SETLINECODING: CDCD_SetLineCoding(request); break; case CDCGenericRequest_GETLINECODING: CDCD_GetLineCoding(request); break; case CDCGenericRequest_SETCONTROLLINESTATE: CDCD_SetControlLineState(request, CDCSetControlLineStateRequest_ActivateCarrier(request), CDCSetControlLineStateRequest_IsDtePresent(request)); break; // Unsupported request default: return 0; } return 1; }