/* * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /*!----------------------------------------------------------------------------- * @file commusb_api.h * @~english * @brief CommUSB I/F */ #ifndef COMMUNICATION_USB_CLIENT_INCLUDE_PERIPHERAL_SERVICE_COMMUSB_API_H_ #define COMMUNICATION_USB_CLIENT_INCLUDE_PERIPHERAL_SERVICE_COMMUSB_API_H_ #include #include /** @addtogroup BaseSystem * @{ */ /** @addtogroup peripheral_service * @ingroup BaseSystem * @{ */ /** @addtogroup communication_usb * @ingroup peripheral_service * @{ */ #ifdef __cplusplus extern "C" { #endif // __cplusplus /** * @~english Service Name of PS_CommUSB Thread */ #define LAN_SERVICE_COMMUSB_MAIN "PS_CommUSB" /** * @~english The maximum number of delivery entry */ #define COMMUSB_DELIVERY_DATA_MAX 0xFF /** * @~english Authentication info */ typedef enum { /** *@~english Authentication is NG */ COMMUSB_AUTH_NG = 0x00, /** *@~english Authentication is OK */ COMMUSB_AUTH_OK } COMMUSB_AUTH_INFO; /** * @~english Transmit class */ typedef enum { /** *@~english Individual transmission */ COMMUSB_TRANS_INDIVIDUAL = 0x00, /** *@~english Group broadcast transmission */ COMMUSB_TRANS_GROUP, /** *@~english Simultaneous broadcast transmission */ COMMUSB_TRANS_ALL } COMMUSB_TRANS_CLASS; /** * @~english Clear type of DeliveryEntry table (for debug) */ typedef enum { /** * @~english Clear all */ USB_CLEAR_TYPE_ALL = 0, /** * @~english Clear only table without wild card */ USB_CLEAR_TYPE_WITHOUT_WILDCARD, /** * @~english Clear only table with wild card */ USB_CLEAR_TYPE_WITH_WILDCARD, } USB_CLEAR_TYPE; /** * \ingroup USB_Auth_Info * \~english @par Brief * Set the authentication status of the service PS_CommUSB. * \~english @param [in] h_app * HANDLE - handle for application * \~english @param [in] auth_info * uint8_t - Authentication status,refer to @ref COMMUSB_AUTH_INFO * \~english @retval eFrameworkunifiedStatusOK success * \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle * \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full * \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor * \~english @retval eFrameworkunifiedStatusErrNoEINTR * An interrupt is generated by the system call (signal) * \~english @retval eFrameworkunifiedStatusNullPointer NULL pointer * \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter * \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size * \~english @retval eFrameworkunifiedStatusInvldBuf Invalid buffer * \~english @retval eFrameworkunifiedStatusBadConnection It can not be a socket connection * \~english @retval eFrameworkunifiedStatusFail Abnormal Error * (System error, Avaiability is FALSE, internal status error) * \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle * \~english @retval eFrameworkunifiedStatusInvldQName Illegal Message Queue name * \~english @retval eFrameworkunifiedStatusErrOther * Other error has occurred(Cannot access shared memory, etc.) * \~english @par Preconditons * - Availability of PS_CommUSB is TRUE and Authentication state is TRUE. * \~english @par Change of internal status * - Change of internal state according to the API does not occur * \~english @par Conditions of processing failure * - Input parameter error * - Parameter h_app is null * - eFrameworkunifiedStatusInvldHandle * - Parameter auth_info is invalid * - eFrameworkunifiedStatusInvldParam * - Internal process error * - Availability of PS_CommUSB is not TRUE * - The size of the message received by PS_CommUSB is illegal * - eFrameworkunifiedStatusFail * - Execute the process name is not ExtUnitAuth * - eFrameworkunifiedStatusMsgNotProcessed * - Internal process error(ns_framework error) * - eFrameworkunifiedStatusInvldHandle * - eFrameworkunifiedStatusMsgQFull * - eFrameworkunifiedStatusErrNoEBADF * - eFrameworkunifiedStatusErrNoEINTR * - eFrameworkunifiedStatusNullPointer * - eFrameworkunifiedStatusInvldBufSize * - eFrameworkunifiedStatusInvldBuf * - eFrameworkunifiedStatusBadConnection * - eFrameworkunifiedStatusFail * - eFrameworkunifiedStatusInvldHndlType * - eFrameworkunifiedStatusInvldQName * - eFrameworkunifiedStatusErrOther * \~english @par classification * Public * \~english @par Type * Method only * \~english @par Details * Set the authentication status for PS_CommUSB. * \~english @par * when using this API,please note the following points: * - The status of service PS_CommUSB and the availability of this * API, refer to PS_CommUSB available function list of BaseSystem * external specification. * - This API is designed for the ExtUnitAuth process, If it is used by * other process, return eFrameworkunifiedStatusMsgNotProcessed. * \~english @see None */ EFrameworkunifiedStatus USB_Auth_Info(HANDLE h_app, uint8_t auth_info); #ifdef __cplusplus } #endif // __cplusplus /** @}*/ // end of communication_usb /** @}*/ // end of peripheral_service /** @}*/ // end of BaseSystem #endif // COMMUNICATION_USB_CLIENT_INCLUDE_PERIPHERAL_SERVICE_COMMUSB_API_H_