summaryrefslogtreecommitdiffstats
path: root/stub/communication_usb/client/include/stub/commusb_api.h
blob: f602faacb4442164105625e38d093e2310d16e50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
/*
 * @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 <sys/types.h>
#include <native_service/frameworkunified_types.h>

/** @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_