1 | /*----------------------------------------------------------------------------
|
---|
2 | | File:
|
---|
3 | | vxlapi.h
|
---|
4 | | Project:
|
---|
5 | | Multi Bus driver for Win98/WinNT/Win2000/WinXP
|
---|
6 | |
|
---|
7 | | Description:
|
---|
8 | | Driver Interface Prototypes - customer version
|
---|
9 | |
|
---|
10 | |-----------------------------------------------------------------------------
|
---|
11 | | $Author: vissj $ $Date: 2011-12-15 12:20:48 +0100 (Do, 15 Dez 2011) $ $Revision: 14101 $
|
---|
12 | | $Id: vxlapi.h 14101 2011-12-15 11:20:48Z vissj $
|
---|
13 | |-----------------------------------------------------------------------------
|
---|
14 | | Copyright (c) 2010 by Vector Informatik GmbH. All rights reserved.
|
---|
15 | ----------------------------------------------------------------------------*/
|
---|
16 |
|
---|
17 |
|
---|
18 | #ifndef _V_XLAPI_H_
|
---|
19 | #define _V_XLAPI_H_
|
---|
20 |
|
---|
21 | #ifdef __cplusplus
|
---|
22 | extern "C" {
|
---|
23 | #endif
|
---|
24 |
|
---|
25 |
|
---|
26 | #define _XL_EXPORT_API __stdcall
|
---|
27 | #define _EXPORT_API __stdcall
|
---|
28 | #if defined (DYNAMIC_CANDRIVER_DLL) || defined (DYNAMIC_XLDRIVER_DLL)
|
---|
29 | #define _XL_EXPORT_DECL _XL_EXPORT_API
|
---|
30 | #define _XL_EXPORT_DEF _XL_EXPORT_API
|
---|
31 | #else
|
---|
32 | // not used for dynamic load of dll
|
---|
33 | #define _XL_EXPORT_DECL __declspec(dllimport) _XL_EXPORT_API
|
---|
34 | #define _XL_EXPORT_DEF __declspec(dllimport) _XL_EXPORT_API
|
---|
35 | #endif
|
---|
36 |
|
---|
37 |
|
---|
38 |
|
---|
39 | // Functions have the following parameters
|
---|
40 | #define DEFPARAMS XLportHandle portHandle, XLaccess accessMask, XLuserHandle userHandle
|
---|
41 | // Almost all xlFr... Functions have the following parameters
|
---|
42 | #define DEFFRPARAM XLportHandle portHandle, XLaccess accessMask
|
---|
43 |
|
---|
44 | // Marcos for interface definition and implementation
|
---|
45 | #ifdef DYNAMIC_XLDRIVER_DLL
|
---|
46 |
|
---|
47 | #ifdef DO_NOT_DEFINE_EXTERN_DECLARATION
|
---|
48 |
|
---|
49 | // All DECL_STDXL_FUNC have return type XLstatus
|
---|
50 | #define DECL_STDXL_FUNC(apiname, apitype, args) \
|
---|
51 | typedef XLstatus (_XL_EXPORT_API *apitype) args
|
---|
52 |
|
---|
53 | #else // DO_NOT_DEFINE_EXTERN_DECLARATION
|
---|
54 |
|
---|
55 | #define DECL_STDXL_FUNC(apiname, apitype, args) \
|
---|
56 | typedef XLstatus (_XL_EXPORT_API *apitype) args; \
|
---|
57 | extern apitype apiname
|
---|
58 |
|
---|
59 | #endif // DO_NOT_DEFINE_EXTERN_DECLARATION
|
---|
60 |
|
---|
61 | #else // DYNAMIC_XLDRIVER_DLL
|
---|
62 |
|
---|
63 | // All DECL_STDXL_FUNC have return type XLstatus
|
---|
64 | #define DECL_STDXL_FUNC(apiname, apitype, args) \
|
---|
65 | XLstatus _XL_EXPORT_DECL apiname args
|
---|
66 | #define IMPL_STDXL_FUNC(apiname, args) \
|
---|
67 | XLstatus _XL_EXPORT_DEF apiname args
|
---|
68 |
|
---|
69 | #endif // DYNAMIC_XLDRIVER_DLL
|
---|
70 |
|
---|
71 | // the pshpack1.h which is shipped with BCB 6 has
|
---|
72 | // some problem with one byte alignment. So we use the pragma
|
---|
73 | #if (__BORLANDC__ >= 0x0560)
|
---|
74 | #pragma pack(push,1)
|
---|
75 | #else
|
---|
76 | #include <pshpack1.h>
|
---|
77 | #endif
|
---|
78 |
|
---|
79 |
|
---|
80 | //------------------------------------------------------------------------------
|
---|
81 | // Transceiver types
|
---|
82 | //------------------------------------------------------------------------------
|
---|
83 | // CAN Cab
|
---|
84 | #define XL_TRANSCEIVER_TYPE_NONE 0x0000
|
---|
85 | #define XL_TRANSCEIVER_TYPE_CAN_251 0x0001
|
---|
86 | #define XL_TRANSCEIVER_TYPE_CAN_252 0x0002
|
---|
87 | #define XL_TRANSCEIVER_TYPE_CAN_DNOPTO 0x0003
|
---|
88 | #define XL_TRANSCEIVER_TYPE_CAN_SWC_PROTO 0x0005 //!< Prototype. Driver may latch-up.
|
---|
89 | #define XL_TRANSCEIVER_TYPE_CAN_SWC 0x0006
|
---|
90 | #define XL_TRANSCEIVER_TYPE_CAN_EVA 0x0007
|
---|
91 | #define XL_TRANSCEIVER_TYPE_CAN_FIBER 0x0008
|
---|
92 | #define XL_TRANSCEIVER_TYPE_CAN_1054_OPTO 0x000B //!< 1054 with optical isolation
|
---|
93 | #define XL_TRANSCEIVER_TYPE_CAN_SWC_OPTO 0x000C //!< SWC with optical isolation
|
---|
94 | #define XL_TRANSCEIVER_TYPE_CAN_B10011S 0x000D //!< B10011S truck-and-trailer
|
---|
95 | #define XL_TRANSCEIVER_TYPE_CAN_1050 0x000E //!< 1050
|
---|
96 | #define XL_TRANSCEIVER_TYPE_CAN_1050_OPTO 0x000F //!< 1050 with optical isolation
|
---|
97 | #define XL_TRANSCEIVER_TYPE_CAN_1041 0x0010 //!< 1041
|
---|
98 | #define XL_TRANSCEIVER_TYPE_CAN_1041_OPTO 0x0011 //!< 1041 with optical isolation
|
---|
99 | #define XL_TRANSCEIVER_TYPE_LIN_6258_OPTO 0x0017 //!< Vector LINcab 6258opto with transceiver Infineon TLE6258
|
---|
100 | #define XL_TRANSCEIVER_TYPE_LIN_6259_OPTO 0x0019 //!< Vector LINcab 6259opto with transceiver Infineon TLE6259
|
---|
101 | #define XL_TRANSCEIVER_TYPE_DAIO_8444_OPTO 0x001D //!< Vector IOcab 8444 (8 dig.Inp.; 4 dig.Outp.; 4 ana.Inp.; 4 ana.Outp.)
|
---|
102 | #define XL_TRANSCEIVER_TYPE_CAN_1041A_OPTO 0x0021 //!< 1041A with optical isolation
|
---|
103 | #define XL_TRANSCEIVER_TYPE_LIN_6259_MAG 0x0023 //!< LIN transceiver 6259, with transceiver Infineon TLE6259, magnetically isolated, stress functionality
|
---|
104 | #define XL_TRANSCEIVER_TYPE_LIN_7259_MAG 0x0025 //!< LIN transceiver 7259, with transceiver Infineon TLE7259, magnetically isolated, stress functionality
|
---|
105 | #define XL_TRANSCEIVER_TYPE_LIN_7269_MAG 0x0027 //!< LIN transceiver 7269, with transceiver Infineon TLE7269, magnetically isolated, stress functionality
|
---|
106 | #define XL_TRANSCEIVER_TYPE_CAN_1054_MAG 0x0033 //!< TJA1054, magnetically isolated, with selectable termination resistor (via 4th IO line)
|
---|
107 | #define XL_TRANSCEIVER_TYPE_CAN_251_MAG 0x0035 //!< 82C250/251 or equivalent, magnetically isolated
|
---|
108 | #define XL_TRANSCEIVER_TYPE_CAN_1050_MAG 0x0037 //!< TJA1050, magnetically isolated
|
---|
109 | #define XL_TRANSCEIVER_TYPE_CAN_1040_MAG 0x0039 //!< TJA1040, magnetically isolated
|
---|
110 | #define XL_TRANSCEIVER_TYPE_CAN_1041A_MAG 0x003B //!< TJA1041A, magnetically isolated
|
---|
111 | #define XL_TRANSCEIVER_TYPE_TWIN_CAN_1041A_MAG 0x0080 //!< TWINcab with two TJA1041, magnetically isolated
|
---|
112 | #define XL_TRANSCEIVER_TYPE_TWIN_LIN_7269_MAG 0x0081 //!< TWINcab with two 7259, Infineon TLE7259, magnetically isolated, stress functionality
|
---|
113 | #define XL_TRANSCEIVER_TYPE_TWIN_CAN_1041AV2_MAG 0x0082 //!< TWINcab with two TJA1041, magnetically isolated
|
---|
114 | #define XL_TRANSCEIVER_TYPE_TWIN_CAN_1054_1041A_MAG 0x0083 //!< TWINcab with TJA1054A and TJA1041A with magnetic isolation
|
---|
115 |
|
---|
116 | // CAN PiggyBack
|
---|
117 | #define XL_TRANSCEIVER_TYPE_PB_CAN_251 0x0101
|
---|
118 | #define XL_TRANSCEIVER_TYPE_PB_CAN_1054 0x0103
|
---|
119 | #define XL_TRANSCEIVER_TYPE_PB_CAN_251_OPTO 0x0105
|
---|
120 | #define XL_TRANSCEIVER_TYPE_PB_CAN_SWC 0x010B
|
---|
121 | // 0x010D not supported, 0x010F, 0x0111, 0x0113 reserved for future use!!
|
---|
122 | #define XL_TRANSCEIVER_TYPE_PB_CAN_1054_OPTO 0x0115
|
---|
123 | #define XL_TRANSCEIVER_TYPE_PB_CAN_SWC_OPTO 0x0117
|
---|
124 | #define XL_TRANSCEIVER_TYPE_PB_CAN_TT_OPTO 0x0119
|
---|
125 | #define XL_TRANSCEIVER_TYPE_PB_CAN_1050 0x011B
|
---|
126 | #define XL_TRANSCEIVER_TYPE_PB_CAN_1050_OPTO 0x011D
|
---|
127 | #define XL_TRANSCEIVER_TYPE_PB_CAN_1041 0x011F
|
---|
128 | #define XL_TRANSCEIVER_TYPE_PB_CAN_1041_OPTO 0x0121
|
---|
129 | #define XL_TRANSCEIVER_TYPE_PB_LIN_6258_OPTO 0x0129 //!< LIN piggy back with transceiver Infineon TLE6258
|
---|
130 | #define XL_TRANSCEIVER_TYPE_PB_LIN_6259_OPTO 0x012B //!< LIN piggy back with transceiver Infineon TLE6259
|
---|
131 | #define XL_TRANSCEIVER_TYPE_PB_LIN_6259_MAG 0x012D //!< LIN piggy back with transceiver Infineon TLE6259, magnetically isolated, stress functionality
|
---|
132 | #define XL_TRANSCEIVER_TYPE_PB_CAN_1041A_OPTO 0x012F //!< CAN transceiver 1041A
|
---|
133 | #define XL_TRANSCEIVER_TYPE_PB_LIN_7259_MAG 0x0131 //!< LIN piggy back with transceiver Infineon TLE7259, magnetically isolated, stress functionality
|
---|
134 | #define XL_TRANSCEIVER_TYPE_PB_LIN_7269_MAG 0x0133 //!< LIN piggy back with transceiver Infineon TLE7269, magnetically isolated, stress functionality
|
---|
135 | #define XL_TRANSCEIVER_TYPE_PB_CAN_251_MAG 0x0135 //!< 82C250/251 or compatible, magnetically isolated
|
---|
136 | #define XL_TRANSCEIVER_TYPE_PB_CAN_1050_MAG 0x0136 //!< TJA 1050, magnetically isolated
|
---|
137 | #define XL_TRANSCEIVER_TYPE_PB_CAN_1040_MAG 0x0137 //!< TJA 1040, magnetically isolated
|
---|
138 | #define XL_TRANSCEIVER_TYPE_PB_CAN_1041A_MAG 0x0138 //!< TJA 1041A, magnetically isolated
|
---|
139 | #define XL_TRANSCEIVER_TYPE_PB_DAIO_8444_OPTO 0x0139 //!< optically isolated IO piggy
|
---|
140 | #define XL_TRANSCEIVER_TYPE_PB_CAN_1054_MAG 0x013B //!< TJA1054, magnetically isolated, with selectable termination resistor (via 4th IO line)
|
---|
141 | #define XL_TRANSCEIVER_TYPE_PB_CAN_1051_CAP_FIX 0x013C //!< TJA1051 - fixed transceiver on e.g. 16xx/8970
|
---|
142 | #define XL_TRANSCEIVER_TYPE_DAIO_1021_FIX 0x013D //!< Onboard IO of VN1630/VN1640
|
---|
143 | #define XL_TRANSCEIVER_TYPE_LIN_7269_CAP_FIX 0x013E //!< TLE7269 - fixed transceiver on 1611
|
---|
144 |
|
---|
145 |
|
---|
146 | // FlexRay PiggyBacks
|
---|
147 | #define XL_TRANSCEIVER_TYPE_PB_FR_1080 0x0201 //!< TJA 1080
|
---|
148 | #define XL_TRANSCEIVER_TYPE_PB_FR_1080_MAG 0x0202 //!< TJA 1080 magnetically isolated piggy
|
---|
149 | #define XL_TRANSCEIVER_TYPE_PB_FR_1080A_MAG 0x0203 //!< TJA 1080A magnetically isolated piggy
|
---|
150 | #define XL_TRANSCEIVER_TYPE_PB_FR_1082_CAP 0x0204 //!< TJA 1082 capacitive isolated piggy
|
---|
151 |
|
---|
152 | #define XL_TRANSCEIVER_TYPE_MOST150_ONBOARD 0x0220 //!< Onboard MOST150 transceiver of VN2640
|
---|
153 |
|
---|
154 | // IOpiggy 8642
|
---|
155 | #define XL_TRANSCEIVER_TYPE_PB_DAIO_8642 0x0280 //!< Iopiggy for VN8900
|
---|
156 |
|
---|
157 | //------------------------------------------------------------------------------
|
---|
158 | // Transceiver Operation Modes
|
---|
159 | //------------------------------------------------------------------------------
|
---|
160 | #define XL_TRANSCEIVER_LINEMODE_NA ((unsigned int)0x0000)
|
---|
161 | #define XL_TRANSCEIVER_LINEMODE_TWO_LINE ((unsigned int)0x0001)
|
---|
162 | #define XL_TRANSCEIVER_LINEMODE_CAN_H ((unsigned int)0x0002)
|
---|
163 | #define XL_TRANSCEIVER_LINEMODE_CAN_L ((unsigned int)0x0003)
|
---|
164 | #define XL_TRANSCEIVER_LINEMODE_SWC_SLEEP ((unsigned int)0x0004) //!< SWC Sleep Mode.
|
---|
165 | #define XL_TRANSCEIVER_LINEMODE_SWC_NORMAL ((unsigned int)0x0005) //!< SWC Normal Mode.
|
---|
166 | #define XL_TRANSCEIVER_LINEMODE_SWC_FAST ((unsigned int)0x0006) //!< SWC High-Speed Mode.
|
---|
167 | #define XL_TRANSCEIVER_LINEMODE_SWC_WAKEUP ((unsigned int)0x0007) //!< SWC Wakeup Mode.
|
---|
168 | #define XL_TRANSCEIVER_LINEMODE_SLEEP ((unsigned int)0x0008)
|
---|
169 | #define XL_TRANSCEIVER_LINEMODE_NORMAL ((unsigned int)0x0009)
|
---|
170 | #define XL_TRANSCEIVER_LINEMODE_STDBY ((unsigned int)0x000a) //!< Standby for those who support it
|
---|
171 | #define XL_TRANSCEIVER_LINEMODE_TT_CAN_H ((unsigned int)0x000b) //!< truck & trailer: operating mode single wire using CAN high
|
---|
172 | #define XL_TRANSCEIVER_LINEMODE_TT_CAN_L ((unsigned int)0x000c) //!< truck & trailer: operating mode single wire using CAN low
|
---|
173 | #define XL_TRANSCEIVER_LINEMODE_EVA_00 ((unsigned int)0x000d) //!< CANcab Eva
|
---|
174 | #define XL_TRANSCEIVER_LINEMODE_EVA_01 ((unsigned int)0x000e) //!< CANcab Eva
|
---|
175 | #define XL_TRANSCEIVER_LINEMODE_EVA_10 ((unsigned int)0x000f) //!< CANcab Eva
|
---|
176 | #define XL_TRANSCEIVER_LINEMODE_EVA_11 ((unsigned int)0x0010) //!< CANcab Eva
|
---|
177 |
|
---|
178 | //------------------------------------------------------------------------------
|
---|
179 | // Transceiver Status Flags
|
---|
180 | //------------------------------------------------------------------------------
|
---|
181 | // (not all used, but for compatibility reasons)
|
---|
182 | #define XL_TRANSCEIVER_STATUS_PRESENT ((unsigned int)0x0001)
|
---|
183 | #define XL_TRANSCEIVER_STATUS_POWER ((unsigned int)0x0002)
|
---|
184 | #define XL_TRANSCEIVER_STATUS_MEMBLANK ((unsigned int)0x0004)
|
---|
185 | #define XL_TRANSCEIVER_STATUS_MEMCORRUPT ((unsigned int)0x0008)
|
---|
186 | #define XL_TRANSCEIVER_STATUS_POWER_GOOD ((unsigned int)0x0010)
|
---|
187 | #define XL_TRANSCEIVER_STATUS_EXT_POWER_GOOD ((unsigned int)0x0020)
|
---|
188 | #define XL_TRANSCEIVER_STATUS_NOT_SUPPORTED ((unsigned int)0x0040)
|
---|
189 |
|
---|
190 |
|
---|
191 | ////////////////////////////////////////////////////////////////////////////////
|
---|
192 | // driver status
|
---|
193 | #define XL_SUCCESS 0 //=0x0000
|
---|
194 | #define XL_PENDING 1 //=0x0001
|
---|
195 |
|
---|
196 | #define XL_ERR_QUEUE_IS_EMPTY 10 //=0x000A
|
---|
197 | #define XL_ERR_QUEUE_IS_FULL 11 //=0x000B
|
---|
198 | #define XL_ERR_TX_NOT_POSSIBLE 12 //=0x000C
|
---|
199 | #define XL_ERR_NO_LICENSE 14 //=0x000E
|
---|
200 | #define XL_ERR_WRONG_PARAMETER 101 //=0x0065
|
---|
201 | #define XL_ERR_TWICE_REGISTER 110 //=0x006E
|
---|
202 | #define XL_ERR_INVALID_CHAN_INDEX 111 //=0x006F
|
---|
203 | #define XL_ERR_INVALID_ACCESS 112 //=0x0070
|
---|
204 | #define XL_ERR_PORT_IS_OFFLINE 113 //=0x0071
|
---|
205 | #define XL_ERR_CHAN_IS_ONLINE 116 //=0x0074
|
---|
206 | #define XL_ERR_NOT_IMPLEMENTED 117 //=0x0075
|
---|
207 | #define XL_ERR_INVALID_PORT 118 //=0x0076
|
---|
208 | #define XL_ERR_HW_NOT_READY 120 //=0x0078
|
---|
209 | #define XL_ERR_CMD_TIMEOUT 121 //=0x0079
|
---|
210 | #define XL_ERR_HW_NOT_PRESENT 129 //=0x0081
|
---|
211 | #define XL_ERR_NOTIFY_ALREADY_ACTIVE 131 //=0x0083
|
---|
212 | #define XL_ERR_NO_RESOURCES 152 //=0x0098
|
---|
213 | #define XL_ERR_WRONG_CHIP_TYPE 153 //=0x0099
|
---|
214 | #define XL_ERR_WRONG_COMMAND 154 //=0x009A
|
---|
215 | #define XL_ERR_INVALID_HANDLE 155 //=0x009B
|
---|
216 | #define XL_ERR_RESERVED_NOT_ZERO 157 //=0x009D
|
---|
217 | #define XL_ERR_CANNOT_OPEN_DRIVER 201 //=0x00C9
|
---|
218 | #define XL_ERR_WRONG_BUS_TYPE 202 //=0x00CA
|
---|
219 | #define XL_ERR_DLL_NOT_FOUND 203 //=0x00CB
|
---|
220 | #define XL_ERR_INVALID_CHANNEL_MASK 204 //=0x00CC
|
---|
221 | // special stream defines
|
---|
222 | #define XL_ERR_CONNECTION_BROKEN 210 //=0x00D2
|
---|
223 | #define XL_ERR_CONNECTION_CLOSED 211 //=0x00D3
|
---|
224 | #define XL_ERR_INVALID_STREAM_NAME 212 //=0x00D4
|
---|
225 | #define XL_ERR_CONNECTION_FAILED 213 //=0x00D5
|
---|
226 | #define XL_ERR_STREAM_NOT_FOUND 214 //=0x00D6
|
---|
227 | #define XL_ERR_STREAM_NOT_CONNECTED 215 //=0x00D7
|
---|
228 | #define XL_ERR_QUEUE_OVERRUN 216 //=0x00D8
|
---|
229 | #define XL_ERROR 255 //=0x00FF
|
---|
230 |
|
---|
231 | ////////////////////////////////////////////////////////////////////////////////
|
---|
232 | // For the timestamps and the access mask the API use 64 bit values
|
---|
233 | typedef unsigned __int64 XLuint64;
|
---|
234 |
|
---|
235 | ////////////////////////////////////////////////////////////////////////////////
|
---|
236 | typedef char *XLstringType;
|
---|
237 |
|
---|
238 | ////////////////////////////////////////////////////////////////////////////////
|
---|
239 | // accessmask
|
---|
240 | typedef XLuint64 XLaccess;
|
---|
241 |
|
---|
242 | ////////////////////////////////////////////////////////////////////////////////
|
---|
243 | // handle for xlSetNotification
|
---|
244 | typedef HANDLE XLhandle;
|
---|
245 |
|
---|
246 | ////////////////////////////////////////////////////////////////////////////////
|
---|
247 | // LIN lib
|
---|
248 | //------------------------------------------------------------------------------
|
---|
249 | // defines for LIN
|
---|
250 | //------------------------------------------------------------------------------
|
---|
251 |
|
---|
252 | // defines for xlLinSetChannelParams
|
---|
253 | #define XL_LIN_MASTER (unsigned int) 01 //!< channel is a LIN master
|
---|
254 | #define XL_LIN_SLAVE (unsigned int) 02 //!< channel is a LIN slave
|
---|
255 | #define XL_LIN_VERSION_1_3 (unsigned int) 0x01 //!< LIN version 1.3
|
---|
256 | #define XL_LIN_VERSION_2_0 (unsigned int) 0x02 //!< LIN version 2.0
|
---|
257 | #define XL_LIN_VERSION_2_1 (unsigned int) 0x03 //!< LIN version 2.1
|
---|
258 |
|
---|
259 | // defines for xlLinSetSlave
|
---|
260 | #define XL_LIN_CALC_CHECKSUM (unsigned short) 0x100 //!< flag for automatic 'classic' checksum calculation
|
---|
261 | #define XL_LIN_CALC_CHECKSUM_ENHANCED (unsigned short) 0x200 //!< flag for automatic 'enhanced' checksum calculation
|
---|
262 |
|
---|
263 | // defines for the SleepMode function call
|
---|
264 | #define XL_LIN_SET_SILENT (unsigned int) 0x01 //!< set hardware into sleep mode
|
---|
265 | #define XL_LIN_SET_WAKEUPID (unsigned int) 0x03 //!< set hardware into sleep mode and send a request at wake-up
|
---|
266 |
|
---|
267 | // defines for xlLinSetChecksum. For LIN >= 2.0 there can be used two different Checksum models.
|
---|
268 | #define XL_LIN_CHECKSUM_CLASSIC (unsigned char) 0x00 //!< Use classic CRC
|
---|
269 | #define XL_LIN_CHECKSUM_ENHANCED (unsigned char) 0x01 //!< Use enhanced CRC
|
---|
270 | #define XL_LIN_CHECKSUM_UNDEFINED (unsigned char) 0xff //!< Set the checksum calculation to undefined.
|
---|
271 |
|
---|
272 | // defines for the wake-up events
|
---|
273 | #define XL_LIN_STAYALIVE (unsigned char) 0x00 //!< flag if nothing changes
|
---|
274 | #define XL_LIN_SET_SLEEPMODE (unsigned char) 0x01 //!< flag if the hardware is set into the sleep mode
|
---|
275 | #define XL_LIN_COMESFROM_SLEEPMODE (unsigned char) 0x02 //!< flag if the hardware comes from the sleep mode
|
---|
276 |
|
---|
277 | #define XL_LIN_WAKUP_INTERNAL (unsigned char) 0x01 //!< flag to signal a internal WAKEUP (event)
|
---|
278 | #define XL_LIN_UNDEFINED_DLC (unsigned char) 0xff //!< set the DLC to undefined (xlLINSetDLC)
|
---|
279 |
|
---|
280 | // defines for xlLinSwitchSlave
|
---|
281 | #define XL_LIN_SLAVE_ON (unsigned char) 0xff //!< switch on the LIN slave
|
---|
282 | #define XL_LIN_SLAVE_OFF (unsigned char) 0x00 //!< switch off the LIN slave
|
---|
283 |
|
---|
284 | //------------------------------------------------------------------------------
|
---|
285 | // structures for LIN
|
---|
286 | //------------------------------------------------------------------------------
|
---|
287 | typedef struct {
|
---|
288 | unsigned int LINMode; //!< XL_LIN_SLAVE | XL_LIN_MASTER
|
---|
289 | int baudrate; //!< the baudrate will be calculated within the API. Here: e.g. 9600, 19200
|
---|
290 | unsigned int LINVersion; //!< define for the LIN version (actual V1.3 of V2.0)
|
---|
291 | unsigned int reserved; //!< for future use
|
---|
292 | } XLlinStatPar;
|
---|
293 |
|
---|
294 |
|
---|
295 | ////////////////////////////////////////////////////////////////////////////////
|
---|
296 | // Defines
|
---|
297 | //------------------------------------------------------------------------------
|
---|
298 | // message flags
|
---|
299 | #ifndef MAX_MSG_LEN
|
---|
300 | #define MAX_MSG_LEN 8
|
---|
301 | #endif
|
---|
302 |
|
---|
303 | // interface version for our events
|
---|
304 | #define XL_INTERFACE_VERSION_V2 2
|
---|
305 | #define XL_INTERFACE_VERSION_V3 3
|
---|
306 | #define XL_INTERFACE_VERSION_V4 4
|
---|
307 | //current version
|
---|
308 | #define XL_INTERFACE_VERSION XL_INTERFACE_VERSION_V3
|
---|
309 |
|
---|
310 | #define XL_CAN_EXT_MSG_ID 0x80000000
|
---|
311 |
|
---|
312 | #define XL_CAN_MSG_FLAG_ERROR_FRAME 0x01
|
---|
313 | #define XL_CAN_MSG_FLAG_OVERRUN 0x02 //!< Overrun in Driver or CAN Controller,
|
---|
314 | //!< previous msgs have been lost
|
---|
315 | #define XL_CAN_MSG_FLAG_NERR 0x04 //!< Line Error on Lowspeed
|
---|
316 | #define XL_CAN_MSG_FLAG_WAKEUP 0x08 //!< High Voltage Message on Single Wire CAN
|
---|
317 | #define XL_CAN_MSG_FLAG_REMOTE_FRAME 0x10
|
---|
318 | #define XL_CAN_MSG_FLAG_RESERVED_1 0x20
|
---|
319 | #define XL_CAN_MSG_FLAG_TX_COMPLETED 0x40 //!< Message Transmitted
|
---|
320 | #define XL_CAN_MSG_FLAG_TX_REQUEST 0x80 //!< Transmit Message stored into Controller
|
---|
321 |
|
---|
322 | // LIN flags
|
---|
323 | #define XL_LIN_MSGFLAG_TX XL_CAN_MSG_FLAG_TX_COMPLETED //!< LIN TX flag
|
---|
324 | #define XL_LIN_MSGFLAG_CRCERROR 0x81 //!< Wrong LIN CRC
|
---|
325 |
|
---|
326 | //------------------------------------------------------------------------------
|
---|
327 | // structure for XL_RECEIVE_MSG, XL_TRANSMIT_MSG
|
---|
328 |
|
---|
329 | struct s_xl_can_msg { /* 32 Bytes */
|
---|
330 | unsigned long id;
|
---|
331 | unsigned short flags;
|
---|
332 | unsigned short dlc;
|
---|
333 | XLuint64 res1;
|
---|
334 | unsigned char data [MAX_MSG_LEN];
|
---|
335 | XLuint64 res2;
|
---|
336 | };
|
---|
337 |
|
---|
338 |
|
---|
339 |
|
---|
340 | //------------------------------------------------------------------------------
|
---|
341 | // structure for XL_TRANSMIT_DAIO_DATA
|
---|
342 |
|
---|
343 | // flags masks
|
---|
344 | #define XL_DAIO_DATA_GET 0x8000
|
---|
345 | #define XL_DAIO_DATA_VALUE_DIGITAL 0x0001
|
---|
346 | #define XL_DAIO_DATA_VALUE_ANALOG 0x0002
|
---|
347 | #define XL_DAIO_DATA_PWM 0x0010
|
---|
348 |
|
---|
349 | // optional function flags
|
---|
350 | #define XL_DAIO_MODE_PULSE 0x0020 // generates pulse in values of PWM
|
---|
351 |
|
---|
352 | struct s_xl_daio_data { /* 32 Bytes */
|
---|
353 | unsigned short flags; // 2
|
---|
354 | unsigned int timestamp_correction; // 4
|
---|
355 | unsigned char mask_digital; // 1
|
---|
356 | unsigned char value_digital; // 1
|
---|
357 | unsigned char mask_analog; // 1
|
---|
358 | unsigned char reserved0; // 1
|
---|
359 | unsigned short value_analog[4]; // 8
|
---|
360 | unsigned int pwm_frequency; // 4
|
---|
361 | unsigned short pwm_value; // 2
|
---|
362 | unsigned int reserved1; // 4
|
---|
363 | unsigned int reserved2; // 4
|
---|
364 | };
|
---|
365 |
|
---|
366 | //------------------------------------------------------------------------------
|
---|
367 | // structure for XL_CHIP_STATE
|
---|
368 |
|
---|
369 | #define XL_CHIPSTAT_BUSOFF 0x01
|
---|
370 | #define XL_CHIPSTAT_ERROR_PASSIVE 0x02
|
---|
371 | #define XL_CHIPSTAT_ERROR_WARNING 0x04
|
---|
372 | #define XL_CHIPSTAT_ERROR_ACTIVE 0x08
|
---|
373 |
|
---|
374 |
|
---|
375 | struct s_xl_chip_state {
|
---|
376 | unsigned char busStatus;
|
---|
377 | unsigned char txErrorCounter;
|
---|
378 | unsigned char rxErrorCounter;
|
---|
379 | };
|
---|
380 |
|
---|
381 | //------------------------------------------------------------------------------
|
---|
382 | // structure for XL_SYNC_PULSE
|
---|
383 | #define XL_SYNC_PULSE_EXTERNAL 0x00
|
---|
384 | #define XL_SYNC_PULSE_OUR 0x01
|
---|
385 | #define XL_SYNC_PULSE_OUR_SHARED 0x02
|
---|
386 |
|
---|
387 | struct s_xl_sync_pulse {
|
---|
388 | unsigned char pulseCode; //!< generated by us
|
---|
389 | XLuint64 time; //!< 1ns resolution
|
---|
390 | };
|
---|
391 |
|
---|
392 | //------------------------------------------------------------------------------
|
---|
393 | // structure and defines for XL_TRANSCEIVER
|
---|
394 | #define XL_TRANSCEIVER_EVENT_NONE 0
|
---|
395 | #define XL_TRANSCEIVER_EVENT_INSERTED 1 //!< cable was inserted
|
---|
396 | #define XL_TRANSCEIVER_EVENT_REMOVED 2 //!< cable was removed
|
---|
397 | #define XL_TRANSCEIVER_EVENT_STATE_CHANGE 3 //!< transceiver state changed
|
---|
398 |
|
---|
399 | struct s_xl_transceiver {
|
---|
400 | unsigned char event_reason; //!< reason for what was event sent
|
---|
401 | unsigned char is_present; //!< allways valid transceiver presence flag
|
---|
402 | };
|
---|
403 |
|
---|
404 | //------------------------------------------------------------------------------
|
---|
405 | // defines for SET_OUTPUT_MODE
|
---|
406 | #define XL_OUTPUT_MODE_SILENT 0 //!< switch CAN trx into default silent mode
|
---|
407 | #define XL_OUTPUT_MODE_NORMAL 1 //!< switch CAN trx into normal mode
|
---|
408 | #define XL_OUTPUT_MODE_TX_OFF 2 //!< switch CAN trx into silent mode with tx pin off
|
---|
409 | #define XL_OUTPUT_MODE_SJA_1000_SILENT 3 //!< switch CAN trx into SJA1000 silent mode
|
---|
410 |
|
---|
411 | //------------------------------------------------------------------------------
|
---|
412 | // Transceiver modes
|
---|
413 | #define XL_TRANSCEIVER_EVENT_ERROR 1
|
---|
414 | #define XL_TRANSCEIVER_EVENT_CHANGED 2
|
---|
415 |
|
---|
416 | //------------------------------------------------------------------------------
|
---|
417 | // definitions for the events and commands used by the driver
|
---|
418 | enum e_XLevent_type {
|
---|
419 | XL_NO_COMMAND = 0,
|
---|
420 | XL_RECEIVE_MSG = 1,
|
---|
421 | XL_CHIP_STATE = 4,
|
---|
422 | XL_TRANSCEIVER = 6,
|
---|
423 | XL_TIMER = 8,
|
---|
424 | XL_TRANSMIT_MSG =10,
|
---|
425 | XL_SYNC_PULSE =11,
|
---|
426 | XL_APPLICATION_NOTIFICATION =15,
|
---|
427 |
|
---|
428 | //for LIN we have special events
|
---|
429 | XL_LIN_MSG =20,
|
---|
430 | XL_LIN_ERRMSG =21,
|
---|
431 | XL_LIN_SYNCERR =22,
|
---|
432 | XL_LIN_NOANS =23,
|
---|
433 | XL_LIN_WAKEUP =24,
|
---|
434 | XL_LIN_SLEEP =25,
|
---|
435 | XL_LIN_CRCINFO =26,
|
---|
436 |
|
---|
437 | // for D/A IO bus
|
---|
438 | XL_RECEIVE_DAIO_DATA =32, //!< D/A IO data message
|
---|
439 |
|
---|
440 | };
|
---|
441 |
|
---|
442 | ////////////////////////////////////////////////////////////////////////////////
|
---|
443 | // LIN lib
|
---|
444 | //------------------------------------------------------------------------------
|
---|
445 | // LIN event structures
|
---|
446 | struct s_xl_lin_msg {
|
---|
447 | unsigned char id;
|
---|
448 | unsigned char dlc;
|
---|
449 | unsigned short flags;
|
---|
450 | unsigned char data[8];
|
---|
451 | unsigned char crc;
|
---|
452 | };
|
---|
453 | struct s_xl_lin_sleep {
|
---|
454 | unsigned char flag;
|
---|
455 | };
|
---|
456 |
|
---|
457 | struct s_xl_lin_no_ans {
|
---|
458 | unsigned char id;
|
---|
459 | };
|
---|
460 |
|
---|
461 | struct s_xl_lin_wake_up {
|
---|
462 | unsigned char flag;
|
---|
463 | };
|
---|
464 |
|
---|
465 | struct s_xl_lin_crc_info {
|
---|
466 | unsigned char id;
|
---|
467 | unsigned char flags;
|
---|
468 | };
|
---|
469 |
|
---|
470 | //------------------------------------------------------------------------------
|
---|
471 | // LIN messages structure
|
---|
472 | union s_xl_lin_msg_api {
|
---|
473 | struct s_xl_lin_msg linMsg;
|
---|
474 | struct s_xl_lin_no_ans linNoAns;
|
---|
475 | struct s_xl_lin_wake_up linWakeUp;
|
---|
476 | struct s_xl_lin_sleep linSleep;
|
---|
477 | struct s_xl_lin_crc_info linCRCinfo;
|
---|
478 | };
|
---|
479 |
|
---|
480 |
|
---|
481 | //------------------------------------------------------------------------------
|
---|
482 | // BASIC bus message structure
|
---|
483 | union s_xl_tag_data {
|
---|
484 | struct s_xl_can_msg msg;
|
---|
485 | struct s_xl_chip_state chipState;
|
---|
486 | union s_xl_lin_msg_api linMsgApi;
|
---|
487 | struct s_xl_sync_pulse syncPulse;
|
---|
488 | struct s_xl_daio_data daioData;
|
---|
489 | struct s_xl_transceiver transceiver;
|
---|
490 | };
|
---|
491 |
|
---|
492 | typedef unsigned char XLeventTag;
|
---|
493 |
|
---|
494 | //------------------------------------------------------------------------------
|
---|
495 | // XL_EVENT structures
|
---|
496 | // event type definition
|
---|
497 |
|
---|
498 | struct s_xl_event {
|
---|
499 | XLeventTag tag; // 1
|
---|
500 | unsigned char chanIndex; // 1
|
---|
501 | unsigned short transId; // 2
|
---|
502 | unsigned short portHandle; // 2 internal use only !!!!
|
---|
503 | unsigned short reserved; // 2
|
---|
504 | XLuint64 timeStamp; // 8
|
---|
505 | union s_xl_tag_data tagData; // 32 Bytes
|
---|
506 | };
|
---|
507 | // --------
|
---|
508 | // 48 Bytes
|
---|
509 |
|
---|
510 | typedef struct s_xl_event XLevent;
|
---|
511 | // message name to aquire a unique message id from windows
|
---|
512 | #define DriverNotifyMessageName "VectorCanDriverChangeNotifyMessage"
|
---|
513 |
|
---|
514 | // defines for the supported hardware
|
---|
515 | #define XL_HWTYPE_NONE 0
|
---|
516 | #define XL_HWTYPE_VIRTUAL 1
|
---|
517 | #define XL_HWTYPE_CANCARDX 2
|
---|
518 | #define XL_HWTYPE_CANAC2PCI 6
|
---|
519 | #define XL_HWTYPE_CANCARDY 12
|
---|
520 | #define XL_HWTYPE_CANCARDXL 15
|
---|
521 | #define XL_HWTYPE_CANCASEXL 21
|
---|
522 | #define XL_HWTYPE_CANCASEXL_LOG_OBSOLETE 23
|
---|
523 | #define XL_HWTYPE_CANBOARDXL 25
|
---|
524 | #define XL_HWTYPE_CANBOARDXL_PXI 27
|
---|
525 | #define XL_HWTYPE_VN2600 29
|
---|
526 | #define XL_HWTYPE_VN2610 XL_HWTYPE_VN2600
|
---|
527 | #define XL_HWTYPE_VN3300 37
|
---|
528 | #define XL_HWTYPE_VN3600 39
|
---|
529 | #define XL_HWTYPE_VN7600 41
|
---|
530 | #define XL_HWTYPE_CANCARDXLE 43
|
---|
531 | #define XL_HWTYPE_VN8900 45
|
---|
532 | #define XL_HWTYPE_VN2640 53
|
---|
533 | #define XL_HWTYPE_VN1610 55
|
---|
534 | #define XL_HWTYPE_VN1630 57
|
---|
535 | #define XL_HWTYPE_VN1640 59
|
---|
536 | #define XL_HWTYPE_VN1611 63
|
---|
537 |
|
---|
538 | #define XL_MAX_HWTYPE 63
|
---|
539 |
|
---|
540 | //------------------------------------------------------------------------------
|
---|
541 | // build a channels mask from the channels index
|
---|
542 | #define XL_CHANNEL_MASK(x) (1I64<<(x))
|
---|
543 |
|
---|
544 | #define XL_MAX_APPNAME 32
|
---|
545 |
|
---|
546 |
|
---|
547 | //------------------------------------------------------------------------------
|
---|
548 | // driver status
|
---|
549 | typedef short XLstatus;
|
---|
550 |
|
---|
551 |
|
---|
552 | //defines for xlGetDriverConfig structures
|
---|
553 | #define XL_MAX_LENGTH 31
|
---|
554 | #define XL_CONFIG_MAX_CHANNELS 64
|
---|
555 |
|
---|
556 | //activate - channel flags
|
---|
557 | #define XL_ACTIVATE_NONE 0
|
---|
558 | #define XL_ACTIVATE_RESET_CLOCK 8
|
---|
559 |
|
---|
560 | //activate - bus types
|
---|
561 | #define XL_BUS_TYPE_NONE 0x00000000
|
---|
562 | #define XL_BUS_TYPE_CAN 0x00000001
|
---|
563 | #define XL_BUS_TYPE_LIN 0x00000002
|
---|
564 | #define XL_BUS_TYPE_FLEXRAY 0x00000004
|
---|
565 | #define XL_BUS_TYPE_MOST 0x00000010
|
---|
566 | #define XL_BUS_TYPE_DAIO 0x00000040 // IO cab/piggy
|
---|
567 | #define XL_BUS_TYPE_J1708 0x00000100
|
---|
568 |
|
---|
569 | // device capabilities
|
---|
570 | #define XL_CHCAP_LOG_CAPABLE 0x00002000
|
---|
571 |
|
---|
572 | #define XL_BUS_COMPATIBLE_CAN XL_BUS_TYPE_CAN
|
---|
573 | #define XL_BUS_COMPATIBLE_LIN XL_BUS_TYPE_LIN
|
---|
574 | #define XL_BUS_COMPATIBLE_FLEXRAY XL_BUS_TYPE_FLEXRAY
|
---|
575 | #define XL_BUS_COMPATIBLE_MOST XL_BUS_TYPE_MOST
|
---|
576 | #define XL_BUS_COMPATIBLE_DAIO XL_BUS_TYPE_DAIO //io cab/piggy
|
---|
577 | #define XL_BUS_COMPATIBLE_J1708 XL_BUS_TYPE_J1708
|
---|
578 |
|
---|
579 | // the following bus types can be used with the current cab / piggy
|
---|
580 | #define XL_BUS_ACTIVE_CAP_CAN (XL_BUS_COMPATIBLE_CAN<<16)
|
---|
581 | #define XL_BUS_ACTIVE_CAP_LIN (XL_BUS_COMPATIBLE_LIN<<16)
|
---|
582 | #define XL_BUS_ACTIVE_CAP_FLEXRAY (XL_BUS_COMPATIBLE_FLEXRAY<<16)
|
---|
583 | #define XL_BUS_ACTIVE_CAP_MOST (XL_BUS_COMPATIBLE_MOST<<16)
|
---|
584 | #define XL_BUS_ACTIVE_CAP_DAIO (XL_BUS_COMPATIBLE_DAIO<<16)
|
---|
585 | #define XL_BUS_ACTIVE_CAP_J1708 (XL_BUS_COMPATIBLE_J1708<<16)
|
---|
586 |
|
---|
587 |
|
---|
588 | //------------------------------------------------------------------------------
|
---|
589 | // acceptance filter
|
---|
590 |
|
---|
591 | #define XL_CAN_STD 01 //!< flag for standard ID's
|
---|
592 | #define XL_CAN_EXT 02 //!< flag for extended ID's
|
---|
593 |
|
---|
594 | //------------------------------------------------------------------------------
|
---|
595 | // bit timing
|
---|
596 | typedef struct {
|
---|
597 | unsigned long bitRate;
|
---|
598 | unsigned char sjw;
|
---|
599 | unsigned char tseg1;
|
---|
600 | unsigned char tseg2;
|
---|
601 | unsigned char sam; // 1 or 3
|
---|
602 | } XLchipParams;
|
---|
603 |
|
---|
604 | // defines for XLbusParams::data::most::activeSpeedGrade and compatibleSpeedGrade
|
---|
605 | #define XL_BUS_PARAMS_MOST_SPEED_GRADE_25 0x01
|
---|
606 | #define XL_BUS_PARAMS_MOST_SPEED_GRADE_150 0x02
|
---|
607 |
|
---|
608 | typedef struct {
|
---|
609 | unsigned int busType;
|
---|
610 | union {
|
---|
611 | struct {
|
---|
612 | unsigned int bitRate;
|
---|
613 | unsigned char sjw;
|
---|
614 | unsigned char tseg1;
|
---|
615 | unsigned char tseg2;
|
---|
616 | unsigned char sam; // 1 or 3
|
---|
617 | unsigned char outputMode;
|
---|
618 | } can;
|
---|
619 | struct {
|
---|
620 | unsigned int activeSpeedGrade;
|
---|
621 | unsigned int compatibleSpeedGrade;
|
---|
622 | } most;
|
---|
623 | unsigned char raw[32];
|
---|
624 | }data;
|
---|
625 | } XLbusParams;
|
---|
626 |
|
---|
627 | // porthandle
|
---|
628 | #define XL_INVALID_PORTHANDLE (-1)
|
---|
629 | typedef long XLportHandle, *pXLportHandle;
|
---|
630 |
|
---|
631 | // defines for FPGA core types (fpgaCoreCapabilities)
|
---|
632 | #define XL_FPGA_CORE_TYPE_NONE 0
|
---|
633 | #define XL_FPGA_CORE_TYPE_CAN 1
|
---|
634 | #define XL_FPGA_CORE_TYPE_LIN 2
|
---|
635 | #define XL_FPGA_CORE_TYPE_LIN_RX 3
|
---|
636 |
|
---|
637 | //#defines for specialDeviceStatus
|
---|
638 | #define XL_SPECIAL_DEVICE_STAT_FPGA_UPDATE_DONE 0x01 //!< automatic driver FPGA flashing done
|
---|
639 |
|
---|
640 | // structure for xlGetLicenseInfo function
|
---|
641 | // This structure is returned as an array from the xlGetLicenseInfo. It contains all available licenses on
|
---|
642 | // the queried channels. The position inside the array is defined by the license itself, e.g. the license for
|
---|
643 | // the Advanced-Flexray-Library is always at the same array index.
|
---|
644 | typedef struct s_xl_license_info {
|
---|
645 | unsigned char bAvailable; //!< License is available
|
---|
646 | char licName[65]; //!< Name of the license as NULL-terminated string
|
---|
647 | } XL_LICENSE_INFO;
|
---|
648 | typedef XL_LICENSE_INFO XLlicenseInfo;
|
---|
649 |
|
---|
650 | // structures for xlGetDriverConfig
|
---|
651 | typedef struct s_xl_channel_config {
|
---|
652 | char name [XL_MAX_LENGTH + 1];
|
---|
653 | unsigned char hwType; //!< HWTYPE_xxxx (see above)
|
---|
654 | unsigned char hwIndex; //!< Index of the hardware (same type) (0,1,...)
|
---|
655 | unsigned char hwChannel; //!< Index of the channel (same hardware) (0,1,...)
|
---|
656 | unsigned short transceiverType; //!< TRANSCEIVER_TYPE_xxxx (see above)
|
---|
657 | unsigned short transceiverState; //!< transceiver state (XL_TRANSCEIVER_STATUS...)
|
---|
658 | unsigned short configError; //!< XL_CHANNEL_CONFIG_ERROR_XXX (see above)
|
---|
659 | unsigned char channelIndex; //!< Global channel index (0,1,...)
|
---|
660 | XLuint64 channelMask; //!< Global channel mask (=1<<channelIndex)
|
---|
661 | unsigned int channelCapabilities; //!< capabilities which are supported (e.g CHANNEL_FLAG_XXX)
|
---|
662 | unsigned int channelBusCapabilities; //!< what buses are supported and which are possible to be
|
---|
663 | //!< activated (e.g. XXX_BUS_ACTIVE_CAP_CAN)
|
---|
664 |
|
---|
665 | // Channel
|
---|
666 | unsigned char isOnBus; //!< The channel is on bus
|
---|
667 | unsigned int connectedBusType; //!< currently selected bus
|
---|
668 | XLbusParams busParams;
|
---|
669 |
|
---|
670 | unsigned int driverVersion;
|
---|
671 | unsigned int interfaceVersion; //!< version of interface with driver
|
---|
672 | unsigned int raw_data[10];
|
---|
673 |
|
---|
674 | unsigned int serialNumber;
|
---|
675 | unsigned int articleNumber;
|
---|
676 |
|
---|
677 | char transceiverName [XL_MAX_LENGTH + 1]; //!< name for CANcab or another transceiver
|
---|
678 |
|
---|
679 | unsigned int specialCabFlags; //!< XL_SPECIAL_CAB_LIN_RECESSIVE_STRESS, XL_SPECIAL_CAB_LIN_DOMINANT_TIMEOUT flags
|
---|
680 | unsigned int dominantTimeout; //!< Dominant Timeout in us.
|
---|
681 | unsigned char dominantRecessiveDelay; //!< Delay in us.
|
---|
682 | unsigned char recessiveDominantDelay; //!< Delay in us.
|
---|
683 | unsigned char connectionInfo; //!< XL_CONNECTION_INFO_XXX
|
---|
684 | unsigned char currentlyAvailableTimestamps; //!< XL_CURRENTLY_AVAILABLE_TIMESTAMP...
|
---|
685 | unsigned short minimalSupplyVoltage; //!< Minimal Supply Voltage of the Cab/Piggy in 1/100 V
|
---|
686 | unsigned short maximalSupplyVoltage; //!< Maximal Supply Voltage of the Cab/Piggy in 1/100 V
|
---|
687 | unsigned int maximalBaudrate; //!< Maximal supported LIN baudrate
|
---|
688 | unsigned char fpgaCoreCapabilities; //!< e.g.: XL_FPGA_CORE_TYPE_XXX
|
---|
689 | unsigned char specialDeviceStatus; //!< e.g.: XL_SPECIAL_DEVICE_STAT_XXX
|
---|
690 | unsigned short channelBusActiveCapabilities; //!< like channelBusCapabilities (but without core dependencies)
|
---|
691 | unsigned short breakOffset; //!< compensation for edge asymmetry in ns
|
---|
692 | unsigned short delimiterOffset; //!< compensation for edgdfde asymmetry in ns
|
---|
693 | unsigned int reserved[3];
|
---|
694 | } XL_CHANNEL_CONFIG;
|
---|
695 |
|
---|
696 | typedef XL_CHANNEL_CONFIG XLchannelConfig;
|
---|
697 | typedef XL_CHANNEL_CONFIG *pXLchannelConfig;
|
---|
698 |
|
---|
699 | typedef struct s_xl_driver_config {
|
---|
700 | unsigned int dllVersion;
|
---|
701 | unsigned int channelCount; // total number of channels
|
---|
702 | unsigned int reserved[10];
|
---|
703 | XLchannelConfig channel[XL_CONFIG_MAX_CHANNELS]; // [channelCount]
|
---|
704 | } XL_DRIVER_CONFIG;
|
---|
705 |
|
---|
706 | typedef XL_DRIVER_CONFIG XLdriverConfig;
|
---|
707 | typedef XL_DRIVER_CONFIG *pXLdriverConfig;
|
---|
708 |
|
---|
709 | ///////////////////////////////////////////////////////
|
---|
710 | // DAIO params definition
|
---|
711 |
|
---|
712 | // analog and digital port configuration
|
---|
713 | #define XL_DAIO_DIGITAL_ENABLED 0x00000001 // digital port is enabled
|
---|
714 | #define XL_DAIO_DIGITAL_INPUT 0x00000002 // digital port is input, otherwise it is an output
|
---|
715 | #define XL_DAIO_DIGITAL_TRIGGER 0x00000004 // digital port is trigger
|
---|
716 |
|
---|
717 | #define XL_DAIO_ANALOG_ENABLED 0x00000001 // analog port is enabled
|
---|
718 | #define XL_DAIO_ANALOG_INPUT 0x00000002 // analog port is input, otherwise it is an output
|
---|
719 | #define XL_DAIO_ANALOG_TRIGGER 0x00000004 // analog port is trigger
|
---|
720 | #define XL_DAIO_ANALOG_RANGE_32V 0x00000008 // analog port is in range 0..32,768V, otherwise 0..8,192V
|
---|
721 |
|
---|
722 | // XL_DAIO trigger mode
|
---|
723 | #define XL_DAIO_TRIGGER_MODE_NONE 0x00000000 // no trigger configured
|
---|
724 | #define XL_DAIO_TRIGGER_MODE_DIGITAL 0x00000001 // trigger on preconfigured digital lines
|
---|
725 | #define XL_DAIO_TRIGGER_MODE_ANALOG_ASCENDING 0x00000002 // trigger on input 3 ascending
|
---|
726 | #define XL_DAIO_TRIGGER_MODE_ANALOG_DESCENDING 0x00000004 // trigger on input 3 ascending
|
---|
727 | #define XL_DAIO_TRIGGER_MODE_ANALOG (XL_DAIO_TRIGGER_MODE_ANALOG_ASCENDING | \
|
---|
728 | XL_DAIO_TRIGGER_MODE_ANALOG_DESCENDING) // trigger on input 3
|
---|
729 |
|
---|
730 | // XL_DAIO trigger level
|
---|
731 | #define XL_DAIO_TRIGGER_LEVEL_NONE 0 // no trigger level is defined
|
---|
732 |
|
---|
733 | // periodic measurement setting
|
---|
734 | #define XL_DAIO_POLLING_NONE 0 // periodic measurement is disabled
|
---|
735 |
|
---|
736 | // structure for the acceptance filter
|
---|
737 | struct _XLacc_filt {
|
---|
738 | unsigned char isSet;
|
---|
739 | unsigned long code;
|
---|
740 | unsigned long mask; // relevant = 1
|
---|
741 | };
|
---|
742 | typedef struct _XLacc_filt XLaccFilt;
|
---|
743 |
|
---|
744 | // structure for the acceptance filter of one CAN chip
|
---|
745 | struct _XLacceptance {
|
---|
746 | XLaccFilt std;
|
---|
747 | XLaccFilt xtd;
|
---|
748 | };
|
---|
749 | typedef struct _XLacceptance XLacceptance;
|
---|
750 |
|
---|
751 | // defines for xlSetGlobalTimeSync
|
---|
752 | #define XL_SET_TIMESYNC_NO_CHANGE (unsigned long) 0
|
---|
753 | #define XL_SET_TIMESYNC_ON (unsigned long) 1
|
---|
754 | #define XL_SET_TIMESYNC_OFF (unsigned long) 2
|
---|
755 |
|
---|
756 |
|
---|
757 | #include <poppack.h>
|
---|
758 |
|
---|
759 | ////////////////////////////////////////////////////////////////////////////////
|
---|
760 | // MOST lib
|
---|
761 | //------------------------------------------------------------------------------
|
---|
762 | // special MOST defines
|
---|
763 |
|
---|
764 | #define XLuserHandle unsigned short
|
---|
765 |
|
---|
766 | // size of allocation table
|
---|
767 | #define MOST_ALLOC_TABLE_SIZE 64 // size of channel alloctaion table + 4Bytes (MPR, MDR; ?, ?)
|
---|
768 |
|
---|
769 | // max. size of rx fifo for rx event in bytes
|
---|
770 | #define RX_FIFO_MOST_QUEUE_SIZE_MAX 1048576
|
---|
771 |
|
---|
772 | // defines for the event tags
|
---|
773 | #define XL_MOST_START 0x0101
|
---|
774 | #define XL_MOST_STOP 0x0102
|
---|
775 | #define XL_MOST_EVENTSOURCES 0x0103
|
---|
776 | #define XL_MOST_ALLBYPASS 0x0107
|
---|
777 | #define XL_MOST_TIMINGMODE 0x0108
|
---|
778 | #define XL_MOST_FREQUENCY 0x0109
|
---|
779 | #define XL_MOST_REGISTER_BYTES 0x010a
|
---|
780 | #define XL_MOST_REGISTER_BITS 0x010b
|
---|
781 | #define XL_MOST_SPECIAL_REGISTER 0x010c
|
---|
782 | #define XL_MOST_CTRL_RX_SPY 0x010d
|
---|
783 | #define XL_MOST_CTRL_RX_OS8104 0x010e
|
---|
784 | #define XL_MOST_CTRL_TX 0x010f
|
---|
785 | #define XL_MOST_ASYNC_MSG 0x0110
|
---|
786 | #define XL_MOST_ASYNC_TX 0x0111
|
---|
787 | #define XL_MOST_SYNC_ALLOCTABLE 0x0112
|
---|
788 | #define XL_MOST_SYNC_VOLUME_STATUS 0x0116
|
---|
789 | #define XL_MOST_RXLIGHT 0x0117
|
---|
790 | #define XL_MOST_TXLIGHT 0x0118
|
---|
791 | #define XL_MOST_LOCKSTATUS 0x0119
|
---|
792 | #define XL_MOST_ERROR 0x011a
|
---|
793 | #define XL_MOST_CTRL_RXBUFFER 0x011c
|
---|
794 | #define XL_MOST_CTRL_SYNC_AUDIO 0x011f
|
---|
795 | #define XL_MOST_SYNC_MUTE_STATUS 0x0120
|
---|
796 | #define XL_MOST_GENLIGHTERROR 0x0121
|
---|
797 | #define XL_MOST_GENLOCKERROR 0x0122
|
---|
798 | #define XL_MOST_TXLIGHT_POWER 0x0123
|
---|
799 | #define XL_MOST_CTRL_BUSLOAD 0x0126
|
---|
800 | #define XL_MOST_ASYNC_BUSLOAD 0x0127
|
---|
801 | #define XL_MOST_CTRL_SYNC_AUDIO_EX 0x012a
|
---|
802 | #define XL_MOST_TIMINGMODE_SPDIF 0x012b
|
---|
803 | #define XL_MOST_STREAM_STATE 0x012c
|
---|
804 | #define XL_MOST_STREAM_BUFFER 0x012d
|
---|
805 |
|
---|
806 | // defines for xlMostSwitchEventSources
|
---|
807 | #define XL_MOST_SOURCE_ASYNC_SPY 0x8000
|
---|
808 | #define XL_MOST_SOURCE_ASYNC_RX 0x1000
|
---|
809 | #define XL_MOST_SOURCE_ASYNC_TX 0x0800
|
---|
810 | #define XL_MOST_SOURCE_CTRL_OS8104A 0x0400
|
---|
811 | #define XL_MOST_SOURCE_CTRL_SPY 0x0100
|
---|
812 | #define XL_MOST_SOURCE_SYNCLINE 0x0010
|
---|
813 | #define XL_MOST_SOURCE_ASYNC_RX_FIFO_OVER 0x0008
|
---|
814 |
|
---|
815 | // data for XL_MOST_ERROR:
|
---|
816 | #define XL_MOST_OS8104_TX_LOCK_ERROR 0x00000001
|
---|
817 | #define XL_MOST_OS8104_SPDIF_LOCK_ERROR 0x00000002
|
---|
818 | #define XL_MOST_OS8104_ASYNC_BUFFER_FULL 0x00000003
|
---|
819 | #define XL_MOST_OS8104_ASYNC_CRC_ERROR 0x00000004
|
---|
820 | #define XL_MOST_ASYNC_TX_UNDERRUN 0x00000005
|
---|
821 | #define XL_MOST_CTRL_TX_UNDERRUN 0x00000006
|
---|
822 | #define XL_MOST_MCU_TS_CMD_QUEUE_UNDERRUN 0x00000007
|
---|
823 | #define XL_MOST_MCU_TS_CMD_QUEUE_OVERRUN 0x00000008
|
---|
824 | #define XL_MOST_CMD_TX_UNDERRUN 0x00000009
|
---|
825 | #define XL_MOST_SYNCPULSE_ERROR 0x0000000A
|
---|
826 | #define XL_MOST_OS8104_CODING_ERROR 0x0000000B
|
---|
827 | #define XL_MOST_ERROR_UNKNOWN_COMMAND 0x0000000C
|
---|
828 | #define XL_MOST_ASYNC_RX_OVERFLOW_ERROR 0x0000000D
|
---|
829 | #define XL_MOST_FPGA_TS_FIFO_OVERFLOW 0x0000000E
|
---|
830 | #define XL_MOST_SPY_OVERFLOW_ERROR 0x0000000F
|
---|
831 | #define XL_MOST_CTRL_TYPE_QUEUE_OVERFLOW 0x00000010
|
---|
832 | #define XL_MOST_ASYNC_TYPE_QUEUE_OVERFLOW 0x00000011
|
---|
833 | #define XL_MOST_CTRL_UNKNOWN_TYPE 0x00000012
|
---|
834 | #define XL_MOST_CTRL_QUEUE_UNDERRUN 0x00000013
|
---|
835 | #define XL_MOST_ASYNC_UNKNOWN_TYPE 0x00000014
|
---|
836 | #define XL_MOST_ASYNC_QUEUE_UNDERRUN 0x00000015
|
---|
837 |
|
---|
838 | // data for demanded timstamps
|
---|
839 | #define XL_MOST_DEMANDED_START 0x00000001
|
---|
840 |
|
---|
841 | #define XL_MOST_RX_DATA_SIZE 1028
|
---|
842 | #define XL_MOST_TS_DATA_SIZE 12
|
---|
843 | #define XL_MOST_RX_ELEMENT_HEADER_SIZE 32
|
---|
844 | #define XL_MOST_CTRL_RX_SPY_SIZE 36
|
---|
845 | #define XL_MOST_CTRL_RX_OS8104_SIZE 28
|
---|
846 | #define XL_MOST_SPECIAL_REGISTER_CHANGE_SIZE 20
|
---|
847 | #define XL_MOST_ERROR_EV_SIZE_4 4 // dwords
|
---|
848 | #define XL_MOST_ERROR_EV_SIZE 16 // bytes
|
---|
849 |
|
---|
850 |
|
---|
851 | // defines for the audio devices
|
---|
852 | #define XL_MOST_DEVICE_CASE_LINE_IN 0
|
---|
853 | #define XL_MOST_DEVICE_CASE_LINE_OUT 1
|
---|
854 | #define XL_MOST_DEVICE_SPDIF_IN 7
|
---|
855 | #define XL_MOST_DEVICE_SPDIF_OUT 8
|
---|
856 | #define XL_MOST_DEVICE_SPDIF_IN_OUT_SYNC 11
|
---|
857 |
|
---|
858 | // defines for xlMostCtrlSyncAudioEx, mode
|
---|
859 | #define XL_MOST_SPDIF_LOCK_OFF 0
|
---|
860 | #define XL_MOST_SPDIF_LOCK_ON 1
|
---|
861 |
|
---|
862 | // defines for the XL_MOST_SYNC_MUTES_STATUS event
|
---|
863 | #define XL_MOST_NO_MUTE 0
|
---|
864 | #define XL_MOST_MUTE 1
|
---|
865 |
|
---|
866 | // defines for the event sources in XLmostEvent
|
---|
867 | #define XL_MOST_VN2600 0x01
|
---|
868 | #define XL_MOST_OS8104A 0x02
|
---|
869 | #define XL_MOST_OS8104B 0x04
|
---|
870 | #define XL_MOST_SPY 0x08
|
---|
871 |
|
---|
872 | // defines for xlMostSetAllBypass and XL_MOST_ALLBYPASS
|
---|
873 | #define XL_MOST_MODE_DEACTIVATE 0
|
---|
874 | #define XL_MOST_MODE_ACTIVATE 1
|
---|
875 | #define XL_MOST_MODE_FORCE_DEACTIVATE 2
|
---|
876 |
|
---|
877 | #define XL_MOST_RX_BUFFER_CLEAR_ONCE 2
|
---|
878 |
|
---|
879 | // defines for xlMostSetTimingMode and the XL_MOST_TIMINGMODE(_SPDIF)_EV event.
|
---|
880 | #define XL_MOST_TIMING_SLAVE 0
|
---|
881 | #define XL_MOST_TIMING_MASTER 1
|
---|
882 | #define XL_MOST_TIMING_SLAVE_SPDIF_MASTER 2
|
---|
883 | #define XL_MOST_TIMING_SLAVE_SPDIF_SLAVE 3
|
---|
884 | #define XL_MOST_TIMING_MASTER_SPDIF_MASTER 4
|
---|
885 | #define XL_MOST_TIMING_MASTER_SPDIF_SLAVE 5
|
---|
886 | #define XL_MOST_TIMING_MASTER_FROM_SPDIF_SLAVE 6
|
---|
887 |
|
---|
888 |
|
---|
889 | // defines for xlMostSetFrequency and the XL_MOST_FREQUENCY_EV event.
|
---|
890 | #define XL_MOST_FREQUENCY_44100 0
|
---|
891 | #define XL_MOST_FREQUENCY_48000 1
|
---|
892 | #define XL_MOST_FREQUENCY_ERROR 2
|
---|
893 |
|
---|
894 | // defines for xlMostSetTxLight
|
---|
895 | #define XL_MOST_LIGHT_OFF 0
|
---|
896 | #define XL_MOST_LIGHT_FORCE_ON 1 // unmodulated on
|
---|
897 | #define XL_MOST_LIGHT_MODULATED 2 // modulated light
|
---|
898 |
|
---|
899 | //defines for xlMostSetTxLightPower and the XL_MOST_TXLIGHT_POWER_EV event.
|
---|
900 | #define XL_MOST_LIGHT_FULL 100
|
---|
901 | #define XL_MOST_LIGHT_3DB 50
|
---|
902 |
|
---|
903 | // defines for the XL_MOST_LOCKSTATUS event
|
---|
904 | #define XL_MOST_UNLOCK 5
|
---|
905 | #define XL_MOST_LOCK 6
|
---|
906 | #define XL_MOST_STATE_UNKNOWN 9
|
---|
907 |
|
---|
908 | // defines for the XL_MOST_CTRL_RX_OS8104 event (tx event)
|
---|
909 | #define XL_MOST_TX_WHILE_UNLOCKED 0x80000000
|
---|
910 | #define XL_MOST_TX_TIMEOUT 0x40000000
|
---|
911 | #define XL_MOST_DIRECTION_RX 0
|
---|
912 | #define XL_MOST_DIRECTION_TX 1
|
---|
913 |
|
---|
914 | #define XL_MOST_NO_QUEUE_OVERFLOW 0x0000 // No rx-queue overflow occured
|
---|
915 | #define XL_MOST_QUEUE_OVERFLOW 0x8000 // Overflow of rx-queue in firmware when trying to add a rx-event
|
---|
916 | #define XL_MOST_COMMAND_FAILED 0x4000
|
---|
917 | #define XL_MOST_INTERNAL_OVERFLOW 0x2000 // Overflow of command-timestamp-queue in firmware
|
---|
918 | #define XL_MOST_MEASUREMENT_NOT_ACTIVE 0x1000
|
---|
919 | #define XL_MOST_QUEUE_OVERFLOW_ASYNC 0x0800 // Overflow of async rx-queue in firmware when trying to add a packet
|
---|
920 | #define XL_MOST_QUEUE_OVERFLOW_CTRL 0x0400 // Overflow of rx-queue in firmware when trying to add a message
|
---|
921 | #define XL_MOST_NOT_SUPPORTED 0x0200
|
---|
922 | #define XL_MOST_QUEUE_OVERFLOW_DRV 0x0100 // Overflow occured when trying to add an event to application rx-queue
|
---|
923 |
|
---|
924 | #define XL_MOST_NA_CHANGED 0x0001 // node address changed
|
---|
925 | #define XL_MOST_GA_CHANGED 0x0002 // group address changed
|
---|
926 | #define XL_MOST_APA_CHANGED 0x0004 // alternative packet address changed
|
---|
927 | #define XL_MOST_NPR_CHANGED 0x0008 // node position register changed
|
---|
928 | #define XL_MOST_MPR_CHANGED 0x0010 // max position register changed
|
---|
929 | #define XL_MOST_NDR_CHANGED 0x0020 // node delay register changed
|
---|
930 | #define XL_MOST_MDR_CHANGED 0x0040 // max delay register changed
|
---|
931 | #define XL_MOST_SBC_CHANGED 0x0080 //
|
---|
932 | #define XL_MOST_XTIM_CHANGED 0x0100 //
|
---|
933 | #define XL_MOST_XRTY_CHANGED 0x0200 //
|
---|
934 |
|
---|
935 | // defines for the MOST register (xlMostWriteRegister)
|
---|
936 | #define XL_MOST_bGA 0x89 // Group Address
|
---|
937 | #define XL_MOST_bNAH 0x8A // Node Address High
|
---|
938 | #define XL_MOST_bNAL 0x8B // Node Address Low
|
---|
939 | #define XL_MOST_bSDC2 0x8C // Source Data Control 2
|
---|
940 | #define XL_MOST_bSDC3 0x8D // Source Data Control 3
|
---|
941 | #define XL_MOST_bCM2 0x8E // Clock Manager 2
|
---|
942 | #define XL_MOST_bNDR 0x8F // Node Delay
|
---|
943 | #define XL_MOST_bMPR 0x90 // Maximum Position
|
---|
944 | #define XL_MOST_bMDR 0x91 // Maximum Delay
|
---|
945 | #define XL_MOST_bCM4 0x93 // Clock Manager 4
|
---|
946 | #define XL_MOST_bSBC 0x96 // Synchronous Bandwidth Control
|
---|
947 | #define XL_MOST_bXSR2 0x97 // Transceiver Status 2
|
---|
948 |
|
---|
949 | #define XL_MOST_bRTYP 0xA0 // Receive Message Type
|
---|
950 | #define XL_MOST_bRSAH 0xA1 // Source Address High
|
---|
951 | #define XL_MOST_bRSAL 0xA2 // Source Address Low
|
---|
952 | #define XL_MOST_bRCD0 0xA3 // Receive Control Data 0 --> bRCD16 = bRCD0+16
|
---|
953 |
|
---|
954 | #define XL_MOST_bXTIM 0xBE // Transmit Retry Time
|
---|
955 | #define XL_MOST_bXRTY 0xBF // Transmit Retries
|
---|
956 |
|
---|
957 | #define XL_MOST_bXPRI 0xC0 // Transmit Priority
|
---|
958 | #define XL_MOST_bXTYP 0xC1 // Transmit Message Type
|
---|
959 | #define XL_MOST_bXTAH 0xC2 // Target Address High
|
---|
960 | #define XL_MOST_bXTAL 0xC3 // Target Address Low
|
---|
961 | #define XL_MOST_bXCD0 0xC4 // Transmit Control Data 0 --> bXCD16 = bXCD0+16
|
---|
962 |
|
---|
963 | #define XL_MOST_bXTS 0xD5 // Transmit Transfer Status
|
---|
964 |
|
---|
965 | #define XL_MOST_bPCTC 0xE2 // Packet Control
|
---|
966 | #define XL_MOST_bPCTS 0xE3 // Packet Status
|
---|
967 |
|
---|
968 | // defines
|
---|
969 | #define XL_MOST_SPY_RX_STATUS_NO_LIGHT 0x01
|
---|
970 | #define XL_MOST_SPY_RX_STATUS_NO_LOCK 0x02
|
---|
971 | #define XL_MOST_SPY_RX_STATUS_BIPHASE_ERROR 0x04
|
---|
972 | #define XL_MOST_SPY_RX_STATUS_MESSAGE_LENGTH_ERROR 0x08
|
---|
973 | #define XL_MOST_SPY_RX_STATUS_PARITY_ERROR 0x10
|
---|
974 | #define XL_MOST_SPY_RX_STATUS_FRAME_LENGTH_ERROR 0x20
|
---|
975 | #define XL_MOST_SPY_RX_STATUS_PREAMBLE_TYPE_ERROR 0x40
|
---|
976 | #define XL_MOST_SPY_RX_STATUS_CRC_ERROR 0x80
|
---|
977 |
|
---|
978 | // defines for status of async frames
|
---|
979 | #define XL_MOST_ASYNC_NO_ERROR 0x00
|
---|
980 | #define XL_MOST_ASYNC_SBC_ERROR 0x0C
|
---|
981 | #define XL_MOST_ASYNC_NEXT_STARTS_TO_EARLY 0x0D
|
---|
982 | #define XL_MOST_ASYNC_TO_LONG 0x0E
|
---|
983 |
|
---|
984 | #define XL_MOST_ASYNC_UNLOCK 0x0F // unlock occured within receiption of packet
|
---|
985 |
|
---|
986 | // defines for XL_MOST_SYNC_PULSE_EV member trigger_source
|
---|
987 | #define SYNC_PULSE_EXTERNAL 0x00
|
---|
988 | #define SYNC_PULSE_OUR 0x01
|
---|
989 |
|
---|
990 | // ctrlType value within the XL_CTRL_SPY event
|
---|
991 | #define XL_MOST_CTRL_TYPE_NORMAL 0x00
|
---|
992 | #define XL_MOST_CTRL_TYPE_REMOTE_READ 0x01
|
---|
993 | #define XL_MOST_CTRL_TYPE_REMOTE_WRITE 0x02
|
---|
994 | #define XL_MOST_CTRL_TYPE_RESOURCE_ALLOCATE 0x03
|
---|
995 | #define XL_MOST_CTRL_TYPE_RESOURCE_DEALLOCATE 0x04
|
---|
996 | #define XL_MOST_CTRL_TYPE_GET_SOURCE 0x05
|
---|
997 |
|
---|
998 | // counterType for the xlMost****GenerateBusload function
|
---|
999 | #define XL_MOST_BUSLOAD_COUNTER_TYPE_NONE 0x00
|
---|
1000 | #define XL_MOST_BUSLOAD_COUNTER_TYPE_1_BYTE 0x01
|
---|
1001 | #define XL_MOST_BUSLOAD_COUNTER_TYPE_2_BYTE 0x02
|
---|
1002 | #define XL_MOST_BUSLOAD_COUNTER_TYPE_3_BYTE 0x03
|
---|
1003 | #define XL_MOST_BUSLOAD_COUNTER_TYPE_4_BYTE 0x04
|
---|
1004 |
|
---|
1005 | // selection bits for xlMostGetDeviceStates / CMD_GET_DEVICE_STATE->selection_mask
|
---|
1006 | #define XL_MOST_STATESEL_LIGHTLOCK 0x0001
|
---|
1007 | #define XL_MOST_STATESEL_REGISTERBUNCH1 0x0002
|
---|
1008 | #define XL_MOST_STATESEL_BYPASSTIMING 0x0004
|
---|
1009 | #define XL_MOST_STATESEL_REGISTERBUNCH2 0x0008
|
---|
1010 | #define XL_MOST_STATESEL_REGISTERBUNCH3 0x0010
|
---|
1011 | #define XL_MOST_STATESEL_VOLUMEMUTE 0x0020
|
---|
1012 | #define XL_MOST_STATESEL_EVENTSOURCE 0x0040
|
---|
1013 | #define XL_MOST_STATESEL_RXBUFFERMODE 0x0080
|
---|
1014 | #define XL_MOST_STATESEL_ALLOCTABLE 0x0100
|
---|
1015 | #define XL_MOST_STATESEL_SUPERVISOR_LOCKSTATUS 0x0200
|
---|
1016 | #define XL_MOST_STATESEL_SUPERVISOR_MESSAGE 0x0400
|
---|
1017 |
|
---|
1018 | // defines for sync data streaming
|
---|
1019 | #define XL_MOST_STREAM_RX_DATA 0 // RX streaming: MOST -> PC
|
---|
1020 | #define XL_MOST_STREAM_TX_DATA 1 // TX streaming: PC -> MOST
|
---|
1021 |
|
---|
1022 | #define XL_MOST_STREAM_ADD_FRAME_HEADER 1 // only for RX: additionally the orig. TS + status information are reported
|
---|
1023 |
|
---|
1024 | // stream states
|
---|
1025 | #define XL_MOST_STREAM_STATE_CLOSED 0x01
|
---|
1026 | #define XL_MOST_STREAM_STATE_OPENED 0x02
|
---|
1027 | #define XL_MOST_STREAM_STATE_STARTED 0x03
|
---|
1028 | #define XL_MOST_STREAM_STATE_STOPPED 0x04
|
---|
1029 | #define XL_MOST_STREAM_STATE_START_PENDING 0x05 // waiting for result from hw
|
---|
1030 | #define XL_MOST_STREAM_STATE_STOP_PENDING 0x06 // waiting for result from hw
|
---|
1031 | #define XL_MOST_STREAM_STATE_UNKNOWN 0xFF
|
---|
1032 |
|
---|
1033 | // stream modes
|
---|
1034 | #define XL_MOST_STREAM_ACTIVATE 0
|
---|
1035 | #define XL_MOST_STREAM_DEACTIVATE 1
|
---|
1036 |
|
---|
1037 | #define XL_MOST_STREAM_INVALID_HANDLE 0
|
---|
1038 |
|
---|
1039 | // latency values
|
---|
1040 | #define XL_MOST_STREAM_LATENCY_VERY_LOW 0
|
---|
1041 | #define XL_MOST_STREAM_LATENCY_LOW 1
|
---|
1042 | #define XL_MOST_STREAM_LATENCY_MEDIUM 2
|
---|
1043 | #define XL_MOST_STREAM_LATENCY_HIGH 3
|
---|
1044 | #define XL_MOST_STREAM_LATENCY_VERY_HIGH 4
|
---|
1045 |
|
---|
1046 | // error defines for sync data streaming
|
---|
1047 | #define XL_MOST_STREAM_ERR_NO_ERROR 0x00
|
---|
1048 | #define XL_MOST_STREAM_ERR_INVALID_HANDLE 0x01
|
---|
1049 | #define XL_MOST_STREAM_ERR_NO_MORE_BUFFERS_AVAILABLE 0x02
|
---|
1050 | #define XL_MOST_STREAM_ERR_ANY_BUFFER_LOCKED 0x03
|
---|
1051 | #define XL_MOST_STREAM_ERR_WRITE_RE_FAILED 0x04
|
---|
1052 | #define XL_MOST_STREAM_ERR_STREAM_ALREADY_STARTED 0x05
|
---|
1053 | #define XL_MOST_STREAM_ERR_TX_BUFFER_UNDERRUN 0x06
|
---|
1054 | #define XL_MOST_STREAM_ERR_RX_BUFFER_OVERFLOW 0x07
|
---|
1055 | #define XL_MOST_STREAM_ERR_INSUFFICIENT_RESOURCES 0x08
|
---|
1056 |
|
---|
1057 |
|
---|
1058 | #include <pshpack8.h>
|
---|
1059 | // -------------------------------------------------------------
|
---|
1060 | // Structures for MOST events
|
---|
1061 | // -------------------------------------------------------------
|
---|
1062 |
|
---|
1063 | typedef struct s_xl_most_ctrl_spy {
|
---|
1064 | unsigned int arbitration;
|
---|
1065 | unsigned short targetAddress;
|
---|
1066 | unsigned short sourceAddress;
|
---|
1067 | unsigned char ctrlType;
|
---|
1068 | unsigned char ctrlData[17];
|
---|
1069 | unsigned short crc;
|
---|
1070 | unsigned short txStatus;
|
---|
1071 | unsigned short ctrlRes;
|
---|
1072 | unsigned int spyRxStatus;
|
---|
1073 | } XL_MOST_CTRL_SPY_EV;
|
---|
1074 |
|
---|
1075 | typedef struct s_xl_most_ctrl_msg {
|
---|
1076 | unsigned char ctrlPrio;
|
---|
1077 | unsigned char ctrlType;
|
---|
1078 | unsigned short targetAddress;
|
---|
1079 | unsigned short sourceAddress;
|
---|
1080 | unsigned char ctrlData[17];
|
---|
1081 | unsigned char direction; // transmission or real receiption
|
---|
1082 | unsigned int status; // unused for real rx msgs
|
---|
1083 | } XL_MOST_CTRL_MSG_EV;
|
---|
1084 |
|
---|
1085 | typedef struct s_xl_most_async_msg {
|
---|
1086 | unsigned int status; // read as last data from PLD but stored first
|
---|
1087 | unsigned int crc; // not used
|
---|
1088 | unsigned char arbitration;
|
---|
1089 | unsigned char length; // real length of async data in quadlets
|
---|
1090 | unsigned short targetAddress;
|
---|
1091 | unsigned short sourceAddress;
|
---|
1092 | unsigned char asyncData[1018]; // max size but only used data is transmitted to pc
|
---|
1093 | } XL_MOST_ASYNC_MSG_EV;
|
---|
1094 |
|
---|
1095 | typedef struct s_xl_most_async_tx {
|
---|
1096 | unsigned char arbitration;
|
---|
1097 | unsigned char length; // real length of async data in quadlets
|
---|
1098 | unsigned short targetAddress;
|
---|
1099 | unsigned short sourceAddress;
|
---|
1100 | unsigned char asyncData[1014]; // worst case
|
---|
1101 | } XL_MOST_ASYNC_TX_EV;
|
---|
1102 |
|
---|
1103 | typedef struct s_xl_most_special_register {
|
---|
1104 | unsigned int changeMask; // see defines "XL_MOST_..._CHANGED"
|
---|
1105 | unsigned int lockStatus;
|
---|
1106 | unsigned char register_bNAH;
|
---|
1107 | unsigned char register_bNAL;
|
---|
1108 | unsigned char register_bGA;
|
---|
1109 | unsigned char register_bAPAH;
|
---|
1110 | unsigned char register_bAPAL;
|
---|
1111 | unsigned char register_bNPR;
|
---|
1112 | unsigned char register_bMPR;
|
---|
1113 | unsigned char register_bNDR;
|
---|
1114 | unsigned char register_bMDR;
|
---|
1115 | unsigned char register_bSBC;
|
---|
1116 | unsigned char register_bXTIM;
|
---|
1117 | unsigned char register_bXRTY;
|
---|
1118 | } XL_MOST_SPECIAL_REGISTER_EV;
|
---|
1119 |
|
---|
1120 | typedef struct s_xl_most_event_source {
|
---|
1121 | unsigned int mask;
|
---|
1122 | unsigned int state;
|
---|
1123 | } XL_MOST_EVENT_SOURCE_EV;
|
---|
1124 |
|
---|
1125 | typedef struct s_xl_most_all_bypass {
|
---|
1126 | unsigned int bypassState;
|
---|
1127 | } XL_MOST_ALL_BYPASS_EV;
|
---|
1128 |
|
---|
1129 | typedef struct s_xl_most_timing_mode {
|
---|
1130 | unsigned int timingmode;
|
---|
1131 | } XL_MOST_TIMING_MODE_EV;
|
---|
1132 |
|
---|
1133 | typedef struct s_xl_most_timing_mode_spdif {
|
---|
1134 | unsigned int timingmode;
|
---|
1135 | } XL_MOST_TIMING_MODE_SPDIF_EV;
|
---|
1136 |
|
---|
1137 | typedef struct s_xl_most_frequency {
|
---|
1138 | unsigned int frequency;
|
---|
1139 | } XL_MOST_FREQUENCY_EV;
|
---|
1140 |
|
---|
1141 | typedef struct s_xl_most_register_bytes {
|
---|
1142 | unsigned int number;
|
---|
1143 | unsigned int address;
|
---|
1144 | unsigned char value[16];
|
---|
1145 | } XL_MOST_REGISTER_BYTES_EV;
|
---|
1146 |
|
---|
1147 | typedef struct s_xl_most_register_bits {
|
---|
1148 | unsigned int address;
|
---|
1149 | unsigned int value;
|
---|
1150 | unsigned int mask;
|
---|
1151 | } XL_MOST_REGISTER_BITS_EV;
|
---|
1152 |
|
---|
1153 | typedef struct s_xl_most_sync_alloc {
|
---|
1154 | unsigned char allocTable[MOST_ALLOC_TABLE_SIZE];
|
---|
1155 | } XL_MOST_SYNC_ALLOC_EV;
|
---|
1156 |
|
---|
1157 | typedef struct s_xl_most_ctrl_sync_audio {
|
---|
1158 | unsigned int channelMask[4];
|
---|
1159 | unsigned int device;
|
---|
1160 | unsigned int mode;
|
---|
1161 | } XL_MOST_CTRL_SYNC_AUDIO_EV;
|
---|
1162 |
|
---|
1163 | typedef struct s_xl_most_ctrl_sync_audio_ex {
|
---|
1164 | unsigned int channelMask[16];
|
---|
1165 | unsigned int device;
|
---|
1166 | unsigned int mode;
|
---|
1167 | } XL_MOST_CTRL_SYNC_AUDIO_EX_EV;
|
---|
1168 |
|
---|
1169 | typedef struct s_xl_most_sync_volume_status {
|
---|
1170 | unsigned int device;
|
---|
1171 | unsigned int volume;
|
---|
1172 | } XL_MOST_SYNC_VOLUME_STATUS_EV;
|
---|
1173 |
|
---|
1174 | typedef struct s_xl_most_sync_mutes_status {
|
---|
1175 | unsigned int device;
|
---|
1176 | unsigned int mute;
|
---|
1177 | } XL_MOST_SYNC_MUTES_STATUS_EV;
|
---|
1178 |
|
---|
1179 | typedef struct s_xl_most_rx_light {
|
---|
1180 | unsigned int light;
|
---|
1181 | } XL_MOST_RX_LIGHT_EV;
|
---|
1182 |
|
---|
1183 | typedef struct s_xl_most_tx_light {
|
---|
1184 | unsigned int light;
|
---|
1185 | } XL_MOST_TX_LIGHT_EV;
|
---|
1186 |
|
---|
1187 | typedef struct s_xl_most_light_power {
|
---|
1188 | unsigned int lightPower;
|
---|
1189 | } XL_MOST_LIGHT_POWER_EV;
|
---|
1190 |
|
---|
1191 | typedef struct s_xl_most_lock_status {
|
---|
1192 | unsigned int lockStatus;
|
---|
1193 | } XL_MOST_LOCK_STATUS_EV;
|
---|
1194 |
|
---|
1195 | typedef struct s_xl_most_supervisor_lock_status {
|
---|
1196 | unsigned int supervisorLockStatus;
|
---|
1197 | } XL_MOST_SUPERVISOR_LOCK_STATUS_EV;
|
---|
1198 |
|
---|
1199 | typedef struct s_xl_most_gen_light_error {
|
---|
1200 | unsigned int lightOnTime;
|
---|
1201 | unsigned int lightOffTime;
|
---|
1202 | unsigned int repeat;
|
---|
1203 | } XL_MOST_GEN_LIGHT_ERROR_EV;
|
---|
1204 |
|
---|
1205 | typedef struct s_xl_most_gen_lock_error {
|
---|
1206 | unsigned int lockOnTime;
|
---|
1207 | unsigned int lockOffTime;
|
---|
1208 | unsigned int repeat;
|
---|
1209 | } XL_MOST_GEN_LOCK_ERROR_EV;
|
---|
1210 |
|
---|
1211 | typedef struct s_xl_most_rx_buffer {
|
---|
1212 | unsigned int mode;
|
---|
1213 | } XL_MOST_RX_BUFFER_EV;
|
---|
1214 |
|
---|
1215 | typedef struct s_xl_most_error {
|
---|
1216 | unsigned int errorCode;
|
---|
1217 | unsigned int parameter[3];
|
---|
1218 | } XL_MOST_ERROR_EV;
|
---|
1219 |
|
---|
1220 | typedef struct s_xl_most_sync_pulse {
|
---|
1221 | unsigned int triggerSource; // e.g. external or internal trigger source
|
---|
1222 | unsigned __int64 time; // internal generated timestamp
|
---|
1223 | } XL_MOST_SYNC_PULSE_EV;
|
---|
1224 |
|
---|
1225 | typedef struct s_xl_most_ctrl_busload {
|
---|
1226 | unsigned int busloadCtrlStarted;
|
---|
1227 | } XL_MOST_CTRL_BUSLOAD_EV;
|
---|
1228 |
|
---|
1229 | typedef struct s_xl_most_async_busload {
|
---|
1230 | unsigned int busloadAsyncStarted;
|
---|
1231 | } XL_MOST_ASYNC_BUSLOAD_EV;
|
---|
1232 |
|
---|
1233 | typedef struct s_xl_most_stream_state {
|
---|
1234 | unsigned int streamHandle;
|
---|
1235 | unsigned int streamState; // see XL_MOST_STREAM_STATE_...
|
---|
1236 | unsigned int streamError; // see XL_MOST_STREAM_ERR_...
|
---|
1237 | unsigned int reserved;
|
---|
1238 | } XL_MOST_STREAM_STATE_EV;
|
---|
1239 |
|
---|
1240 | typedef struct s_xl_most_stream_buffer {
|
---|
1241 | unsigned int streamHandle;
|
---|
1242 | unsigned char *POINTER_32 pBuffer;
|
---|
1243 | unsigned int validBytes;
|
---|
1244 | unsigned int status; // // see XL_MOST_STREAM_ERR_...
|
---|
1245 | unsigned int pBuffer_highpart;
|
---|
1246 | } XL_MOST_STREAM_BUFFER_EV;
|
---|
1247 |
|
---|
1248 |
|
---|
1249 | #define XL_MOST_EVENT_HEADER_SIZE 32
|
---|
1250 | #define XL_MOST_EVENT_MAX_DATA_SIZE 1024
|
---|
1251 | #define XL_MOST_EVENT_MAX_SIZE (XL_MOST_EVENT_HEADER_SIZE + XL_MOST_EVENT_MAX_DATA_SIZE)
|
---|
1252 |
|
---|
1253 | // rx event definition
|
---|
1254 | union s_xl_most_tag_data {
|
---|
1255 | XL_MOST_CTRL_SPY_EV mostCtrlSpy;
|
---|
1256 | XL_MOST_CTRL_MSG_EV mostCtrlMsg;
|
---|
1257 | XL_MOST_ASYNC_MSG_EV mostAsyncMsg; // received async frame
|
---|
1258 | XL_MOST_ASYNC_TX_EV mostAsyncTx; // async frame tx acknowledge
|
---|
1259 | XL_MOST_SPECIAL_REGISTER_EV mostSpecialRegister;
|
---|
1260 | XL_MOST_EVENT_SOURCE_EV mostEventSource;
|
---|
1261 | XL_MOST_ALL_BYPASS_EV mostAllBypass;
|
---|
1262 | XL_MOST_TIMING_MODE_EV mostTimingMode;
|
---|
1263 | XL_MOST_TIMING_MODE_SPDIF_EV mostTimingModeSpdif;
|
---|
1264 | XL_MOST_FREQUENCY_EV mostFrequency;
|
---|
1265 | XL_MOST_REGISTER_BYTES_EV mostRegisterBytes;
|
---|
1266 | XL_MOST_REGISTER_BITS_EV mostRegisterBits;
|
---|
1267 | XL_MOST_SYNC_ALLOC_EV mostSyncAlloc;
|
---|
1268 | XL_MOST_CTRL_SYNC_AUDIO_EV mostCtrlSyncAudio;
|
---|
1269 | XL_MOST_CTRL_SYNC_AUDIO_EX_EV mostCtrlSyncAudioEx;
|
---|
1270 | XL_MOST_SYNC_VOLUME_STATUS_EV mostSyncVolumeStatus;
|
---|
1271 | XL_MOST_SYNC_MUTES_STATUS_EV mostSyncMuteStatus;
|
---|
1272 | XL_MOST_RX_LIGHT_EV mostRxLight;
|
---|
1273 | XL_MOST_TX_LIGHT_EV mostTxLight;
|
---|
1274 | XL_MOST_LIGHT_POWER_EV mostLightPower;
|
---|
1275 | XL_MOST_LOCK_STATUS_EV mostLockStatus;
|
---|
1276 | XL_MOST_GEN_LIGHT_ERROR_EV mostGenLightError;
|
---|
1277 | XL_MOST_GEN_LOCK_ERROR_EV mostGenLockError;
|
---|
1278 | XL_MOST_RX_BUFFER_EV mostRxBuffer;
|
---|
1279 | XL_MOST_ERROR_EV mostError;
|
---|
1280 | XL_MOST_SYNC_PULSE_EV mostSyncPulse;
|
---|
1281 | XL_MOST_CTRL_BUSLOAD_EV mostCtrlBusload;
|
---|
1282 | XL_MOST_ASYNC_BUSLOAD_EV mostAsyncBusload;
|
---|
1283 | XL_MOST_STREAM_STATE_EV mostStreamState;
|
---|
1284 | XL_MOST_STREAM_BUFFER_EV mostStreamBuffer;
|
---|
1285 | };
|
---|
1286 |
|
---|
1287 |
|
---|
1288 | typedef unsigned short XLmostEventTag;
|
---|
1289 |
|
---|
1290 | struct s_xl_most_event {
|
---|
1291 | unsigned int size; // 4 - overall size of the complete event
|
---|
1292 | XLmostEventTag tag; // 2 - type of the event
|
---|
1293 | unsigned short channelIndex; // 2
|
---|
1294 | unsigned int userHandle; // 4 - internal use only
|
---|
1295 | unsigned short flagsChip; // 2
|
---|
1296 | unsigned short reserved; // 2
|
---|
1297 | XLuint64 timeStamp; // 8
|
---|
1298 | XLuint64 timeStampSync; // 8
|
---|
1299 | // ---------
|
---|
1300 | // 32 bytes -> XL_MOST_EVENT_HEADER_SIZE
|
---|
1301 | union s_xl_most_tag_data tagData;
|
---|
1302 | };
|
---|
1303 |
|
---|
1304 | typedef struct s_xl_most_event XLmostEvent;
|
---|
1305 |
|
---|
1306 | typedef XL_MOST_CTRL_MSG_EV XLmostCtrlMsg;
|
---|
1307 | typedef XL_MOST_ASYNC_TX_EV XLmostAsyncMsg;
|
---|
1308 |
|
---|
1309 | typedef struct s_xl_most_ctrl_busload_configuration {
|
---|
1310 | unsigned int transmissionRate;
|
---|
1311 | unsigned int counterType;
|
---|
1312 | unsigned int counterPosition;
|
---|
1313 | XL_MOST_CTRL_MSG_EV busloadCtrlMsg;
|
---|
1314 | } XL_MOST_CTRL_BUSLOAD_CONFIGURATION;
|
---|
1315 |
|
---|
1316 |
|
---|
1317 | typedef struct s_xl_most_async_busload_configuration {
|
---|
1318 | unsigned int transmissionRate;
|
---|
1319 | unsigned int counterType;
|
---|
1320 | unsigned int counterPosition;
|
---|
1321 | XL_MOST_ASYNC_TX_EV busloadAsyncMsg;
|
---|
1322 | } XL_MOST_ASYNC_BUSLOAD_CONFIGURATION;
|
---|
1323 |
|
---|
1324 | typedef XL_MOST_CTRL_BUSLOAD_CONFIGURATION XLmostCtrlBusloadConfiguration;
|
---|
1325 | typedef XL_MOST_ASYNC_BUSLOAD_CONFIGURATION XLmostAsyncBusloadConfiguration;
|
---|
1326 |
|
---|
1327 | typedef struct s_xl_most_device_state {
|
---|
1328 | unsigned int selectionMask;
|
---|
1329 | // XL_MOST_STATESEL_LIGHTLOCK
|
---|
1330 | unsigned int lockState; // see XL_MOST_LOCK_STATUS_EV
|
---|
1331 | unsigned int rxLight; // see XL_MOST_RX_LIGHT_EV
|
---|
1332 | unsigned int txLight; // see XL_MOST_TX_LIGHT_EV
|
---|
1333 | unsigned int txLightPower; // see XL_MOST_LIGHT_POWER_EV
|
---|
1334 | // XL_MOST_STATESEL_REGISTERBUNCH1
|
---|
1335 | unsigned char registerBunch1[16]; // 16 OS8104 registers (0x87...0x96 -> NPR...SBC)
|
---|
1336 | // XL_MOST_STATESEL_BYPASSTIMING
|
---|
1337 | unsigned int bypassState; // see XL_MOST_ALL_BYPASS_EV
|
---|
1338 | unsigned int timingMode; // see XL_MOST_TIMING_MODE_EV
|
---|
1339 | unsigned int frequency; // frame rate (if master); see XL_MOST_FREQUENCY_EV
|
---|
1340 | // XL_MOST_STATESEL_REGISTERBUNCH2
|
---|
1341 | unsigned char registerBunch2[2]; // 2 OS8104 registers (0xBE, 0xBF -> XTIM, XRTY)
|
---|
1342 | // XL_MOST_STATESEL_REGISTERBUNCH3
|
---|
1343 | unsigned char registerBunch3[2]; // 2 OS8104 registers (0xE8, 0xE9 -> APAH, APAL)
|
---|
1344 | // XL_MOST_STATESEL_VOLUMEMUTE
|
---|
1345 | unsigned int volume[2]; // volume state for DEVICE_CASE_LINE_IN, DEVICE_CASE_LINE_OUT
|
---|
1346 | unsigned int mute[2]; // mute state for DEVICE_CASE_LINE_IN, DEVICE_CASE_LINE_OUT
|
---|
1347 | // XL_MOST_STATESEL_EVENTSOURCE
|
---|
1348 | unsigned int eventSource; // see XL_MOST_EVENT_SOURCE_EV
|
---|
1349 | // XL_MOST_STATESEL_RXBUFFERMODE
|
---|
1350 | unsigned int rxBufferMode; // see XL_MOST_RX_BUFFER_EV
|
---|
1351 | // XL_MOST_STATESEL_ALLOCTABLE
|
---|
1352 | unsigned char allocTable[MOST_ALLOC_TABLE_SIZE]; // see XL_MOST_SYNC_ALLOC_EV
|
---|
1353 | // XL_MOST_STATESEL_SUPERVISOR_LOCKSTATUS
|
---|
1354 | unsigned int supervisorLockStatus;
|
---|
1355 | // XL_MOST_STATESEL_SUPERVISOR_MESSAGE
|
---|
1356 | unsigned int broadcastedConfigStatus;
|
---|
1357 | unsigned int adrNetworkMaster;
|
---|
1358 | unsigned int abilityToWake;
|
---|
1359 | } XL_MOST_DEVICE_STATE;
|
---|
1360 |
|
---|
1361 | typedef XL_MOST_DEVICE_STATE XLmostDeviceState;
|
---|
1362 |
|
---|
1363 | typedef struct s_xl_most_stream_open {
|
---|
1364 | unsigned int* pStreamHandle;
|
---|
1365 | unsigned int numSyncChannels;
|
---|
1366 | unsigned int direction;
|
---|
1367 | unsigned int options;
|
---|
1368 | unsigned int latency;
|
---|
1369 | } XL_MOST_STREAM_OPEN;
|
---|
1370 |
|
---|
1371 | typedef XL_MOST_STREAM_OPEN XLmostStreamOpen;
|
---|
1372 |
|
---|
1373 | typedef struct s_xl_most_stream_info {
|
---|
1374 | unsigned int streamHandle;
|
---|
1375 | unsigned int numSyncChannels;
|
---|
1376 | unsigned int direction;
|
---|
1377 | unsigned int options;
|
---|
1378 | unsigned int latency;
|
---|
1379 | unsigned int streamState;
|
---|
1380 | unsigned int reserved;
|
---|
1381 | unsigned char syncChannels[60];
|
---|
1382 | } XL_MOST_STREAM_INFO;
|
---|
1383 |
|
---|
1384 | typedef XL_MOST_STREAM_INFO XLmostStreamInfo;
|
---|
1385 |
|
---|
1386 |
|
---|
1387 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1388 | // FlexRay XL API
|
---|
1389 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1390 |
|
---|
1391 | #define XL_FR_MAX_DATA_LENGTH 254
|
---|
1392 |
|
---|
1393 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1394 | // event tags
|
---|
1395 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1396 |
|
---|
1397 | #define XL_FR_START_CYCLE ((unsigned short)0x0080)
|
---|
1398 | #define XL_FR_RX_FRAME ((unsigned short)0x0081)
|
---|
1399 | #define XL_FR_TX_FRAME ((unsigned short)0x0082)
|
---|
1400 | #define XL_FR_TXACK_FRAME ((unsigned short)0x0083)
|
---|
1401 | #define XL_FR_INVALID_FRAME ((unsigned short)0x0084)
|
---|
1402 | #define XL_FR_WAKEUP ((unsigned short)0x0085)
|
---|
1403 | #define XL_FR_SYMBOL_WINDOW ((unsigned short)0x0086)
|
---|
1404 | #define XL_FR_ERROR ((unsigned short)0x0087)
|
---|
1405 | #define XL_FR_ERROR_POC_MODE ((unsigned char)0x01)
|
---|
1406 | #define XL_FR_ERROR_SYNC_FRAMES_BELOWMIN ((unsigned char)0x02)
|
---|
1407 | #define XL_FR_ERROR_SYNC_FRAMES_OVERLOAD ((unsigned char)0x03)
|
---|
1408 | #define XL_FR_ERROR_CLOCK_CORR_FAILURE ((unsigned char)0x04)
|
---|
1409 | #define XL_FR_ERROR_NIT_FAILURE ((unsigned char)0x05)
|
---|
1410 | #define XL_FR_ERROR_CC_ERROR ((unsigned char)0x06)
|
---|
1411 | #define XL_FR_STATUS ((unsigned short)0x0088)
|
---|
1412 | #define XL_FR_NM_VECTOR ((unsigned short)0x008A)
|
---|
1413 | #define XL_FR_TRANCEIVER_STATUS ((unsigned short)0x008B)
|
---|
1414 | #define XL_FR_SPY_FRAME ((unsigned short)0x008E)
|
---|
1415 | #define XL_FR_SPY_SYMBOL ((unsigned short)0x008F)
|
---|
1416 |
|
---|
1417 |
|
---|
1418 | // Attention: The timer event type has to have the same number as CANcardXL, CANboardXL, ...
|
---|
1419 |
|
---|
1420 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1421 | // function structures
|
---|
1422 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1423 |
|
---|
1424 | // structure for xlFrSetConfiguration
|
---|
1425 | typedef struct s_xl_fr_cluster_configuration {
|
---|
1426 |
|
---|
1427 | unsigned int busGuardianEnable;
|
---|
1428 | unsigned int baudrate;
|
---|
1429 | unsigned int busGuardianTick;
|
---|
1430 | unsigned int externalClockCorrectionMode;
|
---|
1431 | unsigned int gColdStartAttempts;
|
---|
1432 | unsigned int gListenNoise;
|
---|
1433 | unsigned int gMacroPerCycle;
|
---|
1434 | unsigned int gMaxWithoutClockCorrectionFatal;
|
---|
1435 | unsigned int gMaxWithoutClockCorrectionPassive;
|
---|
1436 | unsigned int gNetworkManagementVectorLength;
|
---|
1437 | unsigned int gNumberOfMinislots;
|
---|
1438 | unsigned int gNumberOfStaticSlots;
|
---|
1439 | unsigned int gOffsetCorrectionStart;
|
---|
1440 | unsigned int gPayloadLengthStatic;
|
---|
1441 | unsigned int gSyncNodeMax;
|
---|
1442 | unsigned int gdActionPointOffset;
|
---|
1443 | unsigned int gdDynamicSlotIdlePhase;
|
---|
1444 | unsigned int gdMacrotick;
|
---|
1445 | unsigned int gdMinislot;
|
---|
1446 | unsigned int gdMiniSlotActionPointOffset;
|
---|
1447 | unsigned int gdNIT;
|
---|
1448 | unsigned int gdStaticSlot;
|
---|
1449 | unsigned int gdSymbolWindow;
|
---|
1450 | unsigned int gdTSSTransmitter;
|
---|
1451 | unsigned int gdWakeupSymbolRxIdle;
|
---|
1452 | unsigned int gdWakeupSymbolRxLow;
|
---|
1453 | unsigned int gdWakeupSymbolRxWindow;
|
---|
1454 | unsigned int gdWakeupSymbolTxIdle;
|
---|
1455 | unsigned int gdWakeupSymbolTxLow;
|
---|
1456 | unsigned int pAllowHaltDueToClock;
|
---|
1457 | unsigned int pAllowPassiveToActive;
|
---|
1458 | unsigned int pChannels;
|
---|
1459 | unsigned int pClusterDriftDamping;
|
---|
1460 | unsigned int pDecodingCorrection;
|
---|
1461 | unsigned int pDelayCompensationA;
|
---|
1462 | unsigned int pDelayCompensationB;
|
---|
1463 | unsigned int pExternOffsetCorrection;
|
---|
1464 | unsigned int pExternRateCorrection;
|
---|
1465 | unsigned int pKeySlotUsedForStartup;
|
---|
1466 | unsigned int pKeySlotUsedForSync;
|
---|
1467 | unsigned int pLatestTx;
|
---|
1468 | unsigned int pMacroInitialOffsetA;
|
---|
1469 | unsigned int pMacroInitialOffsetB;
|
---|
1470 | unsigned int pMaxPayloadLengthDynamic;
|
---|
1471 | unsigned int pMicroInitialOffsetA;
|
---|
1472 | unsigned int pMicroInitialOffsetB;
|
---|
1473 | unsigned int pMicroPerCycle;
|
---|
1474 | unsigned int pMicroPerMacroNom;
|
---|
1475 | unsigned int pOffsetCorrectionOut;
|
---|
1476 | unsigned int pRateCorrectionOut;
|
---|
1477 | unsigned int pSamplesPerMicrotick;
|
---|
1478 | unsigned int pSingleSlotEnabled;
|
---|
1479 | unsigned int pWakeupChannel;
|
---|
1480 | unsigned int pWakeupPattern;
|
---|
1481 | unsigned int pdAcceptedStartupRange;
|
---|
1482 | unsigned int pdListenTimeout;
|
---|
1483 | unsigned int pdMaxDrift;
|
---|
1484 | unsigned int pdMicrotick;
|
---|
1485 | unsigned int gdCASRxLowMax;
|
---|
1486 | unsigned int gChannels;
|
---|
1487 | unsigned int vExternOffsetControl;
|
---|
1488 | unsigned int vExternRateControl;
|
---|
1489 | unsigned int pChannelsMTS;
|
---|
1490 |
|
---|
1491 | unsigned int framePresetData; //!< 16-bit value with data for pre-initializing the Flexray payload data words
|
---|
1492 |
|
---|
1493 | unsigned int reserved[15];
|
---|
1494 | } XLfrClusterConfig;
|
---|
1495 |
|
---|
1496 |
|
---|
1497 | // structure and defines for function xlFrGetChannelConfig
|
---|
1498 | typedef struct s_xl_fr_channel_config {
|
---|
1499 | unsigned int status; // XL_FR_CHANNEL_CFG_STATUS_xxx
|
---|
1500 | unsigned int cfgMode; // XL_FR_CHANNEL_CFG_MODE_xxx
|
---|
1501 | unsigned int reserved[6];
|
---|
1502 | XLfrClusterConfig xlFrClusterConfig; // same as used in function xlFrSetConfig
|
---|
1503 | } XLfrChannelConfig;
|
---|
1504 |
|
---|
1505 | // defines for XLfrChannelConfig::status
|
---|
1506 | #define XL_FR_CHANNEL_CFG_STATUS_INIT_APP_PRESENT ((unsigned int) 0x01)
|
---|
1507 | #define XL_FR_CHANNEL_CFG_STATUS_CHANNEL_ACTIVATED ((unsigned int) 0x02)
|
---|
1508 | #define XL_FR_CHANNEL_CFG_STATUS_VALID_CLUSTER_CFG ((unsigned int) 0x04)
|
---|
1509 | #define XL_FR_CHANNEL_CFG_STATUS_VALID_CFG_MODE ((unsigned int) 0x08)
|
---|
1510 |
|
---|
1511 | // defines for XLfrChannelConfig::cfgMode
|
---|
1512 | #define XL_FR_CHANNEL_CFG_MODE_SYNCHRONOUS 1
|
---|
1513 | #define XL_FR_CHANNEL_CFG_MODE_COMBINED 2
|
---|
1514 | #define XL_FR_CHANNEL_CFG_MODE_ASYNCHRONOUS 3
|
---|
1515 |
|
---|
1516 |
|
---|
1517 | // defines for xlFrSetMode (frModes)
|
---|
1518 | #define XL_FR_MODE_NORMAL 0x00 //!< setup the VN3000 (eRay) normal operation mode. (default mode)
|
---|
1519 | #define XL_FR_MODE_COLD_NORMAL 0x04 //!< setup the VN3000 (Fujitsu) normal operation mode. (default mode)
|
---|
1520 |
|
---|
1521 | // defines for xlFrSetMode (frStartupAttributes)
|
---|
1522 | #define XL_FR_MODE_NONE 0x00 //!< for normal use
|
---|
1523 | #define XL_FR_MODE_WAKEUP 0x01 //!< for wakeup
|
---|
1524 | #define XL_FR_MODE_COLDSTART_LEADING 0x02 //!< Coldstart path initiating the schedule synchronization
|
---|
1525 | #define XL_FR_MODE_COLDSTART_FOLLOWING 0x03 //!< Coldstart path joining other coldstart nodes
|
---|
1526 | #define XL_FR_MODE_WAKEUP_AND_COLDSTART_LEADING 0x04 //!< Send Wakeup and Coldstart path initiating the schedule synchronization
|
---|
1527 | #define XL_FR_MODE_WAKEUP_AND_COLDSTART_FOLLOWING 0x05 //!< Send Wakeup and Coldstart path joining other coldstart nodes
|
---|
1528 |
|
---|
1529 | // structure for xlFrSetMode
|
---|
1530 | typedef struct s_xl_fr_set_modes {
|
---|
1531 | unsigned int frMode;
|
---|
1532 | unsigned int frStartupAttributes;
|
---|
1533 | unsigned int reserved[30];
|
---|
1534 | } XLfrMode;
|
---|
1535 |
|
---|
1536 | // defines for xlFrSetupSymbolWindow
|
---|
1537 | #define XL_FR_SYMBOL_MTS 0x01 //!< defines a MTS (Media Access Test Symbol)
|
---|
1538 | #define XL_FR_SYMBOL_CAS 0x02 //!< defines a CAS (Collision Avoidance Symbol)
|
---|
1539 |
|
---|
1540 |
|
---|
1541 | // FR transceiver xlFrSetTransceiverMode modes
|
---|
1542 | #define XL_FR_TRANSCEIVER_MODE_SLEEP 0x01
|
---|
1543 | #define XL_FR_TRANSCEIVER_MODE_NORMAL 0x02
|
---|
1544 | #define XL_FR_TRANSCEIVER_MODE_RECEIVE_ONLY 0x03
|
---|
1545 | #define XL_FR_TRANSCEIVER_MODE_STANDBY 0x04
|
---|
1546 |
|
---|
1547 | // defines for XL_FR_SYNC_PULSE_EV member triggerSource
|
---|
1548 | #define XL_FR_SYNC_PULSE_EXTERNAL 0x00
|
---|
1549 | #define XL_FR_SYNC_PULSE_OUR 0x01
|
---|
1550 | #define XL_FR_SYNC_PULSE_OUR_SHARED 0x02
|
---|
1551 |
|
---|
1552 | // defines for xlFrActivateSpy, mode
|
---|
1553 | #define XL_FR_SPY_MODE_ASYNCHRONOUS 0x01
|
---|
1554 |
|
---|
1555 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1556 | // Flags for the flagsChip parameter
|
---|
1557 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1558 | #define XL_FR_CHANNEL_A ((unsigned short)0x01)
|
---|
1559 | #define XL_FR_CHANNEL_B ((unsigned short)0x02)
|
---|
1560 | #define XL_FR_CHANNEL_AB ((unsigned short)(XL_FR_CHANNEL_A|XL_FR_CHANNEL_B))
|
---|
1561 | #define XL_FR_CC_COLD_A ((unsigned short)0x04) //!< second CC channel A to initiate the coldstart
|
---|
1562 | #define XL_FR_CC_COLD_B ((unsigned short)0x08) //!< second CC channel B to initiate the coldstart
|
---|
1563 | #define XL_FR_CC_COLD_AB ((unsigned short)(XL_FR_CC_COLD_A|XL_FR_CC_COLD_B))
|
---|
1564 | #define XL_FR_SPY_CHANNEL_A ((unsigned short)0x10) //!< Spy mode flags
|
---|
1565 | #define XL_FR_SPY_CHANNEL_B ((unsigned short)0x20) //!< Spy mode flags
|
---|
1566 |
|
---|
1567 | #define XL_FR_QUEUE_OVERFLOW ((unsigned short)0x0100) //!< driver queue overflow
|
---|
1568 |
|
---|
1569 |
|
---|
1570 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1571 | // T_FLEXRAY_FRAME structure flags / defines
|
---|
1572 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1573 | // defines for T_FLEXRAY_FRAME member flags
|
---|
1574 | #define XL_FR_FRAMEFLAG_STARTUP ((unsigned short) 0x0001) //!< indicates a startup frame
|
---|
1575 | #define XL_FR_FRAMEFLAG_SYNC ((unsigned short) 0x0002) //!< indicates a sync frame
|
---|
1576 | #define XL_FR_FRAMEFLAG_NULLFRAME ((unsigned short) 0x0004) //!< indicates a nullframe
|
---|
1577 | #define XL_FR_FRAMEFLAG_PAYLOAD_PREAMBLE ((unsigned short) 0x0008) //!< indicates a present payload preamble bit
|
---|
1578 | #define XL_FR_FRAMEFLAG_FR_RESERVED ((unsigned short) 0x0010) //!< reserved by Flexray protocol
|
---|
1579 |
|
---|
1580 | #define XL_FR_FRAMEFLAG_REQ_TXACK ((unsigned short) 0x0020) //!< used for Tx events only
|
---|
1581 | #define XL_FR_FRAMEFLAG_TXACK_SS XL_FR_FRAMEFLAG_REQ_TXACK //!< indicates TxAck of SingleShot; used for TxAck events only
|
---|
1582 | #define XL_FR_FRAMEFLAG_RX_UNEXPECTED XL_FR_FRAMEFLAG_REQ_TXACK //!< indicates unexpected Rx frame; used for Rx events only
|
---|
1583 |
|
---|
1584 | #define XL_FR_FRAMEFLAG_NEW_DATA_TX ((unsigned short) 0x0040) //!< flag used with TxAcks to indicate first TxAck after data update
|
---|
1585 | #define XL_FR_FRAMEFLAG_DATA_UPDATE_LOST ((unsigned short) 0x0080) //!< flag used with TxAcks indicating that data update has been lost
|
---|
1586 |
|
---|
1587 | #define XL_FR_FRAMEFLAG_SYNTAX_ERROR ((unsigned short) 0x0200)
|
---|
1588 | #define XL_FR_FRAMEFLAG_CONTENT_ERROR ((unsigned short) 0x0400)
|
---|
1589 | #define XL_FR_FRAMEFLAG_SLOT_BOUNDARY_VIOLATION ((unsigned short) 0x0800)
|
---|
1590 | #define XL_FR_FRAMEFLAG_TX_CONFLICT ((unsigned short) 0x1000)
|
---|
1591 | #define XL_FR_FRAMEFLAG_EMPTY_SLOT ((unsigned short) 0x2000)
|
---|
1592 | #define XL_FR_FRAMEFLAG_FRAME_TRANSMITTED ((unsigned short) 0x8000) //!< Only used with TxAcks: Frame has been transmitted. If not set after transmission, an error has occurred.
|
---|
1593 |
|
---|
1594 | // XL_FR_SPY_FRAME_EV event: frameError value
|
---|
1595 | #define XL_FR_SPY_FRAMEFLAG_FRAMING_ERROR ((unsigned char)0x01)
|
---|
1596 | #define XL_FR_SPY_FRAMEFLAG_HEADER_CRC_ERROR ((unsigned char)0x02)
|
---|
1597 | #define XL_FR_SPY_FRAMEFLAG_FRAME_CRC_ERROR ((unsigned char)0x04)
|
---|
1598 |
|
---|
1599 | // XL_FR_SPY_FRAME_EV event: frameCRC value
|
---|
1600 | #define XL_FR_SPY_FRAMEFLAG_FRAME_CRC_NEW_LAYOUT ((unsigned int)0x80000000)
|
---|
1601 |
|
---|
1602 | // XL_FR_TX_FRAME event: txMode flags
|
---|
1603 | #define XL_FR_TX_MODE_CYCLIC ((unsigned char)0x01) //!< 'normal' cyclic mode
|
---|
1604 | #define XL_FR_TX_MODE_SINGLE_SHOT ((unsigned char)0x02) //!< sends only a single shot
|
---|
1605 | #define XL_FR_TX_MODE_NONE ((unsigned char)0xff) //!< switch off TX
|
---|
1606 |
|
---|
1607 | // XL_FR_TX_FRAME event: incrementSize values
|
---|
1608 | #define XL_FR_PAYLOAD_INCREMENT_8BIT ((unsigned char) 8)
|
---|
1609 | #define XL_FR_PAYLOAD_INCREMENT_16BIT ((unsigned char) 16)
|
---|
1610 | #define XL_FR_PAYLOAD_INCREMENT_32BIT ((unsigned char) 32)
|
---|
1611 |
|
---|
1612 | // XL_FR_STATUS event: statusType (POC status)
|
---|
1613 | #define XL_FR_STATUS_DEFAULT_CONFIG 0x00 //!< indicates the actual state of the POC in operation control
|
---|
1614 | #define XL_FR_STATUS_READY 0x01 //!< ...
|
---|
1615 | #define XL_FR_STATUS_NORMAL_ACTIVE 0x02 //!< ...
|
---|
1616 | #define XL_FR_STATUS_NORMAL_PASSIVE 0x03 //!< ...
|
---|
1617 | #define XL_FR_STATUS_HALT 0x04 //!< ...
|
---|
1618 | #define XL_FR_STATUS_MONITOR_MODE 0x05 //!< ...
|
---|
1619 | #define XL_FR_STATUS_CONFIG 0x0f //!< ...
|
---|
1620 |
|
---|
1621 | #define XL_FR_STATUS_WAKEUP_STANDBY 0x10 //!< indicates the actual state of the POC in the wakeup path
|
---|
1622 | #define XL_FR_STATUS_WAKEUP_LISTEN 0x11 //!< ...
|
---|
1623 | #define XL_FR_STATUS_WAKEUP_SEND 0x12 //!< ...
|
---|
1624 | #define XL_FR_STATUS_WAKEUP_DETECT 0x13 //!< ...
|
---|
1625 |
|
---|
1626 | #define XL_FR_STATUS_STARTUP_PREPARE 0x20 //!< indicates the actual state of the POC in the startup path
|
---|
1627 | #define XL_FR_STATUS_COLDSTART_LISTEN 0x21 //!< ...
|
---|
1628 | #define XL_FR_STATUS_COLDSTART_COLLISION_RESOLUTION 0x22 //!< ...
|
---|
1629 | #define XL_FR_STATUS_COLDSTART_CONSISTENCY_CHECK 0x23 //!< ...
|
---|
1630 | #define XL_FR_STATUS_COLDSTART_GAP 0x24 //!< ...
|
---|
1631 | #define XL_FR_STATUS_COLDSTART_JOIN 0x25 //!< ...
|
---|
1632 | #define XL_FR_STATUS_INTEGRATION_COLDSTART_CHECK 0x26 //!< ...
|
---|
1633 | #define XL_FR_STATUS_INTEGRATION_LISTEN 0x27 //!< ...
|
---|
1634 | #define XL_FR_STATUS_INTEGRATION_CONSISTENCY_CHECK 0x28 //!< ...
|
---|
1635 | #define XL_FR_STATUS_INITIALIZE_SCHEDULE 0x29 //!< ...
|
---|
1636 | #define XL_FR_STATUS_ABORT_STARTUP 0x2a //!< ...
|
---|
1637 | #define XL_FR_STATUS_STARTUP_SUCCESS 0x2b //!< ...
|
---|
1638 |
|
---|
1639 | // XL_FR_ERROR event: XL_FR_ERROR_POC_MODE, errorMode
|
---|
1640 | #define XL_FR_ERROR_POC_ACTIVE 0x00 //!< Indicates the actual error mode of the POC: active (green)
|
---|
1641 | #define XL_FR_ERROR_POC_PASSIVE 0x01 //!< Indicates the actual error mode of the POC: passive (yellow)
|
---|
1642 | #define XL_FR_ERROR_POC_COMM_HALT 0x02 //!< Indicates the actual error mode of the POC: comm-halt (red)
|
---|
1643 |
|
---|
1644 | // XL_FR_ERROR event: XL_FR_ERROR_NIT_FAILURE, flags
|
---|
1645 | #define XL_FR_ERROR_NIT_SENA 0x100 //!< Syntax Error during NIT Channel A
|
---|
1646 | #define XL_FR_ERROR_NIT_SBNA 0x200 //!< Slot Boundary Violation during NIT Channel B
|
---|
1647 | #define XL_FR_ERROR_NIT_SENB 0x400 //!< Syntax Error during NIT Channel A
|
---|
1648 | #define XL_FR_ERROR_NIT_SBNB 0x800 //!< Slot Boundary Violation during NIT Channel B
|
---|
1649 |
|
---|
1650 | // XL_FR_ERROR event: XL_FR_ERROR_CLOCK_CORR_FAILURE, flags
|
---|
1651 | #define XL_FR_ERROR_MISSING_OFFSET_CORRECTION 0x00000001 //!< Set if no sync frames were received. -> no offset correction possible.
|
---|
1652 | #define XL_FR_ERROR_MAX_OFFSET_CORRECTION_REACHED 0x00000002 //!< Set if max. offset correction limit is reached.
|
---|
1653 | #define XL_FR_ERROR_MISSING_RATE_CORRECTION 0x00000004 //!< Set if no even/odd sync frames were received -> no rate correction possible.
|
---|
1654 | #define XL_FR_ERROR_MAX_RATE_CORRECTION_REACHED 0x00000008 //!< Set if max. rate correction limit is reached.
|
---|
1655 |
|
---|
1656 | // XL_FR_ERROR event: XL_FR_ERROR_CC_ERROR, erayEir
|
---|
1657 | #define XL_FR_ERROR_CC_PERR 0x00000040 //!< Parity Error, data from MHDS (internal ERay error)
|
---|
1658 | #define XL_FR_ERROR_CC_IIBA 0x00000200 //!< Illegal Input Buffer Access (internal ERay error)
|
---|
1659 | #define XL_FR_ERROR_CC_IOBA 0x00000400 //!< Illegal Output Buffer Access (internal ERay error)
|
---|
1660 | #define XL_FR_ERROR_CC_MHF 0x00000800 //!< Message Handler Constraints Flag data from MHDF (internal ERay error)
|
---|
1661 | #define XL_FR_ERROR_CC_EDA 0x00010000 //!< Error Detection on channel A, data from ACS
|
---|
1662 | #define XL_FR_ERROR_CC_LTVA 0x00020000 //!< Latest Transmit Violation on channel A
|
---|
1663 | #define XL_FR_ERROR_CC_TABA 0x00040000 //!< Transmit Across Boundary on Channel A
|
---|
1664 | #define XL_FR_ERROR_CC_EDB 0x01000000 //!< Error Detection on channel B, data from ACS
|
---|
1665 | #define XL_FR_ERROR_CC_LTVB 0x02000000 //!< Latest Transmit Violation on channel B
|
---|
1666 | #define XL_FR_ERROR_CC_TABB 0x04000000 //!< Transmit Across Boundary on Channel B
|
---|
1667 |
|
---|
1668 | // XL_FR_WAKEUP event: wakeupStatus
|
---|
1669 | #define XL_FR_WAKEUP_UNDEFINED 0x00 //!< No wakeup attempt since CONFIG state was left. (e.g. when a wakeup pattern A|B is received)
|
---|
1670 | #define XL_FR_WAKEUP_RECEIVED_HEADER 0x01 //!< Frame header without coding violation received.
|
---|
1671 | #define XL_FR_WAKEUP_RECEIVED_WUP 0x02 //!< Wakeup pattern on the configured wakeup channel received.
|
---|
1672 | #define XL_FR_WAKEUP_COLLISION_HEADER 0x03 //!< Detected collision during wakeup pattern transmission received.
|
---|
1673 | #define XL_FR_WAKEUP_COLLISION_WUP 0x04 //!< Collision during wakeup pattern transmission received.
|
---|
1674 | #define XL_FR_WAKEUP_COLLISION_UNKNOWN 0x05 //!< Set when the CC stops wakeup.
|
---|
1675 | #define XL_FR_WAKEUP_TRANSMITTED 0x06 //!< Completed the transmission of the wakeup pattern.
|
---|
1676 | #define XL_FR_WAKEUP_EXTERNAL_WAKEUP 0x07 //!< wakeup comes from external
|
---|
1677 | #define XL_FR_WAKEUP_WUP_RECEIVED_WITHOUT_WUS_TX 0x10 //!< wakeupt pattern received from flexray bus
|
---|
1678 | #define XL_FR_WAKEUP_RESERVED 0xFF
|
---|
1679 |
|
---|
1680 | // XL_FR_SYMBOL_WINDOW event: flags
|
---|
1681 | #define XL_FR_SYMBOL_STATUS_SESA 0x01 //!< Syntax Error in Symbol Window Channel A
|
---|
1682 | #define XL_FR_SYMBOL_STATUS_SBSA 0x02 //!< Slot Boundary Violation in Symbol Window Channel A
|
---|
1683 | #define XL_FR_SYMBOL_STATUS_TCSA 0x04 //!< Transmission Conflict in Symbol Window Channel A
|
---|
1684 | #define XL_FR_SYMBOL_STATUS_SESB 0x08 //!< Syntax Error in Symbol Window Channel B
|
---|
1685 | #define XL_FR_SYMBOL_STATUS_SBSB 0x10 //!< Slot Boundary Violation in Symbol Window Channel B
|
---|
1686 | #define XL_FR_SYMBOL_STATUS_TCSB 0x20 //!< Transmission Conflict in Symbol Window Channel B
|
---|
1687 | #define XL_FR_SYMBOL_STATUS_MTSA 0x40 //!< MTS received in Symbol Window Channel A
|
---|
1688 | #define XL_FR_SYMBOL_STATUS_MTSB 0x80 //!< MTS received in Symbol Window Channel B
|
---|
1689 |
|
---|
1690 |
|
---|
1691 | #include <pshpack8.h>
|
---|
1692 |
|
---|
1693 | #define XL_FR_RX_EVENT_HEADER_SIZE 32
|
---|
1694 | #define XL_FR_MAX_EVENT_SIZE 512
|
---|
1695 |
|
---|
1696 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1697 | // Structures for FlexRay events
|
---|
1698 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1699 |
|
---|
1700 | typedef struct s_xl_fr_start_cycle {
|
---|
1701 | unsigned int cycleCount;
|
---|
1702 | int vRateCorrection;
|
---|
1703 | int vOffsetCorrection;
|
---|
1704 | unsigned int vClockCorrectionFailed;
|
---|
1705 | unsigned int vAllowPassivToActive;
|
---|
1706 | unsigned int reserved[3];
|
---|
1707 | } XL_FR_START_CYCLE_EV;
|
---|
1708 |
|
---|
1709 | typedef struct s_xl_fr_rx_frame {
|
---|
1710 | unsigned short flags;
|
---|
1711 | unsigned short headerCRC;
|
---|
1712 | unsigned short slotID;
|
---|
1713 | unsigned char cycleCount;
|
---|
1714 | unsigned char payloadLength;
|
---|
1715 | unsigned char data[XL_FR_MAX_DATA_LENGTH];
|
---|
1716 | } XL_FR_RX_FRAME_EV;
|
---|
1717 |
|
---|
1718 | typedef struct s_xl_fr_tx_frame {
|
---|
1719 | unsigned short flags;
|
---|
1720 | unsigned short slotID;
|
---|
1721 | unsigned char offset;
|
---|
1722 | unsigned char repetition;
|
---|
1723 | unsigned char payloadLength;
|
---|
1724 | unsigned char txMode;
|
---|
1725 | unsigned char incrementSize;
|
---|
1726 | unsigned char incrementOffset;
|
---|
1727 | unsigned char reserved0;
|
---|
1728 | unsigned char reserved1;
|
---|
1729 | unsigned char data[XL_FR_MAX_DATA_LENGTH];
|
---|
1730 | } XL_FR_TX_FRAME_EV;
|
---|
1731 |
|
---|
1732 | typedef struct s_xl_fr_wakeup {
|
---|
1733 | unsigned char cycleCount; //!< Actual cyclecount.
|
---|
1734 | unsigned char wakeupStatus; //!< XL_FR_WAKEUP_UNDEFINED, ...
|
---|
1735 | unsigned char reserved[6];
|
---|
1736 | } XL_FR_WAKEUP_EV;
|
---|
1737 |
|
---|
1738 | typedef struct s_xl_fr_symbol_window {
|
---|
1739 | unsigned int symbol; //!< XL_FR_SYMBOL_MTS, ...
|
---|
1740 | unsigned int flags; //!< XL_FR_SYMBOL_STATUS_SESA, ...
|
---|
1741 | unsigned char cycleCount; //!< Actual cyclecount.
|
---|
1742 | unsigned char reserved[7];
|
---|
1743 | } XL_FR_SYMBOL_WINDOW_EV;
|
---|
1744 |
|
---|
1745 | typedef struct s_xl_fr_status {
|
---|
1746 | unsigned int statusType; //!< POC status XL_FR_STATUS_ defines like, normal, active...
|
---|
1747 | unsigned int reserved;
|
---|
1748 | } XL_FR_STATUS_EV;
|
---|
1749 |
|
---|
1750 | typedef struct s_xl_fr_nm_vector {
|
---|
1751 | unsigned char nmVector[12];
|
---|
1752 | unsigned char cycleCount; //!< Actual cyclecount.
|
---|
1753 | unsigned char reserved[3];
|
---|
1754 | } XL_FR_NM_VECTOR_EV;
|
---|
1755 |
|
---|
1756 | typedef struct s_xl_fr_sync_pulse {
|
---|
1757 | unsigned int triggerSource; //!< e.g. external or internal trigger source
|
---|
1758 | XLuint64 time; //!< internal generated timestamp
|
---|
1759 | } XL_FR_SYNC_PULSE_EV;
|
---|
1760 |
|
---|
1761 | typedef struct s_xl_fr_error_poc_mode {
|
---|
1762 | unsigned char errorMode; //!< error mode like: active, passive, comm_halt
|
---|
1763 | unsigned char reserved[3];
|
---|
1764 | } XL_FR_ERROR_POC_MODE_EV;
|
---|
1765 |
|
---|
1766 | typedef struct s_xl_fr_error_sync_frames {
|
---|
1767 | unsigned short evenSyncFramesA; //!< valid RX/TX sync frames on frCh A for even cycles
|
---|
1768 | unsigned short oddSyncFramesA; //!< valid RX/TX sync frames on frCh A for odd cycles
|
---|
1769 | unsigned short evenSyncFramesB; //!< valid RX/TX sync frames on frCh B for even cycles
|
---|
1770 | unsigned short oddSyncFramesB; //!< valid RX/TX sync frames on frCh B for odd cycles
|
---|
1771 | unsigned int reserved;
|
---|
1772 | } XL_FR_ERROR_SYNC_FRAMES_EV;
|
---|
1773 |
|
---|
1774 | typedef struct s_xl_fr_error_clock_corr_failure {
|
---|
1775 | unsigned short evenSyncFramesA; //!< valid RX/TX sync frames on frCh A for even cycles
|
---|
1776 | unsigned short oddSyncFramesA; //!< valid RX/TX sync frames on frCh A for odd cycles
|
---|
1777 | unsigned short evenSyncFramesB; //!< valid RX/TX sync frames on frCh B for even cycles
|
---|
1778 | unsigned short oddSyncFramesB; //!< valid RX/TX sync frames on frCh B for odd cycles
|
---|
1779 | unsigned int flags; //!< missing/maximum rate/offset correction flags.
|
---|
1780 | unsigned int clockCorrFailedCounter; //!< E-Ray: CCEV register (CCFC value)
|
---|
1781 | unsigned int reserved;
|
---|
1782 | } XL_FR_ERROR_CLOCK_CORR_FAILURE_EV;
|
---|
1783 |
|
---|
1784 | typedef struct s_xl_fr_error_nit_failure {
|
---|
1785 | unsigned int flags; //!< flags for NIT boundary, syntax error...
|
---|
1786 | unsigned int reserved;
|
---|
1787 | } XL_FR_ERROR_NIT_FAILURE_EV;
|
---|
1788 |
|
---|
1789 | typedef struct s_xl_fr_error_cc_error {
|
---|
1790 | unsigned int ccError; //!< internal CC errors (Transmit Across Boundary, Transmit Violation...)
|
---|
1791 | unsigned int reserved;
|
---|
1792 | } XL_FR_ERROR_CC_ERROR_EV;
|
---|
1793 |
|
---|
1794 | union s_xl_fr_error_info {
|
---|
1795 | XL_FR_ERROR_POC_MODE_EV frPocMode; //!< E-RAY: EIR_PEMC
|
---|
1796 | XL_FR_ERROR_SYNC_FRAMES_EV frSyncFramesBelowMin; //!< E-RAY: EIR_SFBM
|
---|
1797 | XL_FR_ERROR_SYNC_FRAMES_EV frSyncFramesOverload; //!< E-RAY: EIR_SFO
|
---|
1798 | XL_FR_ERROR_CLOCK_CORR_FAILURE_EV frClockCorrectionFailure;//!< E-RAY: EIR_CCF
|
---|
1799 | XL_FR_ERROR_NIT_FAILURE_EV frNitFailure; //!< NIT part of the E_RAY: SWNIT register
|
---|
1800 | XL_FR_ERROR_CC_ERROR_EV frCCError; //!< internal CC error flags (E-RAY: EIR)
|
---|
1801 | };
|
---|
1802 |
|
---|
1803 | typedef struct s_xl_fr_error {
|
---|
1804 | unsigned char tag;
|
---|
1805 | unsigned char cycleCount;
|
---|
1806 | unsigned char reserved[6];
|
---|
1807 | union s_xl_fr_error_info errorInfo;
|
---|
1808 | } XL_FR_ERROR_EV;
|
---|
1809 |
|
---|
1810 | typedef struct s_xl_fr_spy_frame {
|
---|
1811 | unsigned int frameLength;
|
---|
1812 | unsigned char frameError; //!< XL_FR_SPY_FRAMEFLAG_XXX values
|
---|
1813 | unsigned char tssLength;
|
---|
1814 | unsigned short headerFlags;
|
---|
1815 | unsigned short slotID;
|
---|
1816 | unsigned short headerCRC;
|
---|
1817 | unsigned char payloadLength;
|
---|
1818 | unsigned char cycleCount;
|
---|
1819 | unsigned short reserved;
|
---|
1820 | unsigned int frameCRC;
|
---|
1821 | unsigned char data[XL_FR_MAX_DATA_LENGTH];
|
---|
1822 | } XL_FR_SPY_FRAME_EV;
|
---|
1823 |
|
---|
1824 | typedef struct s_xl_fr_spy_symbol {
|
---|
1825 | unsigned short lowLength;
|
---|
1826 | unsigned short reserved;
|
---|
1827 | } XL_FR_SPY_SYMBOL_EV;
|
---|
1828 |
|
---|
1829 |
|
---|
1830 | #define XL_NOTIFY_REASON_CHANNEL_ACTIVATION 1
|
---|
1831 | #define XL_NOTIFY_REASON_CHANNEL_DEACTIVATION 2
|
---|
1832 | #define XL_NOTIFY_REASON_PORT_CLOSED 3
|
---|
1833 |
|
---|
1834 | typedef struct s_xl_application_notification {
|
---|
1835 | unsigned int notifyReason; // XL_NOTIFY_REASON_xxx
|
---|
1836 | unsigned int reserved[7];
|
---|
1837 | } XL_APPLICATION_NOTIFICATION_EV;
|
---|
1838 |
|
---|
1839 |
|
---|
1840 |
|
---|
1841 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1842 | // rx event definition
|
---|
1843 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1844 |
|
---|
1845 | union s_xl_fr_tag_data {
|
---|
1846 | XL_FR_START_CYCLE_EV frStartCycle;
|
---|
1847 | XL_FR_RX_FRAME_EV frRxFrame;
|
---|
1848 | XL_FR_TX_FRAME_EV frTxFrame;
|
---|
1849 | XL_FR_WAKEUP_EV frWakeup;
|
---|
1850 | XL_FR_SYMBOL_WINDOW_EV frSymbolWindow;
|
---|
1851 | XL_FR_ERROR_EV frError;
|
---|
1852 | XL_FR_STATUS_EV frStatus;
|
---|
1853 | XL_FR_NM_VECTOR_EV frNmVector;
|
---|
1854 | XL_FR_SYNC_PULSE_EV frSyncPulse;
|
---|
1855 | XL_FR_SPY_FRAME_EV frSpyFrame;
|
---|
1856 | XL_FR_SPY_SYMBOL_EV frSpySymbol;
|
---|
1857 |
|
---|
1858 | XL_APPLICATION_NOTIFICATION_EV applicationNotification;
|
---|
1859 |
|
---|
1860 | unsigned char raw[XL_FR_MAX_EVENT_SIZE - XL_FR_RX_EVENT_HEADER_SIZE];
|
---|
1861 | };
|
---|
1862 |
|
---|
1863 | typedef unsigned short XLfrEventTag;
|
---|
1864 |
|
---|
1865 | struct s_xl_fr_event {
|
---|
1866 | unsigned int size; // 4 - overall size of the complete event
|
---|
1867 | XLfrEventTag tag; // 2 - type of the event
|
---|
1868 | unsigned short channelIndex; // 2
|
---|
1869 | unsigned int userHandle; // 4
|
---|
1870 | unsigned short flagsChip; // 2 - frChannel e.g. XL_FR_CHANNEL_A (lower 8 bit), queue overflow (upper 8bit)
|
---|
1871 | unsigned short reserved; // 2
|
---|
1872 | XLuint64 timeStamp; // 8 - raw timestamp
|
---|
1873 | XLuint64 timeStampSync; // 8 - timestamp which is synchronized by the driver
|
---|
1874 | // ---------
|
---|
1875 | // 32 bytes -> XL_FR_RX_EVENT_HEADER_SIZE
|
---|
1876 | union s_xl_fr_tag_data tagData;
|
---|
1877 | };
|
---|
1878 |
|
---|
1879 | typedef struct s_xl_fr_event XLfrEvent;
|
---|
1880 |
|
---|
1881 |
|
---|
1882 | #include <poppack.h>
|
---|
1883 |
|
---|
1884 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1885 | // MOST150 XL API
|
---|
1886 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1887 |
|
---|
1888 | #define XL_MOST150_RX_EVENT_HEADER_SIZE (unsigned short) 32
|
---|
1889 | #define XL_MOST150_MAX_EVENT_DATA_SIZE (unsigned int) 2048
|
---|
1890 | #define MOST150_SYNC_ALLOC_INFO_SIZE (unsigned int) 372
|
---|
1891 |
|
---|
1892 | #define XL_MOST150_CTRL_PAYLOAD_MAX_SIZE (unsigned short) 45
|
---|
1893 | #define XL_MOST150_ASYNC_PAYLOAD_MAX_SIZE (unsigned short) 1524 // maximum valid length (s. INIC User Manual)
|
---|
1894 | #define XL_MOST150_ETHERNET_PAYLOAD_MAX_SIZE (unsigned short) 1506 // maximum valid length (s. INIC User Manual)
|
---|
1895 | #define XL_MOST150_ASYNC_SEND_PAYLOAD_MAX_SIZE (unsigned short) 1600 // maximum length for sending a MDP
|
---|
1896 | #define XL_MOST150_ETHERNET_SEND_PAYLOAD_MAX_SIZE (unsigned short) 1600 // maximum length for sending a MEP
|
---|
1897 |
|
---|
1898 | //////////////////////////////////////////////////////////////
|
---|
1899 | // event tags
|
---|
1900 | //////////////////////////////////////////////////////////////
|
---|
1901 | #define XL_START (unsigned short) 0x0200
|
---|
1902 | #define XL_STOP (unsigned short) 0x0201
|
---|
1903 | #define XL_MOST150_EVENT_SOURCE (unsigned short) 0x0203
|
---|
1904 | #define XL_MOST150_DEVICE_MODE (unsigned short) 0x0204
|
---|
1905 | #define XL_MOST150_SYNC_ALLOC_INFO (unsigned short) 0x0205
|
---|
1906 | #define XL_MOST150_FREQUENCY (unsigned short) 0x0206
|
---|
1907 | #define XL_MOST150_SPECIAL_NODE_INFO (unsigned short) 0x0207
|
---|
1908 | #define XL_MOST150_CTRL_RX (unsigned short) 0x0208
|
---|
1909 | #define XL_MOST150_CTRL_TX_ACK (unsigned short) 0x0209
|
---|
1910 | #define XL_MOST150_ASYNC_SPY (unsigned short) 0x020A
|
---|
1911 | #define XL_MOST150_ASYNC_RX (unsigned short) 0x020B
|
---|
1912 | #define XL_MOST150_SYNC_VOLUME_STATUS (unsigned short) 0x020D
|
---|
1913 | #define XL_MOST150_TX_LIGHT (unsigned short) 0x020E
|
---|
1914 | #define XL_MOST150_RXLIGHT_LOCKSTATUS (unsigned short) 0x020F
|
---|
1915 | #define XL_MOST150_ERROR (unsigned short) 0x0210
|
---|
1916 | #define XL_MOST150_CONFIGURE_RX_BUFFER (unsigned short) 0x0211
|
---|
1917 | #define XL_MOST150_CTRL_SYNC_AUDIO (unsigned short) 0x0212
|
---|
1918 | #define XL_MOST150_SYNC_MUTE_STATUS (unsigned short) 0x0213
|
---|
1919 | #define XL_MOST150_LIGHT_POWER (unsigned short) 0x0214
|
---|
1920 | #define XL_MOST150_GEN_LIGHT_ERROR (unsigned short) 0x0215
|
---|
1921 | #define XL_MOST150_GEN_LOCK_ERROR (unsigned short) 0x0216
|
---|
1922 | #define XL_MOST150_CTRL_BUSLOAD (unsigned short) 0x0217
|
---|
1923 | #define XL_MOST150_ASYNC_BUSLOAD (unsigned short) 0x0218
|
---|
1924 | #define XL_MOST150_ETHERNET_RX (unsigned short) 0x0219
|
---|
1925 | #define XL_MOST150_SYSTEMLOCK_FLAG (unsigned short) 0x021A
|
---|
1926 | #define XL_MOST150_SHUTDOWN_FLAG (unsigned short) 0x021B
|
---|
1927 | #define XL_MOST150_CTRL_SPY (unsigned short) 0x021C
|
---|
1928 | #define XL_MOST150_ASYNC_TX_ACK (unsigned short) 0x021D
|
---|
1929 | #define XL_MOST150_ETHERNET_SPY (unsigned short) 0x021E
|
---|
1930 | #define XL_MOST150_ETHERNET_TX_ACK (unsigned short) 0x021F
|
---|
1931 | #define XL_MOST150_SPDIFMODE (unsigned short) 0x0220
|
---|
1932 | #define XL_MOST150_ECL_LINE_CHANGED (unsigned short) 0x0222
|
---|
1933 | #define XL_MOST150_ECL_TERMINATION_CHANGED (unsigned short) 0x0223
|
---|
1934 | #define XL_MOST150_NW_STARTUP (unsigned short) 0x0224
|
---|
1935 | #define XL_MOST150_NW_SHUTDOWN (unsigned short) 0x0225
|
---|
1936 | #define XL_MOST150_STREAM_STATE (unsigned short) 0x0226
|
---|
1937 | #define XL_MOST150_STREAM_TX_BUFFER (unsigned short) 0x0227
|
---|
1938 | #define XL_MOST150_STREAM_RX_BUFFER (unsigned short) 0x0228
|
---|
1939 | #define XL_MOST150_STREAM_TX_LABEL (unsigned short) 0x0229
|
---|
1940 | #define XL_MOST150_STREAM_TX_UNDERFLOW (unsigned short) 0x022B
|
---|
1941 | #define XL_MOST150_GEN_BYPASS_STRESS (unsigned short) 0x022C
|
---|
1942 | #define XL_MOST150_ECL_SEQUENCE (unsigned short) 0x022D
|
---|
1943 | #define XL_MOST150_ECL_GLITCH_FILTER (unsigned short) 0x022E
|
---|
1944 |
|
---|
1945 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1946 | // Flags for the flagsChip parameter
|
---|
1947 | /////////////////////////////////////////////////////////////////////////////////////////////////////////
|
---|
1948 | #define XL_MOST150_VN2640 (unsigned short) 0x0001 //!< common VN2640 event
|
---|
1949 | #define XL_MOST150_INIC (unsigned short) 0x0002 //!< event was generated by INIC
|
---|
1950 | #define XL_MOST150_SPY (unsigned short) 0x0004 //!< event was generated by spy
|
---|
1951 | #define XL_MOST150_QUEUE_OVERFLOW (unsigned short) 0x0100 //!< queue overflow occured (some events are lost)
|
---|
1952 |
|
---|
1953 | // XL_MOST150_EVENT_SOURCE_EV.mask
|
---|
1954 | #define XL_MOST150_SOURCE_SPECIAL_NODE (unsigned int) 0x00000001
|
---|
1955 | #define XL_MOST150_SOURCE_SYNC_ALLOC_INFO (unsigned int) 0x00000004
|
---|
1956 | #define XL_MOST150_SOURCE_CTRL_SPY (unsigned int) 0x00000008
|
---|
1957 | #define XL_MOST150_SOURCE_ASYNC_SPY (unsigned int) 0x00000010
|
---|
1958 | #define XL_MOST150_SOURCE_ETH_SPY (unsigned int) 0x00000020
|
---|
1959 | #define XL_MOST150_SOURCE_SHUTDOWN_FLAG (unsigned int) 0x00000040
|
---|
1960 | #define XL_MOST150_SOURCE_SYSTEMLOCK_FLAG (unsigned int) 0x00000080
|
---|
1961 | #define XL_MOST150_SOURCE_LIGHTLOCK_SPY (unsigned int) 0x00000200
|
---|
1962 | #define XL_MOST150_SOURCE_LIGHTLOCK_INIC (unsigned int) 0x00000400
|
---|
1963 | #define XL_MOST150_SOURCE_ECL_CHANGE (unsigned int) 0x00000800
|
---|
1964 | #define XL_MOST150_SOURCE_LIGHT_STRESS (unsigned int) 0x00001000
|
---|
1965 | #define XL_MOST150_SOURCE_LOCK_STRESS (unsigned int) 0x00002000
|
---|
1966 | #define XL_MOST150_SOURCE_BUSLOAD_CTRL (unsigned int) 0x00004000
|
---|
1967 | #define XL_MOST150_SOURCE_BUSLOAD_ASYNC (unsigned int) 0x00008000
|
---|
1968 | #define XL_MOST150_SOURCE_CTRL_MLB (unsigned int) 0x00010000
|
---|
1969 | #define XL_MOST150_SOURCE_ASYNC_MLB (unsigned int) 0x00020000
|
---|
1970 | #define XL_MOST150_SOURCE_ETH_MLB (unsigned int) 0x00040000
|
---|
1971 | #define XL_MOST150_SOURCE_TXACK_MLB (unsigned int) 0x00080000
|
---|
1972 | #define XL_MOST150_SOURCE_STREAM_UNDERFLOW (unsigned int) 0x00100000
|
---|
1973 | #define XL_MOST150_SOURCE_STREAM_OVERFLOW (unsigned int) 0x00200000
|
---|
1974 | #define XL_MOST150_SOURCE_STREAM_RX_DATA (unsigned int) 0x00400000
|
---|
1975 | #define XL_MOST150_SOURCE_ECL_SEQUENCE (unsigned int) 0x00800000
|
---|
1976 |
|
---|
1977 | // XL_MOST150_DEVICE_MODE_EV.deviceMode
|
---|
1978 | #define XL_MOST150_DEVICEMODE_SLAVE (unsigned char) 0x00
|
---|
1979 | #define XL_MOST150_DEVICEMODE_MASTER (unsigned char) 0x01
|
---|
1980 | #define XL_MOST150_DEVICEMODE_STATIC_MASTER (unsigned char) 0x03
|
---|
1981 | #define XL_MOST150_DEVICEMODE_RETIMED_BYPASS_SLAVE (unsigned char) 0x04
|
---|
1982 | #define XL_MOST150_DEVICEMODE_RETIMED_BYPASS_MASTER (unsigned char) 0x05
|
---|
1983 |
|
---|
1984 | // XL_MOST150_FREQUENCY_EV.frequency
|
---|
1985 | #define XL_MOST150_FREQUENCY_44100 (unsigned int) 0x00000000
|
---|
1986 | #define XL_MOST150_FREQUENCY_48000 (unsigned int) 0x00000001
|
---|
1987 | #define XL_MOST150_FREQUENCY_ERROR (unsigned int) 0x00000002
|
---|
1988 |
|
---|
1989 | // XL_MOST150_SPECIAL_NODE_INFO_EV.changeMask
|
---|
1990 | #define XL_MOST150_NA_CHANGED (unsigned int) 0x00000001
|
---|
1991 | #define XL_MOST150_GA_CHANGED (unsigned int) 0x00000002
|
---|
1992 | #define XL_MOST150_NPR_CHANGED (unsigned int) 0x00000004
|
---|
1993 | #define XL_MOST150_MPR_CHANGED (unsigned int) 0x00000008
|
---|
1994 | #define XL_MOST150_SBC_CHANGED (unsigned int) 0x00000010
|
---|
1995 | #define XL_MOST150_CTRL_RETRY_PARAMS_CHANGED (unsigned int) 0x00000060
|
---|
1996 | #define XL_MOST150_ASYNC_RETRY_PARAMS_CHANGED (unsigned int) 0x00000180
|
---|
1997 | #define XL_MOST150_MAC_ADDR_CHANGED (unsigned int) 0x00000200
|
---|
1998 | #define XL_MOST150_NPR_SPY_CHANGED (unsigned int) 0x00000400
|
---|
1999 | #define XL_MOST150_MPR_SPY_CHANGED (unsigned int) 0x00000800
|
---|
2000 | #define XL_MOST150_SBC_SPY_CHANGED (unsigned int) 0x00001000
|
---|
2001 | #define XL_MOST150_INIC_NISTATE_CHANGED (unsigned int) 0x00002000
|
---|
2002 | #define XL_MOST150_SPECIAL_NODE_MASK_CHANGED (unsigned int) 0x00003FFF
|
---|
2003 |
|
---|
2004 | // Retry Parameters
|
---|
2005 | #define XL_MOST150_CTRL_RETRY_TIME_MIN (unsigned int) 3 // Time Unit: 16 MOST Frames
|
---|
2006 | #define XL_MOST150_CTRL_RETRY_TIME_MAX (unsigned int) 31
|
---|
2007 | #define XL_MOST150_CTRL_SEND_ATTEMPT_MIN (unsigned int) 1
|
---|
2008 | #define XL_MOST150_CTRL_SEND_ATTEMPT_MAX (unsigned int) 16
|
---|
2009 | #define XL_MOST150_ASYNC_RETRY_TIME_MIN (unsigned int) 0 // Time Unit: 1 MOST Frame
|
---|
2010 | #define XL_MOST150_ASYNC_RETRY_TIME_MAX (unsigned int) 255
|
---|
2011 | #define XL_MOST150_ASYNC_SEND_ATTEMPT_MIN (unsigned int) 1 // For both MDP and MEP
|
---|
2012 | #define XL_MOST150_ASYNC_SEND_ATTEMPT_MAX (unsigned int) 16
|
---|
2013 |
|
---|
2014 | // NIStates
|
---|
2015 | #define XL_MOST150_INIC_NISTATE_NET_OFF (unsigned int) 0x00000000
|
---|
2016 | #define XL_MOST150_INIC_NISTATE_NET_INIT (unsigned int) 0x00000001
|
---|
2017 | #define XL_MOST150_INIC_NISTATE_NET_RBD (unsigned int) 0x00000002
|
---|
2018 | #define XL_MOST150_INIC_NISTATE_NET_ON (unsigned int) 0x00000003
|
---|
2019 | #define XL_MOST150_INIC_NISTATE_NET_RBD_RESULT (unsigned int) 0x00000004
|
---|
2020 |
|
---|
2021 | // XL_MOST150_CTRL_TX_ACK_EV.status
|
---|
2022 | #define XL_MOST150_TX_OK (unsigned int) 0x00000001
|
---|
2023 | #define XL_MOST150_TX_FAILED_FORMAT_ERROR (unsigned int) 0x00000002
|
---|
2024 | #define XL_MOST150_TX_FAILED_NETWORK_OFF (unsigned int) 0x00000004
|
---|
2025 | #define XL_MOST150_TX_FAILED_TIMEOUT (unsigned int) 0x00000005
|
---|
2026 | #define XL_MOST150_TX_FAILED_WRONG_TARGET (unsigned int) 0x00000008
|
---|
2027 | #define XL_MOST150_TX_OK_ONE_SUCCESS (unsigned int) 0x00000009
|
---|
2028 | #define XL_MOST150_TX_FAILED_BAD_CRC (unsigned int) 0x0000000C
|
---|
2029 | #define XL_MOST150_TX_FAILED_RECEIVER_BUFFER_FULL (unsigned int) 0x0000000E
|
---|
2030 |
|
---|
2031 | // XL_MOST150_CTRL_SPY_EV.validMask
|
---|
2032 | // XL_MOST150_ASYNC_SPY_EV.validMask
|
---|
2033 | // XL_MOST150_ETHERNET_SPY_EV.validMask
|
---|
2034 | #define XL_MOST150_VALID_DATALENANNOUNCED (unsigned int) 0x00000001
|
---|
2035 | #define XL_MOST150_VALID_SOURCEADDRESS (unsigned int) 0x00000002
|
---|
2036 | #define XL_MOST150_VALID_TARGETADDRESS (unsigned int) 0x00000004
|
---|
2037 | #define XL_MOST150_VALID_PACK (unsigned int) 0x00000008
|
---|
2038 | #define XL_MOST150_VALID_CACK (unsigned int) 0x00000010
|
---|
2039 | #define XL_MOST150_VALID_PINDEX (unsigned int) 0x00000020
|
---|
2040 | #define XL_MOST150_VALID_PRIORITY (unsigned int) 0x00000040
|
---|
2041 | #define XL_MOST150_VALID_CRC (unsigned int) 0x00000080
|
---|
2042 | #define XL_MOST150_VALID_CRCCALCULATED (unsigned int) 0x00000100
|
---|
2043 | #define XL_MOST150_VALID_MESSAGE (unsigned int) 0x80000000
|
---|
2044 |
|
---|
2045 | // XL_MOST150_CTRL_SPY_EV.pAck
|
---|
2046 | // XL_MOST150_ASYNC_SPY_EV.pAck
|
---|
2047 | // XL_MOST150_ETHERNET_SPY_EV.pAck
|
---|
2048 | #define XL_MOST150_PACK_OK (unsigned int) 0x00000004
|
---|
2049 | #define XL_MOST150_PACK_BUFFER_FULL (unsigned int) 0x00000001
|
---|
2050 | #define XL_MOST150_PACK_NO_RESPONSE (unsigned int) 0x00000000 // maybe spy before receiver
|
---|
2051 |
|
---|
2052 | // XL_MOST150_CTRL_SPY_EV.cAck
|
---|
2053 | // XL_MOST150_ASYNC_SPY_EV.cAck
|
---|
2054 | // XL_MOST150_ETHERNET_SPY_EV.cAck
|
---|
2055 | #define XL_MOST150_CACK_OK (unsigned int) 0x00000004
|
---|
2056 | #define XL_MOST150_CACK_CRC_ERROR (unsigned int) 0x00000001
|
---|
2057 | #define XL_MOST150_CACK_NO_RESPONSE (unsigned int) 0x00000000 // maybe spy before receiver
|
---|
2058 |
|
---|
2059 | //XL_MOST150_ASYNC_RX_EV.length
|
---|
2060 | #define XL_MOST150_ASYNC_INVALID_RX_LENGTH (unsigned int) 0x00008000 // flag indicating a received MDP with length > XL_MOST150_ASYNC_PAYLOAD_MAX_SIZE
|
---|
2061 |
|
---|
2062 | //XL_MOST150_ETHERNET_RX_EV.length
|
---|
2063 | #define XL_MOST150_ETHERNET_INVALID_RX_LENGTH (unsigned int) 0x80000000 // flag indicating a received MEP with length > XL_MOST150_ETHERNET_PAYLOAD_MAX_SIZE
|
---|
2064 |
|
---|
2065 | // XL_MOST150_TX_LIGHT_EV.light
|
---|
2066 | #define XL_MOST150_LIGHT_OFF (unsigned int) 0x00000000
|
---|
2067 | #define XL_MOST150_LIGHT_FORCE_ON (unsigned int) 0x00000001
|
---|
2068 | #define XL_MOST150_LIGHT_MODULATED (unsigned int) 0x00000002
|
---|
2069 |
|
---|
2070 | // XL_MOST150_RXLIGHT_LOCKSTATUS_EV.status
|
---|
2071 | //#define XL_MOST150_LIGHT_OFF (unsigned int) 0x00000000
|
---|
2072 | #define XL_MOST150_LIGHT_ON_UNLOCK (unsigned int) 0x00000003
|
---|
2073 | #define XL_MOST150_LIGHT_ON_LOCK (unsigned int) 0x00000004
|
---|
2074 | #define XL_MOST150_LIGHT_ON_STABLE_LOCK (unsigned int) 0x00000005
|
---|
2075 | #define XL_MOST150_LIGHT_ON_CRITICAL_UNLOCK (unsigned int) 0x00000006
|
---|
2076 |
|
---|
2077 | // XL_MOST150_ERROR_EV.errorCode
|
---|
2078 | #define XL_MOST150_ERROR_ASYNC_TX_ACK_HANDLE (unsigned int) 0x00000001
|
---|
2079 | #define XL_MOST150_ERROR_ETH_TX_ACK_HANDLE (unsigned int) 0x00000002
|
---|
2080 |
|
---|
2081 | // XL_MOST150_CONFIGURE_RX_BUFFER_EV.bufferType
|
---|
2082 | #define XL_MOST150_RX_BUFFER_TYPE_CTRL (unsigned int) 0x00000001
|
---|
2083 | #define XL_MOST150_RX_BUFFER_TYPE_ASYNC (unsigned int) 0x00000002
|
---|
2084 |
|
---|
2085 | // XL_MOST150_CONFIGURE_RX_BUFFER_EV.bufferMode
|
---|
2086 | #define XL_MOST150_RX_BUFFER_NORMAL_MODE (unsigned int) 0x00000000
|
---|
2087 | #define XL_MOST150_RX_BUFFER_BLOCK_MODE (unsigned int) 0x00000001
|
---|
2088 |
|
---|
2089 | // XL_MOST150_CTRL_SYNC_AUDIO_EV.device
|
---|
2090 | #define XL_MOST150_DEVICE_LINE_IN (unsigned int) 0x00000000
|
---|
2091 | #define XL_MOST150_DEVICE_LINE_OUT (unsigned int) 0x00000001
|
---|
2092 | #define XL_MOST150_DEVICE_SPDIF_IN (unsigned int) 0x00000002
|
---|
2093 | #define XL_MOST150_DEVICE_SPDIF_OUT (unsigned int) 0x00000003
|
---|
2094 | #define XL_MOST150_DEVICE_ALLOC_BANDWIDTH (unsigned int) 0x00000004
|
---|
2095 |
|
---|
2096 | // XL_MOST150_CTRL_SYNC_AUDIO_EV.mode
|
---|
2097 | #define XL_MOST150_DEVICE_MODE_OFF (unsigned int) 0x00000000
|
---|
2098 | #define XL_MOST150_DEVICE_MODE_ON (unsigned int) 0x00000001
|
---|
2099 | #define XL_MOST150_DEVICE_MODE_OFF_BYPASS_CLOSED (unsigned int) 0x00000002
|
---|
2100 | #define XL_MOST150_DEVICE_MODE_OFF_NOT_IN_NETON (unsigned int) 0x00000003
|
---|
2101 | #define XL_MOST150_DEVICE_MODE_OFF_NO_MORE_RESOURCES (unsigned int) 0x00000004
|
---|
2102 | #define XL_MOST150_DEVICE_MODE_OFF_NOT_ENOUGH_FREE_BW (unsigned int) 0x00000005
|
---|
2103 | #define XL_MOST150_DEVICE_MODE_OFF_DUE_TO_NET_OFF (unsigned int) 0x00000006
|
---|
2104 | #define XL_MOST150_DEVICE_MODE_OFF_DUE_TO_CFG_NOT_OK (unsigned int) 0x00000007
|
---|
2105 | #define XL_MOST150_DEVICE_MODE_OFF_COMMUNICATION_ERROR (unsigned int) 0x00000008
|
---|
2106 | #define XL_MOST150_DEVICE_MODE_OFF_STREAM_CONN_ERROR (unsigned int) 0x00000009
|
---|
2107 | #define XL_MOST150_DEVICE_MODE_OFF_CL_ALREADY_USED (unsigned int) 0x0000000A
|
---|
2108 | #define XL_MOST150_DEVICE_MODE_CL_NOT_ALLOCATED (unsigned int) 0x000000FF
|
---|
2109 |
|
---|
2110 | // Maximum number of CL that can be allocated for device XL_MOST150_DEVICE_ALLOC_BANDWIDTH
|
---|
2111 | #define XL_MOST150_ALLOC_BANDWIDTH_NUM_CL_MAX 10
|
---|
2112 |
|
---|
2113 | // special CL for xlMost150CtrlSyncAudio to de-allocate all CLs for device XL_MOST150_DEVICE_ALLOC_BANDWIDTH
|
---|
2114 | #define XL_MOST150_CL_DEALLOC_ALL (unsigned int) 0x00000FFF
|
---|
2115 |
|
---|
2116 | // XL_MOST150_SYNC_VOLUME_STATUS_EV.volume
|
---|
2117 | #define XL_MOST150_VOLUME_MIN (unsigned int) 0x00000000
|
---|
2118 | #define XL_MOST150_VOLUME_MAX (unsigned int) 0x000000FF
|
---|
2119 |
|
---|
2120 | // XL_MOST150_SYNC_MUTE_STATUS_EV.mute
|
---|
2121 | #define XL_MOST150_NO_MUTE (unsigned int) 0x00000000
|
---|
2122 | #define XL_MOST150_MUTE (unsigned int) 0x00000001
|
---|
2123 |
|
---|
2124 | // XL_MOST150_LIGHT_POWER_EV.lightPower
|
---|
2125 | #define XL_MOST150_LIGHT_FULL (unsigned int) 0x00000064
|
---|
2126 | #define XL_MOST150_LIGHT_3DB (unsigned int) 0x00000032
|
---|
2127 |
|
---|
2128 | // XL_MOST150_SYSTEMLOCK_FLAG_EV.state
|
---|
2129 | #define XL_MOST150_SYSTEMLOCK_FLAG_NOT_SET (unsigned int) 0x00000000
|
---|
2130 | #define XL_MOST150_SYSTEMLOCK_FLAG_SET (unsigned int) 0x00000001
|
---|
2131 |
|
---|
2132 | // XL_MOST150_SHUTDOWN_FLAG_EV.state
|
---|
2133 | #define XL_MOST150_SHUTDOWN_FLAG_NOT_SET (unsigned int) 0x00000000
|
---|
2134 | #define XL_MOST150_SHUTDOWN_FLAG_SET (unsigned int) 0x00000001
|
---|
2135 |
|
---|
2136 | // ECL
|
---|
2137 | // xlMost150SetECLLine
|
---|
2138 | #define XL_MOST150_ECL_LINE_LOW (unsigned int) 0x00000000
|
---|
2139 | #define XL_MOST150_ECL_LINE_HIGH (unsigned int) 0x00000001
|
---|
2140 | // xlMost150SetECLTermination
|
---|
2141 | #define XL_MOST150_ECL_LINE_PULL_UP_NOT_ACTIVE (unsigned int) 0x00000000
|
---|
2142 | #define XL_MOST150_ECL_LINE_PULL_UP_ACTIVE (unsigned int) 0x00000001
|
---|
2143 |
|
---|
2144 | // xlMost150EclConfigureSeq
|
---|
2145 | // Maximum number of states that can be configured for a sequence
|
---|
2146 | #define XL_MOST150_ECL_SEQ_NUM_STATES_MAX 200
|
---|
2147 | // Value range for duration of ECL sequence states
|
---|
2148 | #define XL_MOST150_ECL_SEQ_DURATION_MIN 1 // -> 100 µs
|
---|
2149 | #define XL_MOST150_ECL_SEQ_DURATION_MAX 655350 // -> 65535 ms
|
---|
2150 |
|
---|
2151 | // xlMost150EclSetGlitchFilter
|
---|
2152 | // Value range for setting the glitch filter
|
---|
2153 | #define XL_MOST150_ECL_GLITCH_FILTER_MIN 50 // -> 50 µs
|
---|
2154 | #define XL_MOST150_ECL_GLITCH_FILTER_MAX 50000 // -> 50 ms
|
---|
2155 |
|
---|
2156 | // XL_MOST150_GEN_LIGHT_ERROR_EV.stressStarted
|
---|
2157 | // XL_MOST150_GEN_LOCK_ERROR_EV.stressStarted
|
---|
2158 | // XL_MOST150_CTRL_BUSLOAD.busloadStarted
|
---|
2159 | // XL_MOST150_ASYNC_BUSLOAD.busloadStarted
|
---|
2160 | // XL_MOST150_ECL_SEQUENCE_EV.sequenceStarted
|
---|
2161 | #define XL_MOST150_MODE_DEACTIVATED 0
|
---|
2162 | #define XL_MOST150_MODE_ACTIVATED 1
|
---|
2163 |
|
---|
2164 | // busloadType for xlMost150AsyncConfigureBusload
|
---|
2165 | #define XL_MOST150_BUSLOAD_TYPE_DATA_PACKET 0
|
---|
2166 | #define XL_MOST150_BUSLOAD_TYPE_ETHERNET_PACKET 1
|
---|
2167 |
|
---|
2168 | // counterType for the xlMost150****ConfigureBusload function
|
---|
2169 | #define XL_MOST150_BUSLOAD_COUNTER_TYPE_NONE 0x00
|
---|
2170 | #define XL_MOST150_BUSLOAD_COUNTER_TYPE_1_BYTE 0x01
|
---|
2171 | #define XL_MOST150_BUSLOAD_COUNTER_TYPE_2_BYTE 0x02
|
---|
2172 | #define XL_MOST150_BUSLOAD_COUNTER_TYPE_3_BYTE 0x03
|
---|
2173 | #define XL_MOST150_BUSLOAD_COUNTER_TYPE_4_BYTE 0x04
|
---|
2174 |
|
---|
2175 |
|
---|
2176 | // XL_MOST150_SPDIF_MODE_EV.spdifMode
|
---|
2177 | #define XL_MOST150_SPDIF_MODE_SLAVE (unsigned int) 0x00000000
|
---|
2178 | #define XL_MOST150_SPDIF_MODE_MASTER (unsigned int) 0x00000001
|
---|
2179 |
|
---|
2180 | // XL_MOST150_SPDIF_MODE_EV.spdifError
|
---|
2181 | #define XL_MOST150_SPDIF_ERR_NO_ERROR (unsigned int) 0x00000000
|
---|
2182 | #define XL_MOST150_SPDIF_ERR_HW_COMMUNICATION (unsigned int) 0x00000001
|
---|
2183 |
|
---|
2184 | // XL_MOST150_NW_STARTUP_EV.error
|
---|
2185 | #define XL_MOST150_STARTUP_NO_ERROR (unsigned int) 0x00000000
|
---|
2186 | // XL_MOST150_NW_STARTUP_EV.errorInfo
|
---|
2187 | #define XL_MOST150_STARTUP_NO_ERRORINFO (unsigned int) 0xFFFFFFFF
|
---|
2188 |
|
---|
2189 | // XL_MOST150_NW_SHUTDOWN_EV.error
|
---|
2190 | #define XL_MOST150_SHUTDOWN_NO_ERROR (unsigned int) 0x00000000
|
---|
2191 | // XL_MOST150_NW_SHUTDOWN_EV.errorInfo
|
---|
2192 | #define XL_MOST150_SHUTDOWN_NO_ERRORINFO (unsigned int) 0xFFFFFFFF
|
---|
2193 |
|
---|
2194 | /// Values for synchronous streaming API
|
---|
2195 | #define XL_MOST150_STREAM_RX_DATA 0 // RX streaming: MOST -> PC
|
---|
2196 | #define XL_MOST150_STREAM_TX_DATA 1 // TX streaming: PC -> MOST
|
---|
2197 |
|
---|
2198 | #define XL_MOST150_STREAM_INVALID_HANDLE 0
|
---|
2199 |
|
---|
2200 | // stream states
|
---|
2201 | #define XL_MOST150_STREAM_STATE_CLOSED 0x01
|
---|
2202 | #define XL_MOST150_STREAM_STATE_OPENED 0x02
|
---|
2203 | #define XL_MOST150_STREAM_STATE_STARTED 0x03
|
---|
2204 | #define XL_MOST150_STREAM_STATE_STOPPED 0x04
|
---|
2205 | #define XL_MOST150_STREAM_STATE_START_PENDING 0x05 // waiting for result from hw
|
---|
2206 | #define XL_MOST150_STREAM_STATE_STOP_PENDING 0x06 // waiting for result from hw
|
---|
2207 | #define XL_MOST150_STREAM_STATE_OPEN_PENDING 0x07 // waiting for result from hw
|
---|
2208 | #define XL_MOST150_STREAM_STATE_CLOSE_PENDING 0x08 // waiting for result from hw
|
---|
2209 |
|
---|
2210 | // TX Streaming: Maximum number of bytes that can be streamed per MOST frame
|
---|
2211 | #define XL_MOST150_STREAM_TX_BYTES_PER_FRAME_MIN 1
|
---|
2212 | #define XL_MOST150_STREAM_TX_BYTES_PER_FRAME_MAX 152
|
---|
2213 |
|
---|
2214 | // RX Streaming: Maximum number of connection labels that can be streamed
|
---|
2215 | #define XL_MOST150_STREAM_RX_NUM_CL_MAX 8
|
---|
2216 |
|
---|
2217 | // valid connection label range
|
---|
2218 | #define XL_MOST150_STREAM_CL_MIN (unsigned int) 0x000C
|
---|
2219 | #define XL_MOST150_STREAM_CL_MAX (unsigned int) 0x017F
|
---|
2220 |
|
---|
2221 | // XL_MOST150_STREAM_STATE_EV.streamError
|
---|
2222 | // XL_MOST150_STREAM_TX_LABEL_EV.errorInfo
|
---|
2223 | #define XL_MOST150_STREAM_STATE_ERROR_NO_ERROR 0
|
---|
2224 | #define XL_MOST150_STREAM_STATE_ERROR_NOT_ENOUGH_BW 1
|
---|
2225 | #define XL_MOST150_STREAM_STATE_ERROR_NET_OFF 2
|
---|
2226 | #define XL_MOST150_STREAM_STATE_ERROR_CONFIG_NOT_OK 3
|
---|
2227 | #define XL_MOST150_STREAM_STATE_ERROR_CL_DISAPPEARED 4
|
---|
2228 | #define XL_MOST150_STREAM_STATE_ERROR_INIC_SC_ERROR 5
|
---|
2229 | #define XL_MOST150_STREAM_STATE_ERROR_DEVICEMODE_BYPASS 6
|
---|
2230 | #define XL_MOST150_STREAM_STATE_ERROR_NISTATE_NOT_NETON 7
|
---|
2231 | #define XL_MOST150_STREAM_STATE_ERROR_INIC_BUSY 8
|
---|
2232 | #define XL_MOST150_STREAM_STATE_ERROR_CL_MISSING 9
|
---|
2233 | #define XL_MOST150_STREAM_STATE_ERROR_NUM_BYTES_MISMATCH 10
|
---|
2234 | #define XL_MOST150_STREAM_STATE_ERROR_INIC_COMMUNICATION 11
|
---|
2235 |
|
---|
2236 | // XL_MOST150_STREAM_TX_BUFFER_EV.status
|
---|
2237 | #define XL_MOST150_STREAM_BUFFER_ERROR_NO_ERROR 0
|
---|
2238 | #define XL_MOST150_STREAM_BUFFER_ERROR_NOT_ENOUGH_DATA 1
|
---|
2239 |
|
---|
2240 | // XL_MOST150_STREAM_RX_BUFFER_EV.status
|
---|
2241 | //#define XL_MOST150_STREAM_BUFFER_ERROR_NO_ERROR 0
|
---|
2242 | #define XL_MOST150_STREAM_BUFFER_ERROR_STOP_BY_APP 1
|
---|
2243 | #define XL_MOST150_STREAM_BUFFER_ERROR_MOST_SIGNAL_OFF 2
|
---|
2244 | #define XL_MOST150_STREAM_BUFFER_ERROR_UNLOCK 3
|
---|
2245 | #define XL_MOST150_STREAM_BUFFER_ERROR_CL_MISSING 4
|
---|
2246 | #define XL_MOST150_STREAM_BUFFER_ERROR_ALL_CL_MISSING 5
|
---|
2247 | #define XL_MOST150_STREAM_BUFFER_ERROR_OVERFLOW 128 // overflow bit
|
---|
2248 |
|
---|
2249 | // latency values
|
---|
2250 | #define XL_MOST150_STREAM_LATENCY_VERY_LOW 0
|
---|
2251 | #define XL_MOST150_STREAM_LATENCY_LOW 1
|
---|
2252 | #define XL_MOST150_STREAM_LATENCY_MEDIUM 2
|
---|
2253 | #define XL_MOST150_STREAM_LATENCY_HIGH 3
|
---|
2254 | #define XL_MOST150_STREAM_LATENCY_VERY_HIGH 4
|
---|
2255 |
|
---|
2256 |
|
---|
2257 | // bypass stress maximum/minimum timing parameter in msec
|
---|
2258 | #define XL_MOST150_BYPASS_STRESS_TIME_MIN 10
|
---|
2259 | #define XL_MOST150_BYPASS_STRESS_TIME_MAX 65535
|
---|
2260 |
|
---|
2261 | // XL_MOST150_GEN_BYPASS_STRESS_EV.stressStarted
|
---|
2262 | #define XL_MOST150_BYPASS_STRESS_STOPPED 0
|
---|
2263 | #define XL_MOST150_BYPASS_STRESS_STARTED 1
|
---|
2264 | #define XL_MOST150_BYPASS_STRESS_STOPPED_LIGHT_OFF 2
|
---|
2265 | #define XL_MOST150_BYPASS_STRESS_STOPPED_DEVICE_MODE 3
|
---|
2266 |
|
---|
2267 |
|
---|
2268 |
|
---|
2269 | #include <pshpack1.h>
|
---|
2270 |
|
---|
2271 | //////////////////////////////////////////////////////////////
|
---|
2272 | // Structures for MOST150 events
|
---|
2273 | //////////////////////////////////////////////////////////////
|
---|
2274 |
|
---|
2275 | typedef unsigned short XLmostEventTag;
|
---|
2276 |
|
---|
2277 |
|
---|
2278 | typedef struct s_xl_most150_event_source{
|
---|
2279 | unsigned int sourceMask;
|
---|
2280 | } XL_MOST150_EVENT_SOURCE_EV;
|
---|
2281 |
|
---|
2282 | typedef struct s_xl_most150_device_mode {
|
---|
2283 | unsigned int deviceMode;
|
---|
2284 | } XL_MOST150_DEVICE_MODE_EV;
|
---|
2285 |
|
---|
2286 | typedef struct s_xl_most150_frequency {
|
---|
2287 | unsigned int frequency;
|
---|
2288 | } XL_MOST150_FREQUENCY_EV;
|
---|
2289 |
|
---|
2290 | typedef struct s_xl_most150_special_node_info{
|
---|
2291 | unsigned int changeMask;
|
---|
2292 | unsigned short nodeAddress;
|
---|
2293 | unsigned short groupAddress;
|
---|
2294 | unsigned char npr;
|
---|
2295 | unsigned char mpr;
|
---|
2296 | unsigned char sbc;
|
---|
2297 | unsigned char ctrlRetryTime;
|
---|
2298 | unsigned char ctrlSendAttempts;
|
---|
2299 | unsigned char asyncRetryTime;
|
---|
2300 | unsigned char asyncSendAttempts;
|
---|
2301 | unsigned char macAddr[6];
|
---|
2302 | unsigned char nprSpy;
|
---|
2303 | unsigned char mprSpy;
|
---|
2304 | unsigned char sbcSpy;
|
---|
2305 | unsigned char inicNIState;
|
---|
2306 | unsigned char reserved1[3];
|
---|
2307 | unsigned int reserved2[3];
|
---|
2308 | } XL_MOST150_SPECIAL_NODE_INFO_EV;
|
---|
2309 |
|
---|
2310 | typedef struct s_xl_most150_ctrl_rx {
|
---|
2311 | unsigned short targetAddress;
|
---|
2312 | unsigned short sourceAddress;
|
---|
2313 | unsigned char fblockId;
|
---|
2314 | unsigned char instId;
|
---|
2315 | unsigned short functionId;
|
---|
2316 | unsigned char opType;
|
---|
2317 | unsigned char telId;
|
---|
2318 | unsigned short telLen;
|
---|
2319 | unsigned char ctrlData[45];
|
---|
2320 | } XL_MOST150_CTRL_RX_EV;
|
---|
2321 |
|
---|
2322 | typedef struct s_xl_most150_ctrl_spy{
|
---|
2323 | unsigned int frameCount;
|
---|
2324 | unsigned int msgDuration; // duration of message transmission in [ns]
|
---|
2325 | unsigned char priority;
|
---|
2326 | unsigned short targetAddress;
|
---|
2327 | unsigned char pAck;
|
---|
2328 | unsigned short ctrlDataLenAnnounced;
|
---|
2329 | unsigned char reserved0;
|
---|
2330 | unsigned char pIndex;
|
---|
2331 | unsigned short sourceAddress;
|
---|
2332 | unsigned short reserved1;
|
---|
2333 | unsigned short crc;
|
---|
2334 | unsigned short crcCalculated;
|
---|
2335 | unsigned char cAck;
|
---|
2336 | unsigned short ctrlDataLen; // number of bytes contained in ctrlData[]
|
---|
2337 | unsigned char reserved2;
|
---|
2338 | unsigned int status; // currently not used
|
---|
2339 | unsigned int validMask;
|
---|
2340 | unsigned char ctrlData[51];
|
---|
2341 | } XL_MOST150_CTRL_SPY_EV;
|
---|
2342 |
|
---|
2343 | typedef struct s_xl_most150_async_rx_msg {
|
---|
2344 | unsigned short length;
|
---|
2345 | unsigned short targetAddress;
|
---|
2346 | unsigned short sourceAddress;
|
---|
2347 | unsigned char asyncData[1524];
|
---|
2348 | } XL_MOST150_ASYNC_RX_EV;
|
---|
2349 |
|
---|
2350 | typedef struct s_xl_most150_async_spy_msg {
|
---|
2351 | unsigned int frameCount;
|
---|
2352 | unsigned int pktDuration; // duration of data packet transmission in [ns]
|
---|
2353 | unsigned short asyncDataLenAnnounced;
|
---|
2354 | unsigned short targetAddress;
|
---|
2355 | unsigned char pAck;
|
---|
2356 | unsigned char pIndex;
|
---|
2357 | unsigned short sourceAddress;
|
---|
2358 | unsigned int crc;
|
---|
2359 | unsigned int crcCalculated;
|
---|
2360 | unsigned char cAck;
|
---|
2361 | unsigned short asyncDataLen; // number of bytes contained in asyncData[]
|
---|
2362 | unsigned char reserved;
|
---|
2363 | unsigned int status; // currently not used
|
---|
2364 | unsigned int validMask;
|
---|
2365 | unsigned char asyncData[1524];
|
---|
2366 | } XL_MOST150_ASYNC_SPY_EV;
|
---|
2367 |
|
---|
2368 | typedef struct s_xl_most150_ethernet_rx {
|
---|
2369 | unsigned char sourceAddress[6];
|
---|
2370 | unsigned char targetAddress[6];
|
---|
2371 | unsigned int length;
|
---|
2372 | unsigned char ethernetData[1510];
|
---|
2373 | } XL_MOST150_ETHERNET_RX_EV;
|
---|
2374 |
|
---|
2375 | typedef struct s_xl_most150_ethernet_spy {
|
---|
2376 | unsigned int frameCount;
|
---|
2377 | unsigned int pktDuration; // duration of ethernet packet transmission in [ns]
|
---|
2378 | unsigned short ethernetDataLenAnnounced;
|
---|
2379 | unsigned char targetAddress[6];
|
---|
2380 | unsigned char pAck;
|
---|
2381 | unsigned char sourceAddress[6];
|
---|
2382 | unsigned char reserved0;
|
---|
2383 | unsigned int crc;
|
---|
2384 | unsigned int crcCalculated;
|
---|
2385 | unsigned char cAck;
|
---|
2386 | unsigned short ethernetDataLen; // number of bytes contained in ethernetData[]
|
---|
2387 | unsigned char reserved1;
|
---|
2388 | unsigned int status; // currently not used
|
---|
2389 | unsigned int validMask;
|
---|
2390 | unsigned char ethernetData[1506];
|
---|
2391 | } XL_MOST150_ETHERNET_SPY_EV;
|
---|
2392 |
|
---|
2393 | typedef struct s_xl_most150_cl_info {
|
---|
2394 | unsigned short label;
|
---|
2395 | unsigned short channelWidth;
|
---|
2396 | } XL_MOST150_CL_INFO;
|
---|
2397 |
|
---|
2398 | typedef struct s_xl_most150_sync_alloc_info {
|
---|
2399 | XL_MOST150_CL_INFO allocTable[MOST150_SYNC_ALLOC_INFO_SIZE];
|
---|
2400 | } XL_MOST150_SYNC_ALLOC_INFO_EV;
|
---|
2401 |
|
---|
2402 |
|
---|
2403 | typedef struct s_xl_most150_sync_volume_status {
|
---|
2404 | unsigned int device;
|
---|
2405 | unsigned int volume;
|
---|
2406 | } XL_MOST150_SYNC_VOLUME_STATUS_EV;
|
---|
2407 |
|
---|
2408 | typedef struct s_xl_most150_tx_light {
|
---|
2409 | unsigned int light;
|
---|
2410 | } XL_MOST150_TX_LIGHT_EV;
|
---|
2411 |
|
---|
2412 | typedef struct s_xl_most150_rx_light_lock_status {
|
---|
2413 | unsigned int status;
|
---|
2414 | } XL_MOST150_RXLIGHT_LOCKSTATUS_EV;
|
---|
2415 |
|
---|
2416 | typedef struct s_xl_most150_error {
|
---|
2417 | unsigned int errorCode;
|
---|
2418 | unsigned int parameter[3];
|
---|
2419 | } XL_MOST150_ERROR_EV;
|
---|
2420 |
|
---|
2421 | typedef struct s_xl_most150_configure_rx_buffer {
|
---|
2422 | unsigned int bufferType;
|
---|
2423 | unsigned int bufferMode;
|
---|
2424 | } XL_MOST150_CONFIGURE_RX_BUFFER_EV;
|
---|
2425 |
|
---|
2426 | typedef struct s_xl_most150_ctrl_sync_audio {
|
---|
2427 | unsigned int label;
|
---|
2428 | unsigned int width;
|
---|
2429 | unsigned int device;
|
---|
2430 | unsigned int mode;
|
---|
2431 | } XL_MOST150_CTRL_SYNC_AUDIO_EV;
|
---|
2432 |
|
---|
2433 | typedef struct s_xl_most150_sync_mute_status {
|
---|
2434 | unsigned int device;
|
---|
2435 | unsigned int mute;
|
---|
2436 | } XL_MOST150_SYNC_MUTE_STATUS_EV;
|
---|
2437 |
|
---|
2438 | typedef struct s_xl_most150_tx_light_power {
|
---|
2439 | unsigned int lightPower;
|
---|
2440 | } XL_MOST150_LIGHT_POWER_EV;
|
---|
2441 |
|
---|
2442 | typedef struct s_xl_most150_gen_light_error {
|
---|
2443 | unsigned int stressStarted;
|
---|
2444 | } XL_MOST150_GEN_LIGHT_ERROR_EV;
|
---|
2445 |
|
---|
2446 | typedef struct s_xl_most150_gen_lock_error {
|
---|
2447 | unsigned int stressStarted;
|
---|
2448 | } XL_MOST150_GEN_LOCK_ERROR_EV;
|
---|
2449 |
|
---|
2450 | typedef struct s_xl_most150_ctrl_busload {
|
---|
2451 | unsigned long busloadStarted;
|
---|
2452 | } XL_MOST150_CTRL_BUSLOAD_EV;
|
---|
2453 |
|
---|
2454 | typedef struct s_xl_most150_async_busload {
|
---|
2455 | unsigned long busloadStarted;
|
---|
2456 | } XL_MOST150_ASYNC_BUSLOAD_EV;
|
---|
2457 |
|
---|
2458 | typedef struct s_xl_most150_systemlock_flag {
|
---|
2459 | unsigned int state;
|
---|
2460 | } XL_MOST150_SYSTEMLOCK_FLAG_EV;
|
---|
2461 |
|
---|
2462 | typedef struct s_xl_most150_shutdown_flag {
|
---|
2463 | unsigned int state;
|
---|
2464 | } XL_MOST150_SHUTDOWN_FLAG_EV;
|
---|
2465 |
|
---|
2466 | typedef struct s_xl_most150_spdif_mode {
|
---|
2467 | unsigned int spdifMode;
|
---|
2468 | unsigned int spdifError;
|
---|
2469 | } XL_MOST150_SPDIF_MODE_EV;
|
---|
2470 |
|
---|
2471 | typedef struct s_xl_most150_ecl {
|
---|
2472 | unsigned int eclLineState;
|
---|
2473 | } XL_MOST150_ECL_EV;
|
---|
2474 |
|
---|
2475 | typedef struct s_xl_most150_ecl_termination {
|
---|
2476 | unsigned int resistorEnabled;
|
---|
2477 | } XL_MOST150_ECL_TERMINATION_EV;
|
---|
2478 |
|
---|
2479 | typedef struct s_xl_most150_nw_startup {
|
---|
2480 | unsigned int error;
|
---|
2481 | unsigned int errorInfo;
|
---|
2482 | } XL_MOST150_NW_STARTUP_EV;
|
---|
2483 |
|
---|
2484 | typedef struct s_xl_most150_nw_shutdown {
|
---|
2485 | unsigned int error;
|
---|
2486 | unsigned int errorInfo;
|
---|
2487 | } XL_MOST150_NW_SHUTDOWN_EV;
|
---|
2488 |
|
---|
2489 | typedef struct s_xl_most150_stream_state {
|
---|
2490 | unsigned int streamHandle;
|
---|
2491 | unsigned int streamState;
|
---|
2492 | unsigned int streamError;
|
---|
2493 | } XL_MOST150_STREAM_STATE_EV;
|
---|
2494 |
|
---|
2495 | typedef struct s_xl_most150_stream_tx_buffer {
|
---|
2496 | unsigned int streamHandle;
|
---|
2497 | unsigned int numberOfBytes;
|
---|
2498 | unsigned int status;
|
---|
2499 | } XL_MOST150_STREAM_TX_BUFFER_EV;
|
---|
2500 |
|
---|
2501 | typedef struct s_xl_most150_stream_rx_buffer {
|
---|
2502 | unsigned int streamHandle;
|
---|
2503 | unsigned int numberOfBytes;
|
---|
2504 | unsigned int status;
|
---|
2505 | unsigned int labelInfo;
|
---|
2506 | } XL_MOST150_STREAM_RX_BUFFER_EV;
|
---|
2507 |
|
---|
2508 | typedef struct s_xl_most150_stream_tx_underflow {
|
---|
2509 | unsigned int streamHandle;
|
---|
2510 | unsigned int reserved;
|
---|
2511 | } XL_MOST150_STREAM_TX_UNDERFLOW_EV;
|
---|
2512 |
|
---|
2513 | typedef struct s_xl_most150_stream_tx_label {
|
---|
2514 | unsigned int streamHandle;
|
---|
2515 | unsigned int errorInfo;
|
---|
2516 | unsigned int connLabel;
|
---|
2517 | unsigned int width;
|
---|
2518 | } XL_MOST150_STREAM_TX_LABEL_EV;
|
---|
2519 |
|
---|
2520 | typedef struct s_xl_most150_gen_bypass_stress {
|
---|
2521 | unsigned int stressStarted;
|
---|
2522 | } XL_MOST150_GEN_BYPASS_STRESS_EV;
|
---|
2523 |
|
---|
2524 | typedef struct s_xl_most150_ecl_sequence {
|
---|
2525 | unsigned int sequenceStarted;
|
---|
2526 | } XL_MOST150_ECL_SEQUENCE_EV;
|
---|
2527 |
|
---|
2528 | typedef struct s_xl_most150_ecl_glitch_filter {
|
---|
2529 | unsigned int duration;
|
---|
2530 | } XL_MOST150_ECL_GLITCH_FILTER_EV;
|
---|
2531 |
|
---|
2532 |
|
---|
2533 | typedef struct s_xl_most150_ctrl_tx_ack {
|
---|
2534 | unsigned short targetAddress;
|
---|
2535 | unsigned short sourceAddress;
|
---|
2536 | unsigned char ctrlPrio;
|
---|
2537 | unsigned char ctrlSendAttempts;
|
---|
2538 | unsigned char reserved[2];
|
---|
2539 | unsigned int status;
|
---|
2540 |
|
---|
2541 | // ctrlData structure:
|
---|
2542 | // -----------------------------------------------------------------------
|
---|
2543 | // FBlockID | InstID | FunctionID | OpType | TelID | TelLen | Payload
|
---|
2544 | // -----------------------------------------------------------------------
|
---|
2545 | // 8 bit | 8 bit | 12 bit | 4 bit | 4 bit | 12 bit | 0 .. 45 byte
|
---|
2546 | // -----------------------------------------------------------------------
|
---|
2547 | // ctrlData[0]: FBlockID
|
---|
2548 | // ctrlData[1]: InstID
|
---|
2549 | // ctrlData[2]: FunctionID (upper 8 bits)
|
---|
2550 | // ctrlData[3]: FunctionID (lower 4 bits) + OpType (4 bits)
|
---|
2551 | // ctrlData[4]: TelId (4 bits) + TelLen (upper 4 bits)
|
---|
2552 | // ctrlData[5]: TelLen (lower 8 bits)
|
---|
2553 | // ctrlData[6..50]: Payload
|
---|
2554 | unsigned char ctrlData[51];
|
---|
2555 | } XL_MOST150_CTRL_TX_ACK_EV;
|
---|
2556 |
|
---|
2557 | typedef struct s_xl_most150_async_tx_ack {
|
---|
2558 | unsigned char priority;
|
---|
2559 | unsigned char asyncSendAttempts;
|
---|
2560 | unsigned short length;
|
---|
2561 | unsigned short targetAddress;
|
---|
2562 | unsigned short sourceAddress;
|
---|
2563 | unsigned int status;
|
---|
2564 | unsigned char asyncData[1524];
|
---|
2565 | } XL_MOST150_ASYNC_TX_ACK_EV;
|
---|
2566 |
|
---|
2567 | typedef struct s_xl_most150_ethernet_tx {
|
---|
2568 | unsigned char priority;
|
---|
2569 | unsigned char ethSendAttempts;
|
---|
2570 | unsigned char sourceAddress[6];
|
---|
2571 | unsigned char targetAddress[6];
|
---|
2572 | unsigned char reserved[2];
|
---|
2573 | unsigned int length;
|
---|
2574 | unsigned char ethernetData[1510];
|
---|
2575 | } XL_MOST150_ETHERNET_TX_ACK_EV;
|
---|
2576 |
|
---|
2577 | typedef struct s_xl_most150_hw_sync {
|
---|
2578 | unsigned int pulseCode;
|
---|
2579 | } XL_MOST150_HW_SYNC_EV;
|
---|
2580 |
|
---|
2581 | typedef struct s_xl_event_most150 {
|
---|
2582 |
|
---|
2583 | unsigned int size; // 4 - overall size of the complete event
|
---|
2584 | XLmostEventTag tag; // 2 - type of the event
|
---|
2585 | unsigned short channelIndex; // 2
|
---|
2586 | unsigned int userHandle; // 4
|
---|
2587 | unsigned short flagsChip; // 2
|
---|
2588 | unsigned short reserved; // 2
|
---|
2589 | XLuint64 timeStamp; // 8 - raw timestamp
|
---|
2590 | XLuint64 timeStampSync; // 8 - timestamp which is synchronized by the driver
|
---|
2591 | // ---------
|
---|
2592 | // 32 bytes -> XL_MOST_EVENT_HEADER_SIZE
|
---|
2593 | union {
|
---|
2594 | unsigned char rawData[XL_MOST150_MAX_EVENT_DATA_SIZE];
|
---|
2595 | XL_MOST150_EVENT_SOURCE_EV mostEventSource;
|
---|
2596 | XL_MOST150_DEVICE_MODE_EV mostDeviceMode;
|
---|
2597 | XL_MOST150_FREQUENCY_EV mostFrequency;
|
---|
2598 | XL_MOST150_SPECIAL_NODE_INFO_EV mostSpecialNodeInfo;
|
---|
2599 | XL_MOST150_CTRL_RX_EV mostCtrlRx;
|
---|
2600 | XL_MOST150_CTRL_TX_ACK_EV mostCtrlTxAck;
|
---|
2601 | XL_MOST150_ASYNC_SPY_EV mostAsyncSpy;
|
---|
2602 | XL_MOST150_ASYNC_RX_EV mostAsyncRx;
|
---|
2603 | XL_MOST150_SYNC_ALLOC_INFO_EV mostSyncAllocInfo;
|
---|
2604 | XL_MOST150_SYNC_VOLUME_STATUS_EV mostSyncVolumeStatus;
|
---|
2605 | XL_MOST150_TX_LIGHT_EV mostTxLight;
|
---|
2606 | XL_MOST150_RXLIGHT_LOCKSTATUS_EV mostRxLightLockStatus;
|
---|
2607 | XL_MOST150_ERROR_EV mostError;
|
---|
2608 | XL_MOST150_CONFIGURE_RX_BUFFER_EV mostConfigureRxBuffer;
|
---|
2609 | XL_MOST150_CTRL_SYNC_AUDIO_EV mostCtrlSyncAudio;
|
---|
2610 | XL_MOST150_SYNC_MUTE_STATUS_EV mostSyncMuteStatus;
|
---|
2611 | XL_MOST150_LIGHT_POWER_EV mostLightPower;
|
---|
2612 | XL_MOST150_GEN_LIGHT_ERROR_EV mostGenLightError;
|
---|
2613 | XL_MOST150_GEN_LOCK_ERROR_EV mostGenLockError;
|
---|
2614 | XL_MOST150_CTRL_BUSLOAD_EV mostCtrlBusload;
|
---|
2615 | XL_MOST150_ASYNC_BUSLOAD_EV mostAsyncBusload;
|
---|
2616 | XL_MOST150_ETHERNET_RX_EV mostEthernetRx;
|
---|
2617 | XL_MOST150_SYSTEMLOCK_FLAG_EV mostSystemLockFlag;
|
---|
2618 | XL_MOST150_SHUTDOWN_FLAG_EV mostShutdownFlag;
|
---|
2619 | XL_MOST150_SPDIF_MODE_EV mostSpdifMode;
|
---|
2620 | XL_MOST150_ECL_EV mostEclEvent;
|
---|
2621 | XL_MOST150_ECL_TERMINATION_EV mostEclTermination;
|
---|
2622 | XL_MOST150_CTRL_SPY_EV mostCtrlSpy;
|
---|
2623 | XL_MOST150_ASYNC_TX_ACK_EV mostAsyncTxAck;
|
---|
2624 | XL_MOST150_ETHERNET_SPY_EV mostEthernetSpy;
|
---|
2625 | XL_MOST150_ETHERNET_TX_ACK_EV mostEthernetTxAck;
|
---|
2626 | XL_MOST150_HW_SYNC_EV mostHWSync;
|
---|
2627 | XL_MOST150_NW_STARTUP_EV mostStartup;
|
---|
2628 | XL_MOST150_NW_SHUTDOWN_EV mostShutdown;
|
---|
2629 | XL_MOST150_STREAM_STATE_EV mostStreamState;
|
---|
2630 | XL_MOST150_STREAM_TX_BUFFER_EV mostStreamTxBuffer;
|
---|
2631 | XL_MOST150_STREAM_RX_BUFFER_EV mostStreamRxBuffer;
|
---|
2632 | XL_MOST150_STREAM_TX_UNDERFLOW_EV mostStreamTxUnderflow;
|
---|
2633 | XL_MOST150_STREAM_TX_LABEL_EV mostStreamTxLabel;
|
---|
2634 | XL_MOST150_GEN_BYPASS_STRESS_EV mostGenBypassStress;
|
---|
2635 | XL_MOST150_ECL_SEQUENCE_EV mostEclSequence;
|
---|
2636 | XL_MOST150_ECL_GLITCH_FILTER_EV mostEclGlitchFilter;
|
---|
2637 | } tagData;
|
---|
2638 | } XLmost150event;
|
---|
2639 |
|
---|
2640 |
|
---|
2641 | ///////////////////////////////////////////////////////////////////////////////////
|
---|
2642 | // Structures for MOST150 API commands
|
---|
2643 | ///////////////////////////////////////////////////////////////////////////////////
|
---|
2644 |
|
---|
2645 | //XLstatus xlMost150SetSpecialNodeInfo(DEFPARAMS, XLmost150SetSpecialNodeInfo *specialodeInfo);
|
---|
2646 | typedef struct s_xl_set_most150_special_node_info {
|
---|
2647 | unsigned int changeMask; // see XL_MOST150_SPECIAL_NODE_MASK_CHANGED
|
---|
2648 | unsigned int nodeAddress;
|
---|
2649 | unsigned int groupAddress;
|
---|
2650 | unsigned int sbc;
|
---|
2651 | unsigned int ctrlRetryTime;
|
---|
2652 | unsigned int ctrlSendAttempts;
|
---|
2653 | unsigned int asyncRetryTime;
|
---|
2654 | unsigned int asyncSendAttempts;
|
---|
2655 | unsigned char macAddr[6];
|
---|
2656 | } XLmost150SetSpecialNodeInfo;
|
---|
2657 |
|
---|
2658 | //XLstatus xlMost150CtrlTransmit(DEFPARAMS, XLmost150CtrlTxMsg *pCtrlTxMsg);
|
---|
2659 | typedef struct s_xl_most150_ctrl_tx_msg {
|
---|
2660 | unsigned int ctrlPrio; // Prio: Currently fixed to 0x01 for Control Messages
|
---|
2661 | unsigned int ctrlSendAttempts; // 1..16 attempts, set an invalid value to use the default value set by xlMost150SetCtrlRetryParameters
|
---|
2662 | unsigned int targetAddress;
|
---|
2663 |
|
---|
2664 | // ctrlData structure:
|
---|
2665 | // -----------------------------------------------------------------------
|
---|
2666 | // FBlockID | InstID | FunctionID | OpType | TelID | TelLen | Payload
|
---|
2667 | // -----------------------------------------------------------------------
|
---|
2668 | // 8 bit | 8 bit | 12 bit | 4 bit | 4 bit | 12 bit | 0 .. 45 byte
|
---|
2669 | // -----------------------------------------------------------------------
|
---|
2670 | // ctrlData[0]: FBlockID
|
---|
2671 | // ctrlData[1]: InstID
|
---|
2672 | // ctrlData[2]: FunctionID (upper 8 bits)
|
---|
2673 | // ctrlData[3]: FunctionID (lower 4 bits) + OpType (4 bits)
|
---|
2674 | // ctrlData[4]: TelId (4 bits) + TelLen (upper 4 bits)
|
---|
2675 | // ctrlData[5]: TelLen (lower 8 bits)
|
---|
2676 | // ctrlData[6..50]: Payload
|
---|
2677 | unsigned char ctrlData[51];
|
---|
2678 | } XLmost150CtrlTxMsg;
|
---|
2679 |
|
---|
2680 | //XLstatus xlMost150AsyncTransmit(DEFPARAMS, XLmost150AsyncTxMsg *pAsyncTxMsg);
|
---|
2681 | typedef struct s_xl_most150_async_tx_msg {
|
---|
2682 | unsigned int priority; // Prio: Currently fixed to 0x00 for MDP /MEP
|
---|
2683 | unsigned int asyncSendAttempts; // 1..16 attempts,set an invalid value to use the default value set by xlMost150SetAsyncRetryParameters
|
---|
2684 | unsigned int length; // max. 1600 bytes
|
---|
2685 | unsigned int targetAddress;
|
---|
2686 | unsigned char asyncData[XL_MOST150_ASYNC_SEND_PAYLOAD_MAX_SIZE];
|
---|
2687 | } XLmost150AsyncTxMsg;
|
---|
2688 |
|
---|
2689 | //XLstatus xlMost150EthernetTransmit(DEFPARAMS, XLmost150EthernetTxMsg *pEthernetTxMsg);
|
---|
2690 | typedef struct s_xl_most150_ethernet_tx_msg {
|
---|
2691 | unsigned int priority; // Prio: Currently fixed to 0x00 for MDP /MEP
|
---|
2692 | unsigned int ethSendAttempts; // 1..16 attempts, set an invalid value to use the default value set by xlMost150SetAsyncRetryParameters
|
---|
2693 | unsigned char sourceAddress[6];
|
---|
2694 | unsigned char targetAddress[6];
|
---|
2695 | unsigned int length; // max. 1600 bytes
|
---|
2696 | unsigned char ethernetData[XL_MOST150_ETHERNET_SEND_PAYLOAD_MAX_SIZE];
|
---|
2697 | } XLmost150EthernetTxMsg;
|
---|
2698 |
|
---|
2699 | //XLstatus xlMost150CtrlSyncAudio(DEFPARAMS, XLmost150SyncAudioParameter *syncAudioParameter);
|
---|
2700 | typedef struct s_xl_most150_sync_audio_parameter {
|
---|
2701 | unsigned int label;
|
---|
2702 | unsigned int width;
|
---|
2703 | unsigned int device;
|
---|
2704 | unsigned int mode;
|
---|
2705 | } XLmost150SyncAudioParameter;
|
---|
2706 |
|
---|
2707 | //XLstatus xlMost150CtrlConfigureBusload(DEFPARAMS, XLmost150CtrlBusloadConfig *pCtrlBusloadConfig);
|
---|
2708 | typedef struct s_xl_most150_ctrl_busload_config {
|
---|
2709 | unsigned int transmissionRate;
|
---|
2710 | unsigned int counterType;
|
---|
2711 | unsigned int counterPosition; // counter can be only be set in the payload -> position 0 means first payload byte!
|
---|
2712 | XLmost150CtrlTxMsg busloadCtrlMsg;
|
---|
2713 | } XLmost150CtrlBusloadConfig;
|
---|
2714 |
|
---|
2715 | //XLstatus xlMost150AsyncConfigureBusload(DEFPARAMS, XLmost150AsyncBusloadConfig *pAsyncBusloadConfig);
|
---|
2716 | typedef struct s_xl_most150_async_busload_config {
|
---|
2717 | unsigned int busloadType;
|
---|
2718 | unsigned int transmissionRate;
|
---|
2719 | unsigned int counterType;
|
---|
2720 | unsigned int counterPosition;
|
---|
2721 | union {
|
---|
2722 | unsigned char rawBusloadPkt[1540];
|
---|
2723 | XLmost150AsyncTxMsg busloadAsyncPkt;
|
---|
2724 | XLmost150EthernetTxMsg busloadEthernetPkt;
|
---|
2725 | } busloadPkt;
|
---|
2726 | } XLmost150AsyncBusloadConfig;
|
---|
2727 |
|
---|
2728 | //XLstatus xlMost150StreamOpen(DEFPARAMS, XLmost150StreamOpen* pStreamOpen);
|
---|
2729 | typedef struct s_xl_most150_stream_open {
|
---|
2730 | unsigned int* pStreamHandle;
|
---|
2731 | unsigned int direction;
|
---|
2732 | unsigned int numBytesPerFrame;
|
---|
2733 | unsigned int reserved;
|
---|
2734 | unsigned int latency;
|
---|
2735 | } XLmost150StreamOpen;
|
---|
2736 |
|
---|
2737 | //XLstatus xlMost150StreamGetInfo(DEFPARAMS, XLmost150StreamInfo* pStreamInfo);
|
---|
2738 | typedef struct s_xl_most150_stream_get_info {
|
---|
2739 | unsigned int streamHandle;
|
---|
2740 | unsigned int numBytesPerFrame;
|
---|
2741 | unsigned int direction;
|
---|
2742 | unsigned int reserved;
|
---|
2743 | unsigned int latency;
|
---|
2744 | unsigned int streamState;
|
---|
2745 | unsigned int connLabels[XL_MOST150_STREAM_RX_NUM_CL_MAX];
|
---|
2746 | } XLmost150StreamInfo;
|
---|
2747 |
|
---|
2748 |
|
---|
2749 | #include <poppack.h>
|
---|
2750 |
|
---|
2751 | ///////////////////////////////////////////////////////////////////////////////
|
---|
2752 | // Function calls
|
---|
2753 | ////////////////////////////////////////////////////////////////////////////////
|
---|
2754 | // common functions
|
---|
2755 | /*------------------------------------------------------------------------------
|
---|
2756 | xlOpenDriver():
|
---|
2757 | --------------------------------------------------------------------------------
|
---|
2758 | The Application calls this function to get access to the driver.
|
---|
2759 | */
|
---|
2760 |
|
---|
2761 | #ifdef DYNAMIC_XLDRIVER_DLL
|
---|
2762 | // in case of dynamic loading the application defines this function
|
---|
2763 | typedef XLstatus (_XL_EXPORT_API *XLOPENDRIVER) (void);
|
---|
2764 | #else
|
---|
2765 | XLstatus _XL_EXPORT_DECL xlOpenDriver(void);
|
---|
2766 | #endif
|
---|
2767 |
|
---|
2768 | /*------------------------------------------------------------------------------
|
---|
2769 | xlCloseDriver ():
|
---|
2770 | --------------------------------------------------------------------------------
|
---|
2771 | The driver is closed.
|
---|
2772 | This is used to unload the driver, if no more application is useing it.
|
---|
2773 | Does not close the open ports !!!
|
---|
2774 | */
|
---|
2775 |
|
---|
2776 | #ifdef DYNAMIC_XLDRIVER_DLL
|
---|
2777 | typedef XLstatus (_XL_EXPORT_API *XLCLOSEDRIVER) (void);
|
---|
2778 | #else
|
---|
2779 | XLstatus _XL_EXPORT_DECL xlCloseDriver(void);
|
---|
2780 | #endif
|
---|
2781 |
|
---|
2782 | /*------------------------------------------------------------------------------
|
---|
2783 | xlSetApplConfig():
|
---|
2784 | xlGetApplConfig():
|
---|
2785 | --------------------------------------------------------------------------------
|
---|
2786 | Handle the application configuration for VCANCONF.EXE
|
---|
2787 | */
|
---|
2788 |
|
---|
2789 | /*
|
---|
2790 | Returns the hwIndex, hwChannel and hwType for a specific Application and application channel.
|
---|
2791 | This gives the ability to register own applications into the Vector
|
---|
2792 | CAN DRIVER CONFIGURATION.
|
---|
2793 | AppName: Zero terminated string containing the Name of the Application.
|
---|
2794 | AppChannel: Channel of the application
|
---|
2795 | hwType, hwIndex, hwChannel: contains the the hardware information on success.
|
---|
2796 | This values can be used in a subsequent call to xlGetChannelMask or xlGetChannelIndex.
|
---|
2797 | */
|
---|
2798 |
|
---|
2799 | DECL_STDXL_FUNC( xlGetApplConfig, XLGETAPPLCONFIG, (
|
---|
2800 | char *appName, //<! Name of Application
|
---|
2801 | unsigned int appChannel, //<! 0,1
|
---|
2802 | unsigned int *pHwType, //<! HWTYPE_xxxx
|
---|
2803 | unsigned int *pHwIndex, //<! Index of the hardware (slot) (0,1,...)
|
---|
2804 | unsigned int *pHwChannel, //<! Index of the channel (connector) (0,1,...)
|
---|
2805 | unsigned int busType //<! Bus type of configuration, should be BUS_TYPE_NONE when no bus type is set
|
---|
2806 | ));
|
---|
2807 |
|
---|
2808 | DECL_STDXL_FUNC( xlSetApplConfig, XLSETAPPLCONFIG, (
|
---|
2809 | char *appName, //<! Name of Application
|
---|
2810 | unsigned int appChannel, //<! 0,1
|
---|
2811 | unsigned int hwType, //<! HWTYPE_xxxx
|
---|
2812 | unsigned int hwIndex, //<! Index of the hardware (slot) (0,1,...)
|
---|
2813 | unsigned int hwChannel, //<! Index of the channel (connector) (0,1,...)
|
---|
2814 | unsigned int busType //<! Bus type of configuration, should be BUS_TYPE_NONE when no bus type is set
|
---|
2815 | ));
|
---|
2816 |
|
---|
2817 | /*------------------------------------------------------------------------------
|
---|
2818 | xlGetDriverConfig():
|
---|
2819 | --------------------------------------------------------------------------------
|
---|
2820 | The application gets the information, which
|
---|
2821 | channels are available in the system. The user
|
---|
2822 | must provide the memory (pointer to XLdriverConfig structure).
|
---|
2823 | */
|
---|
2824 |
|
---|
2825 | DECL_STDXL_FUNC( xlGetDriverConfig, XLGETDRIVERCONFIG, (XLdriverConfig *pDriverConfig));
|
---|
2826 |
|
---|
2827 | /*------------------------------------------------------------------------------
|
---|
2828 | xlGetChannelIndex():
|
---|
2829 | xlGetChannelMask():
|
---|
2830 | --------------------------------------------------------------------------------
|
---|
2831 |
|
---|
2832 | Get the channel index for a channel of a certain hardware.
|
---|
2833 | Parameter -1 means "don't care"
|
---|
2834 | Result -1 (xlGetChannelIndex) or 0 (xlGetChannelMask) means "not found"
|
---|
2835 | */
|
---|
2836 |
|
---|
2837 | #ifdef DYNAMIC_XLDRIVER_DLL
|
---|
2838 | typedef int (_XL_EXPORT_API *XLGETCHANNELINDEX) (
|
---|
2839 | int hwType, // [-1,HWTYPE_CANCARDX,HWTYPE_VIRTUAL,...]
|
---|
2840 | int hwIndex, // [-1,0,1]
|
---|
2841 | int hwChannel // [-1,0,1]
|
---|
2842 | );
|
---|
2843 |
|
---|
2844 | typedef XLaccess (_XL_EXPORT_API *XLGETCHANNELMASK) (
|
---|
2845 | int hwType, // [-1,HWTYPE_CANCARDX,HWTYPE_VIRTUAL,...]
|
---|
2846 | int hwIndex, // [-1,0,1]
|
---|
2847 | int hwChannel // [-1,0,1]
|
---|
2848 | );
|
---|
2849 | #else
|
---|
2850 | int _XL_EXPORT_DECL xlGetChannelIndex(
|
---|
2851 | int hwType, // [-1,HWTYPE_CANCARDX,HWTYPE_VIRTUAL,...]
|
---|
2852 | int hwIndex, // [-1,0,1]
|
---|
2853 | int hwChannel // [-1,0,1]
|
---|
2854 | );
|
---|
2855 |
|
---|
2856 | XLaccess _XL_EXPORT_DECL xlGetChannelMask(
|
---|
2857 | int hwType, // [-1,HWTYPE_CANCARDX,HWTYPE_VIRTUAL,...]
|
---|
2858 | int hwIndex, // [-1,0,1]
|
---|
2859 | int hwChannel // [-1,0,1]
|
---|
2860 | );
|
---|
2861 | #endif
|
---|
2862 |
|
---|
2863 |
|
---|
2864 | /*------------------------------------------------------------------------------
|
---|
2865 | xlOpenPort():
|
---|
2866 | --------------------------------------------------------------------------------
|
---|
2867 | The application tells the driver to which channels
|
---|
2868 | it wants to get access to and which of these channels
|
---|
2869 | it wants to get the permission to initialize the channel (on input must be
|
---|
2870 | in variable where pPermissionMask points).
|
---|
2871 | Only one port can get the permission to initialize a channel.
|
---|
2872 | The port handle and permitted init access is returned.
|
---|
2873 | */
|
---|
2874 |
|
---|
2875 | DECL_STDXL_FUNC( xlOpenPort, XLOPENPORT, (
|
---|
2876 | XLportHandle *pPortHandle,
|
---|
2877 | char *userName,
|
---|
2878 | XLaccess accessMask,
|
---|
2879 | XLaccess *pPermissionMask,
|
---|
2880 | unsigned int rxQueueSize,
|
---|
2881 | unsigned int xlInterfaceVersion,
|
---|
2882 | unsigned int busType)
|
---|
2883 | );
|
---|
2884 |
|
---|
2885 | /*------------------------------------------------------------------------------
|
---|
2886 | xlSetTimerRate():
|
---|
2887 | --------------------------------------------------------------------------------
|
---|
2888 | The timer of the port will be activated/deacticated and the
|
---|
2889 | rate for cyclic timer events is set.
|
---|
2890 | The resolution of the parameter 'timerRate' is 10us.
|
---|
2891 | The accepted values for this parameter are 100, 200, 300,... resulting
|
---|
2892 | in an effective timerrate of 1000us, 2000us, 3000us,...
|
---|
2893 | */
|
---|
2894 |
|
---|
2895 | DECL_STDXL_FUNC ( xlSetTimerRate, XLSETTIMERRATE, (
|
---|
2896 | XLportHandle portHandle,
|
---|
2897 | unsigned long timerRate)
|
---|
2898 | );
|
---|
2899 |
|
---|
2900 | /*------------------------------------------------------------------------------
|
---|
2901 | xlSetTimerRateAndChannel():
|
---|
2902 | --------------------------------------------------------------------------------
|
---|
2903 | This function sets the timerrate for timerbased-notify feature using out from
|
---|
2904 | the specified channels the one which is best suitable for exact timestamps.
|
---|
2905 | If only one channel is specified, this channel is used for timer event generation.
|
---|
2906 | Only channels that are assigned to the port specified by parameter portHandle may be used.
|
---|
2907 | Parameter timerRate specifies the requested timer event's cyclic rate; passed back is
|
---|
2908 | the timer rate used by the driver. The resolution of this parameter is 10us.
|
---|
2909 | A value timerRate=0 would disable timer events.
|
---|
2910 | Returns in parameter timerChannelMask the channel that is best suitable
|
---|
2911 | for timer event generation out of the channels specified by paramter
|
---|
2912 | timerChannelMask. The timer rate value may be below 1ms, but is limited to the following
|
---|
2913 | discrete values (with 'x' as unsigned decimal value):
|
---|
2914 | CAN/LIN : 250 us ... (250 us + x * 250 us)
|
---|
2915 | Flexray(USB): 250 us ... (250 us + x * 50 us)
|
---|
2916 | Flexray(PCI): 100 us ... (100 us + x * 50 us)
|
---|
2917 |
|
---|
2918 | Example: timerRate=25 ==> Used timerrate would be 250us.
|
---|
2919 | */
|
---|
2920 |
|
---|
2921 | DECL_STDXL_FUNC ( xlSetTimerRateAndChannel, XLSETTIMERRATEANDCHANNEL, (
|
---|
2922 | XLportHandle portHandle,
|
---|
2923 | XLaccess *timerChannelMask,
|
---|
2924 | unsigned long *timerRate)
|
---|
2925 | );
|
---|
2926 |
|
---|
2927 |
|
---|
2928 | /*------------------------------------------------------------------------------
|
---|
2929 | xlResetClock():
|
---|
2930 | --------------------------------------------------------------------------------
|
---|
2931 | The clock generating timestamps for the port will be reset
|
---|
2932 | */
|
---|
2933 |
|
---|
2934 | DECL_STDXL_FUNC ( xlResetClock, XLRESETCLOCK, (XLportHandle portHandle));
|
---|
2935 |
|
---|
2936 | /*------------------------------------------------------------------------------
|
---|
2937 | xlSetNotification():
|
---|
2938 | --------------------------------------------------------------------------------
|
---|
2939 | Setup a event to notify the application if there are messages in the
|
---|
2940 | ports receive queue.
|
---|
2941 | queueLevel specifies the number of messages that triggeres the event.
|
---|
2942 | Note that the event is triggered only once, when the queueLevel is
|
---|
2943 | reached. An application should read all available messages by xlReceive
|
---|
2944 | to be sure to reenable the event. The API generates the handle by
|
---|
2945 | itself. For LIN the queueLevel is fix to one.
|
---|
2946 | */
|
---|
2947 |
|
---|
2948 | DECL_STDXL_FUNC ( xlSetNotification, XLSETNOTIFICATION, (
|
---|
2949 | XLportHandle portHandle,
|
---|
2950 | XLhandle *handle,
|
---|
2951 | int queueLevel)
|
---|
2952 | );
|
---|
2953 |
|
---|
2954 |
|
---|
2955 | /*------------------------------------------------------------------------------
|
---|
2956 | xlSetTimerBasedNotifiy():
|
---|
2957 | --------------------------------------------------------------------------------
|
---|
2958 | Setup a event to notify the application based on the timerrate which can
|
---|
2959 | be set by xlSetTimerRate()/xlSetTimerRateAndChannel().
|
---|
2960 | */
|
---|
2961 |
|
---|
2962 | DECL_STDXL_FUNC ( xlSetTimerBasedNotify, XLSETTIMERBASEDNOTIFY, (
|
---|
2963 | XLportHandle portHandle,
|
---|
2964 | XLhandle *pHandle)
|
---|
2965 | );
|
---|
2966 |
|
---|
2967 | /*------------------------------------------------------------------------------
|
---|
2968 | xlFlushReceiveQueue():
|
---|
2969 | --------------------------------------------------------------------------------
|
---|
2970 | The receive queue of the port will be flushed.
|
---|
2971 | */
|
---|
2972 |
|
---|
2973 | DECL_STDXL_FUNC ( xlFlushReceiveQueue, XLFLUSHRECEIVEQUEUE, (XLportHandle portHandle));
|
---|
2974 |
|
---|
2975 | /*------------------------------------------------------------------------------
|
---|
2976 | xlGetReceiveQueueLevel():
|
---|
2977 | --------------------------------------------------------------------------------
|
---|
2978 | The count of events in the receive queue of the port will be returned.
|
---|
2979 | */
|
---|
2980 |
|
---|
2981 | DECL_STDXL_FUNC ( xlGetReceiveQueueLevel, XLGETRECEIVEQUEUELEVEL, (
|
---|
2982 | XLportHandle portHandle,
|
---|
2983 | int *level)
|
---|
2984 | );
|
---|
2985 |
|
---|
2986 | /*------------------------------------------------------------------------------
|
---|
2987 | xlActivateChannel():
|
---|
2988 | --------------------------------------------------------------------------------
|
---|
2989 | The selected channels go 'on the bus'. Type of the bus is specified by busType parameter.
|
---|
2990 | Additional parameters can be specified by flags parameter.
|
---|
2991 | */
|
---|
2992 |
|
---|
2993 | DECL_STDXL_FUNC ( xlActivateChannel, XLACTIVATECHANNEL, (
|
---|
2994 | XLportHandle portHandle,
|
---|
2995 | XLaccess accessMask,
|
---|
2996 | unsigned int busType,
|
---|
2997 | unsigned int flags)
|
---|
2998 | );
|
---|
2999 |
|
---|
3000 |
|
---|
3001 | /*------------------------------------------------------------------------------
|
---|
3002 | xlReceive():
|
---|
3003 | --------------------------------------------------------------------------------
|
---|
3004 | The driver is asked to retrieve burst of Events from the
|
---|
3005 | application's receive queue. This function is optimized
|
---|
3006 | for speed. pEventCount on start must contain size of the buffer in
|
---|
3007 | messages, on return it sets number of realy received messages (messages
|
---|
3008 | written to pEvents buffer).
|
---|
3009 | Application must allocate pEvents buffer big enough to hold number of
|
---|
3010 | messages requested by pEventCount parameter.
|
---|
3011 | It returns VERR_QUEUE_IS_EMPTY and *pEventCount=0 if no event
|
---|
3012 | was received.
|
---|
3013 | The function only works for CAN, LIN, DAIO. For MOST there is a different
|
---|
3014 | function
|
---|
3015 | */
|
---|
3016 |
|
---|
3017 | DECL_STDXL_FUNC ( xlReceive, XLRECEIVE, (
|
---|
3018 | XLportHandle portHandle,
|
---|
3019 | unsigned int *pEventCount,
|
---|
3020 | XLevent *pEvents)
|
---|
3021 | );
|
---|
3022 |
|
---|
3023 | /*------------------------------------------------------------------------------
|
---|
3024 | xlGetErrorString():
|
---|
3025 | xlGetEventString():
|
---|
3026 | --------------------------------------------------------------------------------
|
---|
3027 | Utility Functions
|
---|
3028 | */
|
---|
3029 | #ifdef DYNAMIC_XLDRIVER_DLL
|
---|
3030 | typedef XLstringType (_XL_EXPORT_API *XLGETERRORSTRING) ( XLstatus err );
|
---|
3031 | typedef XLstringType (_XL_EXPORT_API *XLGETEVENTSTRING)( XLevent *pEv );
|
---|
3032 | #else
|
---|
3033 | XLstringType _XL_EXPORT_DECL xlGetErrorString( XLstatus err );
|
---|
3034 | XLstringType _XL_EXPORT_DECL xlGetEventString( XLevent *pEv );
|
---|
3035 | #endif
|
---|
3036 |
|
---|
3037 | /*------------------------------------------------------------------------------
|
---|
3038 | xlOemContact():
|
---|
3039 | --------------------------------------------------------------------------------
|
---|
3040 | */
|
---|
3041 |
|
---|
3042 | DECL_STDXL_FUNC ( xlOemContact, XLOEMCONTACT, (XLportHandle portHandle, unsigned long Channel, XLuint64 context1, XLuint64 *context2));
|
---|
3043 |
|
---|
3044 | /*------------------------------------------------------------------------------
|
---|
3045 | xlGetSyncTime():
|
---|
3046 | --------------------------------------------------------------------------------
|
---|
3047 | Function is reading high precision (1ns) card time used for time synchronization
|
---|
3048 | of Party Line trigger (sync line).
|
---|
3049 | */
|
---|
3050 |
|
---|
3051 | DECL_STDXL_FUNC ( xlGetSyncTime, XLGETSYNCTIME, (
|
---|
3052 | XLportHandle portHandle,
|
---|
3053 | XLuint64 *pTime )
|
---|
3054 | );
|
---|
3055 |
|
---|
3056 | /*------------------------------------------------------------------------------
|
---|
3057 | xlGenerateSyncPulse():
|
---|
3058 | --------------------------------------------------------------------------------
|
---|
3059 | Activates short sync pulse on desired channel. Channels mask should not
|
---|
3060 | define two channels of one hardware.
|
---|
3061 |
|
---|
3062 | */
|
---|
3063 |
|
---|
3064 | DECL_STDXL_FUNC ( xlGenerateSyncPulse, XLGENERATESYNCPULSE, (
|
---|
3065 | XLportHandle portHandle,
|
---|
3066 | XLaccess accessMask)
|
---|
3067 | );
|
---|
3068 |
|
---|
3069 | /*------------------------------------------------------------------------------
|
---|
3070 | xlPopupHwConfig():
|
---|
3071 | --------------------------------------------------------------------------------
|
---|
3072 | */
|
---|
3073 |
|
---|
3074 | DECL_STDXL_FUNC ( xlPopupHwConfig, XLPOPUPHWCONFIG, (
|
---|
3075 | char *callSign,
|
---|
3076 | unsigned int waitForFinish)
|
---|
3077 | );
|
---|
3078 |
|
---|
3079 | /*------------------------------------------------------------------------------
|
---|
3080 | xlDeactivateChannel():
|
---|
3081 | --------------------------------------------------------------------------------
|
---|
3082 | The selected channels go 'off the bus'.
|
---|
3083 | Its now possible to initialize
|
---|
3084 | */
|
---|
3085 |
|
---|
3086 | DECL_STDXL_FUNC ( xlDeactivateChannel, XLDEACTIVATECHANNEL, (
|
---|
3087 | XLportHandle portHandle,
|
---|
3088 | XLaccess accessMask)
|
---|
3089 | );
|
---|
3090 |
|
---|
3091 | /*------------------------------------------------------------------------------
|
---|
3092 | xlClosePort():
|
---|
3093 | --------------------------------------------------------------------------------
|
---|
3094 | The port is closed, channels are deactivated.
|
---|
3095 | */
|
---|
3096 |
|
---|
3097 | DECL_STDXL_FUNC ( xlClosePort, XLCLOSEPORT, (
|
---|
3098 | XLportHandle portHandle)
|
---|
3099 | );
|
---|
3100 |
|
---|
3101 | ////////////////////////////////////////////////////////////////////////////////
|
---|
3102 | // CAN functions
|
---|
3103 | ////////////////////////////////////////////////////////////////////////////////
|
---|
3104 | /*------------------------------------------------------------------------------
|
---|
3105 | xlCanFlushTransmitQueue():
|
---|
3106 | // TODO: fr MOST nutzen
|
---|
3107 | --------------------------------------------------------------------------------
|
---|
3108 | The transmit queue of the selected channel will be flushed.
|
---|
3109 | */
|
---|
3110 |
|
---|
3111 | DECL_STDXL_FUNC ( xlCanFlushTransmitQueue, XLCANFLUSHTRANSMITQUEUE, (
|
---|
3112 | XLportHandle portHandle, XLaccess accessMask)
|
---|
3113 | );
|
---|
3114 |
|
---|
3115 |
|
---|
3116 | /*------------------------------------------------------------------------------
|
---|
3117 | xlCanSetChannelOutput():
|
---|
3118 | --------------------------------------------------------------------------------
|
---|
3119 | The output mode for the CAN chips of the channels defined by accessMask, is set
|
---|
3120 | to OUTPUT_MODE_NORMAL or OUTPUT_MODE_SILENT.
|
---|
3121 | The port must have init access to the channels.
|
---|
3122 | */
|
---|
3123 |
|
---|
3124 | DECL_STDXL_FUNC ( xlCanSetChannelOutput, XLCANSETCHANNELOUTPUT, (
|
---|
3125 | XLportHandle portHandle,
|
---|
3126 | XLaccess accessMask,
|
---|
3127 | int mode)
|
---|
3128 | );
|
---|
3129 |
|
---|
3130 |
|
---|
3131 | /*------------------------------------------------------------------------------
|
---|
3132 | xlCanSetChannelMode():
|
---|
3133 | --------------------------------------------------------------------------------
|
---|
3134 | For the CAN channels defined by AccessMask is set
|
---|
3135 | whether the caller will get a TX and/or a TXRQ
|
---|
3136 | receipt for transmitted messages.
|
---|
3137 | The port must have init access to the channels.
|
---|
3138 | */
|
---|
3139 |
|
---|
3140 | DECL_STDXL_FUNC ( xlCanSetChannelMode, XLCANSETCHANNELMODE, (
|
---|
3141 | XLportHandle portHandle,
|
---|
3142 | XLaccess accessMask,
|
---|
3143 | int tx,
|
---|
3144 | int txrq)
|
---|
3145 | );
|
---|
3146 |
|
---|
3147 | /*------------------------------------------------------------------------------
|
---|
3148 | xlCanSetReceiveMode():
|
---|
3149 | --------------------------------------------------------------------------------
|
---|
3150 | */
|
---|
3151 |
|
---|
3152 | DECL_STDXL_FUNC (xlCanSetReceiveMode, XLCANSETRECEIVEMODE, (
|
---|
3153 | XLportHandle Port, // Port Handle
|
---|
3154 | unsigned char ErrorFrame, // suppress Error Frames
|
---|
3155 | unsigned char ChipState // suppress Chip States
|
---|
3156 | )
|
---|
3157 | );
|
---|
3158 |
|
---|
3159 |
|
---|
3160 | /*------------------------------------------------------------------------------*/
|
---|
3161 | /** xlCanSetChannelTransceiver():
|
---|
3162 | *\brief The transceiver mode is set for all channels defined by accessMask.
|
---|
3163 | * The port must have init access to the channels.
|
---|
3164 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3165 | * \param accessMask [IN] mask specifying the port's channel from where to get the device state
|
---|
3166 | * \param type [IN] Reserved. Should always be set to zero!
|
---|
3167 | * \param lineMode [IN] Transceiver operation mode (specified by defines 'XL_TRANSCEIVER_LINEMODE_*')
|
---|
3168 | * \param resNet [IN] Reserved. Should always be set to zero!
|
---|
3169 | */
|
---|
3170 |
|
---|
3171 | DECL_STDXL_FUNC ( xlCanSetChannelTransceiver, XLCANSETCHANNELTRANSCEIVER, (
|
---|
3172 | XLportHandle portHandle,
|
---|
3173 | XLaccess accessMask,
|
---|
3174 | int type,
|
---|
3175 | int lineMode,
|
---|
3176 | int resNet)
|
---|
3177 | );
|
---|
3178 |
|
---|
3179 | /*------------------------------------------------------------------------------
|
---|
3180 | xlCanSetChannelParams():
|
---|
3181 | xlCanSetChannelParamsC200():
|
---|
3182 | xlCanSetChannelBitrate():
|
---|
3183 | --------------------------------------------------------------------------------
|
---|
3184 | The channels defined by accessMask will be initialized with the
|
---|
3185 | given parameters.
|
---|
3186 | The port must have init access to the channels.
|
---|
3187 | */
|
---|
3188 |
|
---|
3189 | DECL_STDXL_FUNC ( xlCanSetChannelParams, XLCANSETCHANNELPARAMS, (
|
---|
3190 | XLportHandle portHandle,
|
---|
3191 | XLaccess accessMask,
|
---|
3192 | XLchipParams* pChipParams)
|
---|
3193 | );
|
---|
3194 |
|
---|
3195 | DECL_STDXL_FUNC ( xlCanSetChannelParamsC200, XLCANSETCHANNELPARAMSC200, (
|
---|
3196 | XLportHandle portHandle,
|
---|
3197 | XLaccess accessMask,
|
---|
3198 | unsigned char btr0,
|
---|
3199 | unsigned char btr1)
|
---|
3200 | );
|
---|
3201 |
|
---|
3202 | DECL_STDXL_FUNC ( xlCanSetChannelBitrate, XLCANSETCHANNELBITRATE, (
|
---|
3203 | XLportHandle portHandle,
|
---|
3204 | XLaccess accessMask,
|
---|
3205 | unsigned long bitrate)
|
---|
3206 | );
|
---|
3207 |
|
---|
3208 | /*------------------------------------------------------------------------------
|
---|
3209 | xlCanSetAcceptance():
|
---|
3210 | --------------------------------------------------------------------------------
|
---|
3211 | Set the acceptance filter
|
---|
3212 | Filters for std and ext ids are handled independant in the driver.
|
---|
3213 | Use mask=0xFFFF,code=0xFFFF or mask=0xFFFFFFFF,code=0xFFFFFFFF to fully close
|
---|
3214 | the filter.
|
---|
3215 | */
|
---|
3216 |
|
---|
3217 | DECL_STDXL_FUNC ( xlCanSetChannelAcceptance, XLCANSETCHANNELACCEPTANCE, (
|
---|
3218 | XLportHandle portHandle,
|
---|
3219 | XLaccess accessMask,
|
---|
3220 | unsigned long code,
|
---|
3221 | unsigned long mask,
|
---|
3222 | unsigned int idRange)
|
---|
3223 | );
|
---|
3224 |
|
---|
3225 | /*------------------------------------------------------------------------------
|
---|
3226 | xlCanAddAcceptanceRange():
|
---|
3227 | xlCanRemoveAcceptanceRange():
|
---|
3228 | xlCanResetAcceptance():
|
---|
3229 | --------------------------------------------------------------------------------
|
---|
3230 | */
|
---|
3231 |
|
---|
3232 | DECL_STDXL_FUNC ( xlCanAddAcceptanceRange, XLCANADDACCEPTANCERANGE, (
|
---|
3233 | XLportHandle portHandle,
|
---|
3234 | XLaccess accessMask,
|
---|
3235 | unsigned long first_id,
|
---|
3236 | unsigned long last_id)
|
---|
3237 | );
|
---|
3238 | DECL_STDXL_FUNC ( xlCanRemoveAcceptanceRange, XLCANREMOVEACCEPTANCERANGE, (
|
---|
3239 | XLportHandle portHandle,
|
---|
3240 | XLaccess accessMask,
|
---|
3241 | unsigned long first_id,
|
---|
3242 | unsigned long last_id)
|
---|
3243 | );
|
---|
3244 | DECL_STDXL_FUNC ( xlCanResetAcceptance, XLCANRESETACCEPTANCE, (
|
---|
3245 | XLportHandle portHandle,
|
---|
3246 | XLaccess accessMask,
|
---|
3247 | unsigned int idRange);
|
---|
3248 | );
|
---|
3249 |
|
---|
3250 | /*------------------------------------------------------------------------------
|
---|
3251 | xlCanRequestChipState():
|
---|
3252 | --------------------------------------------------------------------------------
|
---|
3253 | The state of the selected channels is requested.
|
---|
3254 | The answer will be received as an event (XL_CHIP_STATE).
|
---|
3255 | */
|
---|
3256 |
|
---|
3257 | DECL_STDXL_FUNC ( xlCanRequestChipState, XLCANREQUESTCHIPSTATE, (
|
---|
3258 | XLportHandle portHandle,
|
---|
3259 | XLaccess accessMask)
|
---|
3260 | );
|
---|
3261 |
|
---|
3262 | /*------------------------------------------------------------------------------
|
---|
3263 | xlCanTransmit():
|
---|
3264 | --------------------------------------------------------------------------------
|
---|
3265 | This function is designed to send different messages to supported bus.
|
---|
3266 | Usualy pEvents is a pointer to XLevent array. pEvents points to variable
|
---|
3267 | which contains information about how many messages should be transmitted
|
---|
3268 | to desired channels. It must be less or same as pEventCount buffer size
|
---|
3269 | in messages. On return function writes number of transmitted messages
|
---|
3270 | (moved to device queue for transmitting).
|
---|
3271 |
|
---|
3272 | */
|
---|
3273 |
|
---|
3274 | DECL_STDXL_FUNC ( xlCanTransmit, XLCANTRANSMIT, (
|
---|
3275 | XLportHandle portHandle,
|
---|
3276 | XLaccess accessMask,
|
---|
3277 | unsigned int *pEventCount,
|
---|
3278 | void *pEvents)
|
---|
3279 | );
|
---|
3280 |
|
---|
3281 |
|
---|
3282 | /*------------------------------------------------------------------------------
|
---|
3283 | xlSetGlobalTimeSync():
|
---|
3284 | --------------------------------------------------------------------------------
|
---|
3285 | To query and change the globale time sync setting
|
---|
3286 | */
|
---|
3287 | DECL_STDXL_FUNC ( xlSetGlobalTimeSync, XLSETGLOBALTIMESYNC, (unsigned long newValue,
|
---|
3288 | unsigned long *previousValue));
|
---|
3289 |
|
---|
3290 |
|
---|
3291 | /*------------------------------------------------------------------------------
|
---|
3292 | xlCheckLicense():
|
---|
3293 | --------------------------------------------------------------------------------
|
---|
3294 | For all channels the port wants to use it is checked wether
|
---|
3295 | the hardware is licensed for the type of application.
|
---|
3296 | If not the application should terminate.
|
---|
3297 | */
|
---|
3298 |
|
---|
3299 | DECL_STDXL_FUNC ( xlCheckLicense, XLCHECKLICENSE, (
|
---|
3300 | XLportHandle portHandle,
|
---|
3301 | XLaccess accessMask,
|
---|
3302 | unsigned long protectionCode)
|
---|
3303 | );
|
---|
3304 |
|
---|
3305 |
|
---|
3306 | /********************************************************************/
|
---|
3307 | /** xlGetLicenseInfo()
|
---|
3308 | *\brief Function to get available licenses from Vector devices.
|
---|
3309 | * This function returns the available licenses in an array of XLlicenseInfo structures. This array contains all available licenses on
|
---|
3310 | * the queried channels. The position inside the array is defined by the license itself, e.g. the license for
|
---|
3311 | * the Advanced-Flexray-Library is always at the same array index.
|
---|
3312 | * \param channelMask [IN] : Channelmask for which to query the available licenses
|
---|
3313 | * \param *pLicInfoArray [OUT]: Array with license overview
|
---|
3314 | * \param licInfoArraySize [IN] : Size of array pointed to with 'pLicInfo' (number of array entries)
|
---|
3315 | * \return XLstatus General status information is returned.
|
---|
3316 | * XL_SUCCESS if no error occured.
|
---|
3317 | * XL_ERR_NO_RESOURCES if the given array size is too small to copy all available licenses into it.
|
---|
3318 | * XL_ERROR if general error occured.
|
---|
3319 | */
|
---|
3320 | DECL_STDXL_FUNC ( xlGetLicenseInfo, XLGETLICENSEINFO, (
|
---|
3321 | XLaccess channelMask,
|
---|
3322 | XLlicenseInfo *pLicInfoArray,
|
---|
3323 | unsigned int licInfoArraySize)
|
---|
3324 | );
|
---|
3325 |
|
---|
3326 |
|
---|
3327 | ////////////////////////////////////////////////////////////////////////////////
|
---|
3328 | // LIN functions
|
---|
3329 | ////////////////////////////////////////////////////////////////////////////////
|
---|
3330 |
|
---|
3331 | DECL_STDXL_FUNC( xlLinSetChannelParams, XLLINSETCHANNELPARAMS, (XLportHandle portHandle, XLaccess accessMask, XLlinStatPar vStatPar));
|
---|
3332 | DECL_STDXL_FUNC( xlLinSetDLC, XLLINSETDLC, (XLportHandle portHandle, XLaccess accessMask, unsigned char dlc[64]));
|
---|
3333 | DECL_STDXL_FUNC( xlLinSetSlave, XLLINSETSLAVE, (XLportHandle portHandle, XLaccess accessMask, unsigned char linId, unsigned char data[8], unsigned char dlc, unsigned short checksum));
|
---|
3334 | DECL_STDXL_FUNC( xlLinSendRequest, XLLINSENDREQUEST, (XLportHandle portHandle, XLaccess accessMask, unsigned char linId, unsigned int flags));
|
---|
3335 | DECL_STDXL_FUNC( xlLinSetSleepMode, XLLINSETSLEEPMODE, (XLportHandle portHandle, XLaccess accessMask, unsigned int flags, unsigned char linId));
|
---|
3336 | DECL_STDXL_FUNC( xlLinWakeUp, XLLINWAKEUP, (XLportHandle portHandle, XLaccess accessMask));
|
---|
3337 | DECL_STDXL_FUNC( xlLinSetChecksum, XLLINSETCHECKSUM, (XLportHandle portHandle, XLaccess accessMask, unsigned char checksum[60]));
|
---|
3338 | DECL_STDXL_FUNC( xlLinSwitchSlave, XLLINSWITCHSLAVE, (XLportHandle portHandle, XLaccess accessMask, unsigned char linID, unsigned char mode));
|
---|
3339 |
|
---|
3340 | ////////////////////////////////////////////////////////////////////////////////
|
---|
3341 | // DAIO Function Declarations
|
---|
3342 | ////////////////////////////////////////////////////////////////////////////////
|
---|
3343 |
|
---|
3344 | DECL_STDXL_FUNC (xlDAIOSetPWMOutput , XLDAIOSETPWMOUTPUT, (XLportHandle portHandle, XLaccess accessMask, unsigned int frequency, unsigned int value));
|
---|
3345 | DECL_STDXL_FUNC (xlDAIOSetDigitalOutput , XLDAIOSETDIGITALOUTPUT, (XLportHandle portHandle, XLaccess accessMask, unsigned int outputMask, unsigned int valuePattern));
|
---|
3346 | DECL_STDXL_FUNC (xlDAIOSetAnalogOutput , XLDAIOSETANALOGOUTPUT, (XLportHandle portHandle, XLaccess accessMask, unsigned int analogLine1, unsigned int analogLine2, unsigned int analogLine3, unsigned int analogLine4));
|
---|
3347 | DECL_STDXL_FUNC (xlDAIORequestMeasurement , XLDAIOREQUESTMEASUREMENT, (XLportHandle portHandle, XLaccess accessMask));
|
---|
3348 | DECL_STDXL_FUNC (xlDAIOSetDigitalParameters , XLDAIOSETDIGITALPARAMETERS, (XLportHandle portHandle, XLaccess accessMask, unsigned int inputMask, unsigned int outputMask));
|
---|
3349 | DECL_STDXL_FUNC (xlDAIOSetAnalogParameters , XLDAIOSETANALOGPARAMETERS, (XLportHandle portHandle, XLaccess accessMask, unsigned int inputMask, unsigned int outputMask, unsigned int highRangeMask));
|
---|
3350 | DECL_STDXL_FUNC (xlDAIOSetAnalogTrigger , XLDAIOSETANALOGTRIGGER, (XLportHandle portHandle, XLaccess accessMask, unsigned int triggerMask, unsigned int triggerLevel, unsigned int triggerEventMode));
|
---|
3351 | DECL_STDXL_FUNC (xlDAIOSetMeasurementFrequency , XLDAIOSETMEASUREMENTFREQUENCY, (XLportHandle portHandle, XLaccess accessMask, unsigned int measurementInterval));
|
---|
3352 | DECL_STDXL_FUNC (xlDAIOSetDigitalTrigger , XLDAIOSETDIGITALTRIGGER, (XLportHandle portHandle, XLaccess accessMask, unsigned int triggerMask));
|
---|
3353 |
|
---|
3354 |
|
---|
3355 | ////////////////////////////////////////////////////////////////////////////////
|
---|
3356 | // extern declaration for dynamically linking... for functions without the macro
|
---|
3357 | ////////////////////////////////////////////////////////////////////////////////
|
---|
3358 |
|
---|
3359 | #ifdef DYNAMIC_XLDRIVER_DLL
|
---|
3360 | # ifndef DO_NOT_DEFINE_EXTERN_DECLARATION
|
---|
3361 |
|
---|
3362 | XLstatus xlOpenDriver(void);
|
---|
3363 | XLstatus xlCloseDriver(void);
|
---|
3364 |
|
---|
3365 | extern XLGETCHANNELINDEX xlGetChannelIndex;
|
---|
3366 | extern XLGETCHANNELMASK xlGetChannelMask;
|
---|
3367 |
|
---|
3368 | extern XLGETEVENTSTRING xlGetEventString;
|
---|
3369 | extern XLGETERRORSTRING xlGetErrorString;
|
---|
3370 |
|
---|
3371 | # endif
|
---|
3372 | #endif
|
---|
3373 |
|
---|
3374 | ////////////////////////////////////////////////////////////////////////////////
|
---|
3375 | // MOST Function Declarations
|
---|
3376 | ////////////////////////////////////////////////////////////////////////////////
|
---|
3377 |
|
---|
3378 | // apiname, apitype, parameters in paranthesis
|
---|
3379 |
|
---|
3380 | /**
|
---|
3381 | * Common principles:
|
---|
3382 | * If not mentioned otherwise, all APIs are asynchronous and will trigger an action in VN2600.
|
---|
3383 | * Results are delivered in events which can be fetched by xlMostReceive.
|
---|
3384 | *
|
---|
3385 | * Common Parameters: DEFPARAMS
|
---|
3386 | * XLportHandle portHandle: was previously fetched by xlOpenPort API.
|
---|
3387 | * XLaccess accessMask: determines on which channels an API should work.
|
---|
3388 | * XLuserHandle userHandle: used to match the response of the driver to the requests of the application
|
---|
3389 | * if an event is received spontaneously, e.g. MPR changed then the userHandle == 0
|
---|
3390 | * Common Return Value:
|
---|
3391 | * XLstatus: common return value of most APIs which indicates whether a command was
|
---|
3392 | * successfully launched or e.g. whether a command queue overflow happend
|
---|
3393 | */
|
---|
3394 |
|
---|
3395 | /** \brief fetching events from driver queue.
|
---|
3396 | * This method is used to fetch events, either bus events or acknowledgements
|
---|
3397 | * for commands from the driver queue. Each call delivers only one event (if an event is available). \n
|
---|
3398 | * It is a synchronous mode and either delivers event data immediately, or
|
---|
3399 | * indicates an error condition with its return value.
|
---|
3400 | * \param XLportHandle portHandle: [IN] was previously fetched by xlOpenPort API (TODO)
|
---|
3401 | * \param XLaccess accessMask: [IN] determines on which channels an API should work (TODO)
|
---|
3402 | * \param pEventBuffer [IN] This parameter must point to a buffer to which the driver can copy
|
---|
3403 | * the next event of the receive queue
|
---|
3404 | * \return XLstatus general status information
|
---|
3405 | */
|
---|
3406 | DECL_STDXL_FUNC( xlMostReceive, XLFP_MOSTRECEIVE, (XLportHandle portHandle, XLmostEvent* pEventBuffer));
|
---|
3407 |
|
---|
3408 | /** \brief Activates or deactivates the different event sources of VN2600.
|
---|
3409 | * This method is used to select which bus events should be delivered by VN2600.
|
---|
3410 | * Either CtrlNode, CtrlSpy, AsyncNode or AsyncSpy messages \n
|
---|
3411 | * ResponseEvent: XL_MOST_EVENTSOURCES
|
---|
3412 | * \param sourceMask [IN] each bit stands for an event source and can separately be set.
|
---|
3413 | * Use the definitions of the sourcemask...
|
---|
3414 | * \return XLstatus general status information
|
---|
3415 | */
|
---|
3416 | DECL_STDXL_FUNC( xlMostSwitchEventSources, XLFP_MOSTSWITCHEVENTSOURCES,(DEFPARAMS, unsigned short sourceMask));
|
---|
3417 |
|
---|
3418 | /** \brief Activates or deactivates the bypass of the OS8104.
|
---|
3419 | * This method is used to switch the Bypass OS8104 (register TODO:) on and off \n
|
---|
3420 | * ResponseEvent: XL_MOST_ALLBYPASS
|
---|
3421 | * \param bypassMode [IN] bypass open/close
|
---|
3422 | * \return XLstatus general status information
|
---|
3423 | */
|
---|
3424 | DECL_STDXL_FUNC( xlMostSetAllBypass, XLFP_MOSTSETALLBYPASS, (DEFPARAMS, unsigned char bypassMode));
|
---|
3425 |
|
---|
3426 | /** \brief Reads out the bypass mode of the OS8104.
|
---|
3427 | * This method is asynchronous and requests the event used to switch the Bypass OS8104.
|
---|
3428 | * ResponseEvent: XL_MOST_ALLBYPASS
|
---|
3429 | * \return XLstatus general status information
|
---|
3430 | */
|
---|
3431 | DECL_STDXL_FUNC( xlMostGetAllBypass, XLFP_MOSTGETALLBYPASS, (DEFPARAMS));
|
---|
3432 |
|
---|
3433 | /** \brief Switches the OS8104 into slave or master mode.
|
---|
3434 | * This method is used to switch the OS8104 into the timing master or slave mode\n
|
---|
3435 | * ResponseEvent: XL_MOST_TIMINGMODE
|
---|
3436 | * \param timingMode [IN] MOST master/slave
|
---|
3437 | * \return XLstatus general status information
|
---|
3438 | */
|
---|
3439 | DECL_STDXL_FUNC( xlMostSetTimingMode, XLFP_MOSTSETTIMINGMODE, (DEFPARAMS, unsigned char timingMode));
|
---|
3440 |
|
---|
3441 | /** \brief Triggers the event XL_MOST_TIMINGMODE.
|
---|
3442 | * This method is used to trigger the event XL_MOST_TIMINGMODE, which will deliver
|
---|
3443 | * information whether the OS8104 is configured in slave or master mode.\n
|
---|
3444 | * ResponseEvent: XL_MOST_TIMINGMODE
|
---|
3445 | * \return XLstatus general status information
|
---|
3446 | */
|
---|
3447 | DECL_STDXL_FUNC( xlMostGetTimingMode, XLFP_MOSTGETTIMINGMODE, (DEFPARAMS));
|
---|
3448 |
|
---|
3449 | /** \brief Selects the MOST frequency either to 44.1 kHz or 48 kHz.
|
---|
3450 | * This method is used to select either 44.1 kHz or 48 kHz as
|
---|
3451 | * bus clock when the OS8104 of VN2600 acts as timing master \n
|
---|
3452 | * ResponseEvent: XL_MOST_FREQUENCY
|
---|
3453 | * \param frequency [IN] 44,1kHz, 48kHz
|
---|
3454 | * \return XLstatus general status information
|
---|
3455 | */
|
---|
3456 | DECL_STDXL_FUNC( xlMostSetFrequency, XLFP_MOSTSETFREQUENCY, (DEFPARAMS, unsigned short frequency));
|
---|
3457 |
|
---|
3458 | /** \brief Triggers the event XL_MOST_FREQUENCY.
|
---|
3459 | * This method is used to trigger the event XL_MOST_FREQUENCY, which will deliver
|
---|
3460 | * information whether the OS8104 of VN2600 as timing master
|
---|
3461 | * generates 44.1 kHz or 48 kHz as bus clock.\n
|
---|
3462 | * ResponseEvent: XL_MOST_FREQUENCY
|
---|
3463 | * \return XLstatus general status information
|
---|
3464 | */
|
---|
3465 | DECL_STDXL_FUNC( xlMostGetFrequency, XLFP_MOSTGETFREQUENCY, (DEFPARAMS));
|
---|
3466 |
|
---|
3467 | /** \brief Allows to write up to 16 byte register in the OS8104.
|
---|
3468 | * This method is used to write numbyte (up to 16) bytes into the registers of the OS8104
|
---|
3469 | * beginning from adr. \n
|
---|
3470 | * ResponseEvent: XL_MOST_REGISTER_BYTES
|
---|
3471 | * \param adr [IN] address (MAP) of register to which the first byte is written
|
---|
3472 | * \param numBytes [IN] number of successive bytes to be written to the registers
|
---|
3473 | * \param data [IN] bytes to be written
|
---|
3474 | * \return XLstatus general status information
|
---|
3475 | */
|
---|
3476 | DECL_STDXL_FUNC( xlMostWriteRegister, XLFP_MOSTWRITEREGISTER, (DEFPARAMS, unsigned short adr, unsigned char numBytes, unsigned char data[16]));
|
---|
3477 |
|
---|
3478 | /** \brief Triggers the event XL_MOST_REGISTER_BYTES.
|
---|
3479 | * This method is used to read out registers of the OS8104.
|
---|
3480 | * The results will be delivered in the event XL_MOST_REGISTER_BYTES\n
|
---|
3481 | * ResponseEvent: XL_MOST_REGISTER_BYTES
|
---|
3482 | * \param adr [IN] address (MAP) of register from which the first byte is read
|
---|
3483 | * \param numBytes [IN] number of successive bytes to be read
|
---|
3484 | * \return XLstatus general status information
|
---|
3485 | */
|
---|
3486 | DECL_STDXL_FUNC( xlMostReadRegister, XLFP_MOSTREADREGISTER, (DEFPARAMS, unsigned short adr, unsigned char numBytes));
|
---|
3487 |
|
---|
3488 | /** \brief Allows to write single or multiple bits of one byte register in the OS8104.
|
---|
3489 | * This method is used to write bits into a register of the OS8104 \n
|
---|
3490 | * ResponseEvent: XL_MOST_REGISTER_BYTES
|
---|
3491 | * \param adr [IN] address (MAP) of the register
|
---|
3492 | * \param mask [IN] each bit in mask corresponds to a bit in the register.
|
---|
3493 | * 1 means this bit will be written, 0 means that the bit is not influenced
|
---|
3494 | * \param value [IN] the byte to be written respecting the parameter mask
|
---|
3495 | * \return XLstatus general status information
|
---|
3496 | */
|
---|
3497 | DECL_STDXL_FUNC( xlMostWriteRegisterBit, XLFP_MOSTWRITEREGISTERBIT, (DEFPARAMS, unsigned short adr, unsigned char mask, unsigned char value));
|
---|
3498 |
|
---|
3499 | /** \brief Sending a MOST Ctrl Message.
|
---|
3500 | * This method is used to send a ctrl message to the MOST ring.
|
---|
3501 | * The members ctrlType, targetAdr, ctrlData[17], TODO: prio of pCtrlMsg will be used,
|
---|
3502 | * all other members don't care for the transmit request.
|
---|
3503 | * A XL_MOST_CTRL_MSG event will be delivered with dir==Tx and txStatus set to
|
---|
3504 | * report success or failure of the transmission.\n
|
---|
3505 | * ResponseEvent: XL_MOST_CTRL_MSG
|
---|
3506 | * \param pCtrlMsg [IN] structure with all relevant data needed for a transmit request
|
---|
3507 | * \return XLstatus general status information
|
---|
3508 | */
|
---|
3509 | DECL_STDXL_FUNC( xlMostCtrlTransmit, XLFP_MOSTCTRLTRANSMIT, (DEFPARAMS, XLmostCtrlMsg* pCtrlMsg));
|
---|
3510 |
|
---|
3511 | /** \brief Sending a MOST Async Message (Packet).
|
---|
3512 | * This method is used to send an asynchronous message (packet) to the MOST ring.
|
---|
3513 | * The members arbitration, targetAdr, asyncData[1014], length, TODO: prio of pAsyncMsg will be used,
|
---|
3514 | * all other members don't care for the transmit request.
|
---|
3515 | * TODO: arbitration has to be calculated by the sender or will be calculated by the driver/firmware?
|
---|
3516 | * A XL_MOST_ASYNC_MSG event will be delivered with dir==Tx and txStatus set to
|
---|
3517 | * report success or failure of the transmission.\n
|
---|
3518 | * ResponseEvent: XL_MOST_ASYNC_MSG
|
---|
3519 | * \param pAsyncMsg [IN] structure with all relevant data needed for a transmit request
|
---|
3520 | * \return XLstatus general status information
|
---|
3521 | */
|
---|
3522 | DECL_STDXL_FUNC( xlMostAsyncTransmit, XLFP_MOSTASYNCTRANSMIT, (DEFPARAMS, XLmostAsyncMsg* pAsyncMsg));
|
---|
3523 |
|
---|
3524 | /** \brief Triggers the event XL_MOST_SYNC_ALLOCTABLE.
|
---|
3525 | * This method is used to trigger the event XL_MOST_SYNC_ALLOCTABLE,
|
---|
3526 | * which delivers the complete allocation table of the OS8104.\n
|
---|
3527 | * ResponseEvent: XL_MOST_SYNC_ALLOCTABLE
|
---|
3528 | * \return XLstatus general status information
|
---|
3529 | */
|
---|
3530 | DECL_STDXL_FUNC( xlMostSyncGetAllocTable, XLFP_MOSTSYNCGETALLOCTABLE, (DEFPARAMS));
|
---|
3531 |
|
---|
3532 | /** \brief Programming the routing egine (RE) for audio channels.
|
---|
3533 | * This method is used to program the routing engine (RE) of the OS8104 in order
|
---|
3534 | * to either stream audio data from the line in of VN2600 to certain MOST channels allocated before,
|
---|
3535 | * or to stream audio data from certain MOST channels to the headphone output of VN2600. \n
|
---|
3536 | * ResponseEvent: XL_MOST_CTRL_SYNC_AUDIO
|
---|
3537 | * \param channel[4] [IN] channel numbers to be routed
|
---|
3538 | * \param device [IN] device, e.g.: audio line in/audio line out
|
---|
3539 | * \param mode [IN] audio mode
|
---|
3540 | * \return XLstatus general status information
|
---|
3541 | */
|
---|
3542 | DECL_STDXL_FUNC( xlMostCtrlSyncAudio, XLFP_MOSTCTRLSYNCAUDIO, (DEFPARAMS, unsigned int channel[4], unsigned int device, unsigned int mode));
|
---|
3543 |
|
---|
3544 | /** \brief Programming the routing egine (RE) for audio channels.
|
---|
3545 | * This method is used to program the routing engine (RE) of the OS8104 in order
|
---|
3546 | * to either stream audio data from the line in of VN2600 to certain MOST channels allocated before,
|
---|
3547 | * or to stream audio data from certain MOST channels to the headphone output of VN2600. \n
|
---|
3548 | * ResponseEvent: XL_MOST_CTRL_SYNC_AUDIO_EX
|
---|
3549 | * \param channel[16] [IN] channel numbers to be routed (including SPDIF)
|
---|
3550 | * \param device [IN] device, e.g.: audio line in/audio line out, SPDIF in/out
|
---|
3551 | * \param mode [IN] audio mode
|
---|
3552 | * \return XLstatus general status information
|
---|
3553 | */
|
---|
3554 | DECL_STDXL_FUNC( xlMostCtrlSyncAudioEx, XLFP_MOSTCTRLSYNCAUDIOEX, (DEFPARAMS, unsigned int channel[16], unsigned int device, unsigned int mode));
|
---|
3555 |
|
---|
3556 | /** \brief Setting the volume/attenuation for line in and line out.
|
---|
3557 | * This method is used to set the volume/attenuation of the line in or line out of VN2600.\n
|
---|
3558 | * ResponseEvent: XL_MOST_SYNC_VOLUME_STATUS
|
---|
3559 | * \param device [IN] device, e.g.: audio line in/audio line out
|
---|
3560 | * \param volume [IN] 0..255: 0..100% of volume
|
---|
3561 | * \return XLstatus general status information
|
---|
3562 | */
|
---|
3563 | DECL_STDXL_FUNC( xlMostSyncVolume, XLFP_MOSTSYNCVOLUME, (DEFPARAMS, unsigned int device, unsigned char volume));
|
---|
3564 |
|
---|
3565 | /** \brief Setting mute for line in and line out.
|
---|
3566 | * This method is used to switch mute on or off for the line in or line out of VN2600.\n
|
---|
3567 | * ResponseEvent: XL_MOST_SYNC_VOLUME_STATUS
|
---|
3568 | * \param device [IN] device, e.g.: audio line in/audio line out
|
---|
3569 | * \param mute [IN] mute on/mute off
|
---|
3570 | * \return XLstatus general status information
|
---|
3571 | */
|
---|
3572 | DECL_STDXL_FUNC( xlMostSyncMute, XLFP_MOSTSYNCMUTE, (DEFPARAMS, unsigned int device, unsigned char mute));
|
---|
3573 |
|
---|
3574 | /** \brief Triggers the event XL_MOST_SYNC_VOLUME_STATUS.
|
---|
3575 | * This method is used to trigger the event XL_MOST_SYNC_VOLUME_STATUS,
|
---|
3576 | * which delivers the information about volume status of line in and line out.\n
|
---|
3577 | * ResponseEvent: XL_MOST_SYNC_VOLUME_STATUS
|
---|
3578 | * \param device [IN] device, e.g.: audio line in/audio line out
|
---|
3579 | * \return XLstatus general status information
|
---|
3580 | */
|
---|
3581 | DECL_STDXL_FUNC( xlMostSyncGetVolumeStatus,XLFP_MOSTSYNCGETVOLUMESTATUS,(DEFPARAMS, unsigned int device));
|
---|
3582 |
|
---|
3583 | /** \brief Triggers the event XL_MOST_SYNC_MUTE_STATUS.
|
---|
3584 | * This method is used to trigger the event XL_MOST_SYNC_MUTE_STATUS,
|
---|
3585 | * which delivers the information about mute status of line in and line out.\n
|
---|
3586 | * ResponseEvent: XL_MOST_SYNC_MUTE_STATUS
|
---|
3587 | * \param device [IN] device, e.g.: audio line in/audio line out
|
---|
3588 | * \return XLstatus general status information
|
---|
3589 | */
|
---|
3590 | DECL_STDXL_FUNC( xlMostSyncGetMuteStatus, XLFP_MOSTSYNCGETMUTESTATUS,(DEFPARAMS, unsigned int device));
|
---|
3591 |
|
---|
3592 | /** \brief Triggers the event XL_MOST_SYNC_MUTE_STATUS.
|
---|
3593 | * This method delivers the recent light status at the Rx Pin of the OS8104.\n
|
---|
3594 | * ResponseEvent: XL_MOST_SYNC_MUTE_STATUS
|
---|
3595 | * \param device [IN] device, e.g.: audio line in/audio line out
|
---|
3596 | * \return XLstatus general status information
|
---|
3597 | */
|
---|
3598 | DECL_STDXL_FUNC( xlMostGetRxLight, XLFP_MOSTGETRXLIGHT, (DEFPARAMS));
|
---|
3599 |
|
---|
3600 | /** \brief Switching the Tx light of VN2600.
|
---|
3601 | * This method is used to switch the Tx light of VN2600 off, to normal or to constant on\n
|
---|
3602 | * ResponseEvent: XL_MOST_TXLIGHT
|
---|
3603 | * \param txLight [IN] tx light on, off or modulated
|
---|
3604 | * \return XLstatus general status information
|
---|
3605 | */
|
---|
3606 | DECL_STDXL_FUNC( xlMostSetTxLight, XLFP_MOSTSETTXLIGHT, (DEFPARAMS, unsigned char txLight));
|
---|
3607 |
|
---|
3608 | /** \brief Triggers the event XL_MOST_TXLIGHT.
|
---|
3609 | * This method is used to trigger the event XL_MOST_TXLIGHT,
|
---|
3610 | * which delivers the recent light status at the Tx Pin of the OS8104.\n
|
---|
3611 | * ResponseEvent: XL_MOST_TXLIGHT
|
---|
3612 | * \return XLstatus general status information
|
---|
3613 | */
|
---|
3614 | DECL_STDXL_FUNC( xlMostGetTxLight, XLFP_MOSTGETTXLIGHT, (DEFPARAMS));
|
---|
3615 |
|
---|
3616 | /** \brief Switching the Tx light power of the FOT.
|
---|
3617 | * This method is used to switch the Tx light power of the FOT to normal or -3 dB\n
|
---|
3618 | * ResponseEvent: XL_MOST_TXLIGHT
|
---|
3619 | * \param attenuation [IN] tx power
|
---|
3620 | * \return XLstatus general status information
|
---|
3621 | */
|
---|
3622 | DECL_STDXL_FUNC( xlMostSetLightPower, XLFP_MOSTSETLIGHTPOWER, (DEFPARAMS, unsigned char attenuation));
|
---|
3623 |
|
---|
3624 | // TODO: GetLightPower??
|
---|
3625 |
|
---|
3626 | /** \brief Triggers the event XL_MOST_LOCKSTATUS.
|
---|
3627 | * This method is used to trigger the event XL_MOST_LOCKSTATUS,
|
---|
3628 | * which delivers the recent lock status at the Rx Pin of the OS8104.\n
|
---|
3629 | * ResponseEvent: XL_MOST_LOCKSTATUS
|
---|
3630 | * \return XLstatus general status information
|
---|
3631 | */
|
---|
3632 | DECL_STDXL_FUNC( xlMostGetLockStatus, XLFP_MOSTGETLOCKSTATUS, (DEFPARAMS));
|
---|
3633 |
|
---|
3634 | /** \brief Starts and stops the light error generator.
|
---|
3635 | * This method is used to start (repeat>0) or stop (repeat==0) the light error generator
|
---|
3636 | * which switches the Tx light on and off or configured periods.\n
|
---|
3637 | * ResponseEvent: XL_MOST_GENLIGHTERROR
|
---|
3638 | * \param lightOffTime [IN] duration of light off in ms
|
---|
3639 | * \param lightOnTime [IN] duration of modulated light on in ms
|
---|
3640 | * \param repeat [IN] repetition of light on light off sequence, or repeat==0: stop the generation
|
---|
3641 | * \return XLstatus general status information
|
---|
3642 | */
|
---|
3643 | DECL_STDXL_FUNC( xlMostGenerateLightError, XLFP_MOSTGENERATELIGHTERROR,(DEFPARAMS, unsigned long lightOffTime, unsigned long lightOnTime, unsigned short repeat));
|
---|
3644 |
|
---|
3645 | /** \brief Starts and stops the lock error generator.
|
---|
3646 | * This method is used to start (repeat>0) or stop (repeat==0) the lock error generator
|
---|
3647 | * which switches the Tx light between modulated on and permanent on for configured periods.\n
|
---|
3648 | * ResponseEvent: XL_MOST_GENLOCKERROR
|
---|
3649 | * \param unmodTime [IN] duration of light off in ms
|
---|
3650 | * \param modTime [IN] duration of modulated light on in ms
|
---|
3651 | * \param repeat [IN] repetition of sequence, or repeat==0: stop the generation
|
---|
3652 | * \return XLstatus general status information
|
---|
3653 | */
|
---|
3654 | DECL_STDXL_FUNC( xlMostGenerateLockError, XLFP_MOSTGENERATELOCKERROR, (DEFPARAMS, unsigned long unmodTime, unsigned long modTime, unsigned short repeat));
|
---|
3655 |
|
---|
3656 | /** \brief prevent firmware from emptying the Rx buffer of the OS8104
|
---|
3657 | * This method is used to Switch the stress mode on or off, where the
|
---|
3658 | * Rx buffer of the OS8104 is not emptied by the firmware
|
---|
3659 | * which switches the Tx light between modulated on and permanent on for configured periods.\n
|
---|
3660 | * ResponseEvent: XL_MOST_CTRL_RXBUFFER
|
---|
3661 | * \param bufferMode [IN] specifies the buffer mode
|
---|
3662 | * \return XLstatus general status information
|
---|
3663 | */
|
---|
3664 | DECL_STDXL_FUNC( xlMostCtrlRxBuffer, XLFP_MOSTCTRLRXBUFFER, (DEFPARAMS, unsigned short bufferMode));
|
---|
3665 |
|
---|
3666 | /** \brief Twinkle the power led from the VN2600.
|
---|
3667 | * ResponseEvent: none
|
---|
3668 | * \return XLstatus general status information
|
---|
3669 | */
|
---|
3670 | DECL_STDXL_FUNC( xlMostTwinklePowerLed, XLFP_MOSTTWINKLEPOWERLED, (DEFPARAMS));
|
---|
3671 |
|
---|
3672 | /** \brief Prepares and configures busload generation with MOST control frames.
|
---|
3673 | * Attention: Has to be called before "xlMostCtrlGenerateBusload".
|
---|
3674 | * ResponseEvent: none
|
---|
3675 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3676 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3677 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
3678 | * if an event is received spontaneously
|
---|
3679 | * \param pCtrlBusloadConfiguration [IN] structure containg the ctrl msg used for busload generation and configuration,
|
---|
3680 | * it's storage has has to be supplied by the caller
|
---|
3681 | * \return XLstatus general status information
|
---|
3682 | */
|
---|
3683 | DECL_STDXL_FUNC (xlMostCtrlConfigureBusload, XLFP_MOSTCTRLCONFIGUREBUSLOAD, (DEFPARAMS,
|
---|
3684 | XLmostCtrlBusloadConfiguration* pCtrlBusloadConfiguration));
|
---|
3685 |
|
---|
3686 | /** \brief Starts busload generation with MOST control frames.
|
---|
3687 | * Attention: "xlMostCtrlConfigureBusload" has to be called before.
|
---|
3688 | * ResponseEvent: XL_MOST_CTRL_BUSLOAD
|
---|
3689 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3690 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3691 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
3692 | * if an event is received spontaneously
|
---|
3693 | * \param numberCtrlFrames [IN] number of busload ctrl messages (0xFFFFFFFF indicates infinite number of msgs)
|
---|
3694 | * \return XLstatus general status information
|
---|
3695 | */
|
---|
3696 | DECL_STDXL_FUNC (xlMostCtrlGenerateBusload, XLFP_MOSTCTRLGENERATEBUSLOAD, (DEFPARAMS, unsigned long numberCtrlFrames));
|
---|
3697 |
|
---|
3698 | /** \brief Prepares and configures busload generation of MOST asynchronous frames.
|
---|
3699 | * Attention: Has to be called before "xlMostAsyncGenerateBusload".
|
---|
3700 | * ResponseEvent: none
|
---|
3701 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3702 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3703 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
3704 | * if an event is received spontaneously
|
---|
3705 | * \param pAsyncBusloadConfiguration [IN] structure containg the async msg used for busload generation and configuration,
|
---|
3706 | * it's storage has has to be supplied by the caller
|
---|
3707 | * \return XLstatus general status information
|
---|
3708 | */
|
---|
3709 | DECL_STDXL_FUNC (xlMostAsyncConfigureBusload, XLFP_MOSTASYNCCONFIGUREBUSLOAD, (DEFPARAMS,
|
---|
3710 | XLmostAsyncBusloadConfiguration* pAsyncBusloadConfiguration));
|
---|
3711 |
|
---|
3712 | /** \brief Starts busload generation with MOST asynchronous frames.
|
---|
3713 | * Attention: "xlMostAsyncConfigureBusload" has to be called before.
|
---|
3714 | * ResponseEvent: XL_MOST_ASYNC_BUSLOAD
|
---|
3715 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3716 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3717 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
3718 | * if an event is received spontaneously
|
---|
3719 | * \param numberAsyncFrames [IN] number of busload async messages (0xFFFFFFFF indicates infinite number of msgs)
|
---|
3720 | * \return XLstatus general status information
|
---|
3721 | */
|
---|
3722 | DECL_STDXL_FUNC (xlMostAsyncGenerateBusload, XLFP_MOSTASYNCGENERATEBUSLOAD, (DEFPARAMS, unsigned long numberAsyncFrames));
|
---|
3723 |
|
---|
3724 |
|
---|
3725 | /** \brief Opens a stream (Rx / Tx) for routing synchronous data to or from the MOST bus (synchronous channel).
|
---|
3726 | * Attention: Has to be called before "xlMostStreamBufferAllocate".
|
---|
3727 | * ResponseEvent: none
|
---|
3728 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3729 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3730 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
3731 | * if an event is received spontaneously
|
---|
3732 | * \param pStreamOpen [IN] structure containg the stream parameters -
|
---|
3733 | * it's storage has has to be supplied by the caller
|
---|
3734 | * \return XLstatus general status information
|
---|
3735 | */
|
---|
3736 | DECL_STDXL_FUNC (xlMostStreamOpen, XLFP_MOSTSTREAMOPEN, (DEFPARAMS, XLmostStreamOpen* pStreamOpen));
|
---|
3737 |
|
---|
3738 |
|
---|
3739 | /** \brief Closes an opened a stream (Rx / Tx) used for routing synchronous data to or from the MOST bus (synchronous channel).
|
---|
3740 | * ResponseEvent: none
|
---|
3741 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3742 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3743 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
3744 | * if an event is received spontaneously
|
---|
3745 | * \param streamHandle [IN] stream handle returned by xlMostStreamOpen
|
---|
3746 | * \return XLstatus general status information
|
---|
3747 | */
|
---|
3748 | DECL_STDXL_FUNC (xlMostStreamClose, XLFP_MOSTSTREAMCLOSE, (DEFPARAMS, unsigned int streamHandle));
|
---|
3749 |
|
---|
3750 |
|
---|
3751 | /** \brief Starts the streaming (Rx / Tx) of synchronous data to or from the MOST bus (synchronous channel).
|
---|
3752 | * Attention: Has to be called after "xlMostStreamOpen and xlMostStreamBufferAllocate" were called.
|
---|
3753 | * ResponseEvent: none
|
---|
3754 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3755 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3756 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
3757 | * if an event is received spontaneously
|
---|
3758 | * \param streamHandle [IN] stream handle returned by xlMostStreamOpen
|
---|
3759 | * \param syncChannels [IN] synchronous channels (bytes) used for streaming.
|
---|
3760 | * \return XLstatus general status information
|
---|
3761 | */
|
---|
3762 | DECL_STDXL_FUNC (xlMostStreamStart, XLFP_MOSTSTREAMSTART, (DEFPARAMS, unsigned int streamHandle, unsigned char syncChannels[60]));
|
---|
3763 |
|
---|
3764 |
|
---|
3765 | /** \brief Stops the streaming (Rx / Tx) of synchronous data to or from the MOST bus (synchronous channel).
|
---|
3766 | * Attention: Has to be called before "xlMostStreamBufferDeallocate".
|
---|
3767 | * ResponseEvent: none
|
---|
3768 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3769 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3770 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
3771 | * if an event is received spontaneously
|
---|
3772 | * \param streamHandle [IN] stream handle returned by xlMostStreamOpen
|
---|
3773 | * \return XLstatus general status information
|
---|
3774 | */
|
---|
3775 | DECL_STDXL_FUNC (xlMostStreamStop, XLFP_MOSTSTREAMSTOP, (DEFPARAMS, unsigned int streamHandle));
|
---|
3776 |
|
---|
3777 |
|
---|
3778 | /** \brief Allocates a buffer for streaming (RX / Tx) of synchronous data to or from the MOST bus (synchronous channel).
|
---|
3779 | * Attention: Has to be called before "xlMostStreamStart".
|
---|
3780 | * ResponseEvent: none
|
---|
3781 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3782 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3783 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
3784 | * if an event is received spontaneously
|
---|
3785 | * \param streamHandle [IN] stream handle returned by xlMostStreamOpen
|
---|
3786 | * \param ppBuffer [OUT] pointer to the buffer used for streaming
|
---|
3787 | * memory allocation is done by the driver
|
---|
3788 | * has to be realeased by calling xlMostStreamBufferDeallocate
|
---|
3789 | * \param pBufferSize [OUT] buffer size.
|
---|
3790 | * \return XLstatus general status information
|
---|
3791 | */
|
---|
3792 | DECL_STDXL_FUNC (xlMostStreamBufferAllocate, XLFP_MOSTSTREAMBUFFERALLOCATE, (DEFPARAMS, unsigned int streamHandle, unsigned char** ppBuffer, unsigned int* pBufferSize));
|
---|
3793 |
|
---|
3794 |
|
---|
3795 | /** \brief Deallocates any buffer allocated with "xlMostStreamBufferAllocate".
|
---|
3796 | * Attention: Has to be called before "xlMostStreamClose". Afterwards no buffer must be accessed!
|
---|
3797 | * ResponseEvent: none
|
---|
3798 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3799 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3800 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
3801 | * if an event is received spontaneously
|
---|
3802 | * \param streamHandle [IN] stream handle returned by xlMostStreamOpen
|
---|
3803 | * \return XLstatus general status information
|
---|
3804 | */
|
---|
3805 | DECL_STDXL_FUNC (xlMostStreamBufferDeallocateAll, XLFP_MOSTSTREAMBUFFERDEALLOCATEALL, (DEFPARAMS, unsigned int streamHandle));
|
---|
3806 |
|
---|
3807 |
|
---|
3808 | /** \brief Notifies the driver the next buffer to be used for streaming synchronous data to or from the MOST bus (synchronous channel).
|
---|
3809 | * ResponseEvent: none
|
---|
3810 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3811 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3812 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
3813 | * if an event is received spontaneously
|
---|
3814 | * \param streamHandle [IN] stream handle returned by xlMostStreamOpen
|
---|
3815 | * \param pBuffer [IN] pointer to the next buffer used for streaming
|
---|
3816 | * \param filledBytes [IN] size of the next buffer to be used for streaming
|
---|
3817 | * \return XLstatus general status information
|
---|
3818 | */
|
---|
3819 | DECL_STDXL_FUNC (xlMostStreamBufferSetNext, XLFP_MOSTSTREAMBUFFERSETNEXT, (DEFPARAMS, unsigned int streamHandle, unsigned char* pBuffer, unsigned int filledBytes));
|
---|
3820 |
|
---|
3821 |
|
---|
3822 | /** \brief Retrieves the stream information.
|
---|
3823 | * This method is used to gather the recent stream state information.\n
|
---|
3824 | * ResponseEvent: None
|
---|
3825 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3826 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3827 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
3828 | * if an event is received spontaneously
|
---|
3829 | * \param pStreamInfo [OUT] Pointer to the stream information.
|
---|
3830 | * \return XLstatus general status information
|
---|
3831 | */
|
---|
3832 | DECL_STDXL_FUNC (xlMostStreamGetInfo, XLFP_MOSTSTREAMGETINFO, (DEFPARAMS, XLmostStreamInfo* pStreamInfo));
|
---|
3833 |
|
---|
3834 |
|
---|
3835 | /** \brief Clears the content of the buffer(s) which are not already sent.
|
---|
3836 | * This method is used to clear the content of any TX streaming buffer which has not been sent yet.\n
|
---|
3837 | * ResponseEvent: None
|
---|
3838 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3839 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3840 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
3841 | * if an event is received spontaneously
|
---|
3842 | * \param streamHandle [IN] stream handle returned by xlMostStreamOpen.
|
---|
3843 | * \return XLstatus general status information
|
---|
3844 | */
|
---|
3845 | DECL_STDXL_FUNC (xlMostStreamBufferClearAll, XLFP_MOSTSTREAMBUFFERCLEARALL, (DEFPARAMS, unsigned int streamHandle));
|
---|
3846 |
|
---|
3847 |
|
---|
3848 | ////////////////////////////////////////////////////////////////////////////////
|
---|
3849 | // FlexRay Function Declarations
|
---|
3850 | ////////////////////////////////////////////////////////////////////////////////
|
---|
3851 |
|
---|
3852 | /** \brief Setup the FlexRay node
|
---|
3853 | * ResponseEvent:
|
---|
3854 | * \param portHandle [IN] handle specifying the port to be configured
|
---|
3855 | * \param accessMask [IN] mask specifying the port's channel
|
---|
3856 | * \param pxlClusterConfig [IN] structure to the cluster config structure
|
---|
3857 | * \return XLstatus general status information
|
---|
3858 | */
|
---|
3859 |
|
---|
3860 | DECL_STDXL_FUNC (xlFrSetConfiguration, XLFP_FRSETCONFIGURATION, (DEFFRPARAM, XLfrClusterConfig *pxlClusterConfig));
|
---|
3861 |
|
---|
3862 | /** \brief Get configuration of a FlexRay channel
|
---|
3863 | * ResponseEvent:
|
---|
3864 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3865 | * \param accessMask [IN] mask specifying the port's channel from where to get the information
|
---|
3866 | * \param XLfrChannelConfig [OUT] pointer to the FlexRay channel configuration structure
|
---|
3867 | * \return XLstatus general status information
|
---|
3868 | */
|
---|
3869 |
|
---|
3870 | DECL_STDXL_FUNC (xlFrGetChannelConfiguration, XLFP_FRGETCHANNELCONFIGURATION, (DEFFRPARAM, XLfrChannelConfig* pxlFrChannelConfig));
|
---|
3871 |
|
---|
3872 | /** \brief Setup the FlexRay mode
|
---|
3873 | * ResponseEvent:
|
---|
3874 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3875 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3876 | * \param pxlFrMode [IN] structure to the FlexRay mode structure (e.g.: normal-, monitor-, clusterScan mode).
|
---|
3877 | * \return XLstatus general status information
|
---|
3878 | */
|
---|
3879 |
|
---|
3880 | DECL_STDXL_FUNC (xlFrSetMode, XLFP_FRSETMODE, (DEFFRPARAM, XLfrMode *pxlFrMode));
|
---|
3881 |
|
---|
3882 | /** \brief Initialize the cold start and define the sync event
|
---|
3883 | * ResponseEvent:
|
---|
3884 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3885 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3886 | * \param pEventBuffer [IN] pointer to the startup and sync frame
|
---|
3887 | * \return XLstatus general status information
|
---|
3888 | */
|
---|
3889 |
|
---|
3890 | DECL_STDXL_FUNC (xlFrInitStartupAndSync, XLFP_FRINITSTARTUPANDSYNC, (DEFFRPARAM, XLfrEvent *pEventBuffer));
|
---|
3891 |
|
---|
3892 | /** \brief setup the symbol window.
|
---|
3893 | * ResponseEvent:
|
---|
3894 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3895 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3896 | * \param frChannel [IN] FlexRay channel, like A,B, both...
|
---|
3897 | * \param symbolWindowMask [IN] symbol window mask like MTS.
|
---|
3898 | * \return XLstatus general status information
|
---|
3899 | */
|
---|
3900 |
|
---|
3901 | DECL_STDXL_FUNC (xlFrSetupSymbolWindow, XLFP_FRSETUPSYMBOLWINDOW, (DEFFRPARAM, unsigned int frChannel,
|
---|
3902 | unsigned int symbolWindowMask));
|
---|
3903 |
|
---|
3904 | /** \brief Reads the FlexRay events
|
---|
3905 | * ResponseEvent:
|
---|
3906 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3907 | * \param pEventBuffer [OUT] pointer to the FlexRay RX event
|
---|
3908 | * \return XLstatus general status information
|
---|
3909 | */
|
---|
3910 |
|
---|
3911 | DECL_STDXL_FUNC (xlFrReceive, XLFP_FRRECEIVE, (XLportHandle portHandle, XLfrEvent *pEventBuffer));
|
---|
3912 |
|
---|
3913 | /** \brief Transmit a FlexRay event
|
---|
3914 | * ResponseEvent:
|
---|
3915 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3916 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3917 | * \param pEventBuffer [IN] pointer to the FlexRay TX event
|
---|
3918 | * \return XLstatus general status information
|
---|
3919 | */
|
---|
3920 |
|
---|
3921 | DECL_STDXL_FUNC (xlFrTransmit, XLFP_FRTRANSMIT, (DEFFRPARAM, XLfrEvent *pEventBuffer));
|
---|
3922 |
|
---|
3923 | /** \brief
|
---|
3924 | * ResponseEvent:
|
---|
3925 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3926 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3927 | * \param frChannel [IN] FlexRay channel. e.g. CHANNEL_A...
|
---|
3928 | * \param mode [IN] transceiver mode. e.g. sleep
|
---|
3929 | * \return XLstatus general status information
|
---|
3930 | */
|
---|
3931 |
|
---|
3932 | DECL_STDXL_FUNC (xlFrSetTransceiverMode, XLFP_FRSETTRANSCEIVERMODE, (DEFFRPARAM, unsigned int frChannel, unsigned int mode));
|
---|
3933 |
|
---|
3934 | /** \brief
|
---|
3935 | * ResponseEvent:
|
---|
3936 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3937 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3938 | * \param symbolWindow [IN] defines the symbol window (e.g. MTS).
|
---|
3939 | * \return XLstatus general status information
|
---|
3940 | */
|
---|
3941 |
|
---|
3942 | DECL_STDXL_FUNC (xlFrSendSymbolWindow, XLFP_FRSENDSYMBOLWINDOW, (DEFFRPARAM, unsigned int symbolWindow));
|
---|
3943 |
|
---|
3944 | /** \brief
|
---|
3945 | * ResponseEvent:
|
---|
3946 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
3947 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
3948 | * \param mode [IN] specifies the spy mode: XL_FR_SPY_MODE_***
|
---|
3949 | * \return XLstatus general status information
|
---|
3950 | */
|
---|
3951 |
|
---|
3952 | DECL_STDXL_FUNC (xlFrActivateSpy, XLFP_FRACTIVATESPY, (DEFFRPARAM, unsigned int mode));
|
---|
3953 |
|
---|
3954 |
|
---|
3955 | /** \brief The application gets the information, which remote channels are available in the system. The user
|
---|
3956 | * must provide the memory (pointer to XLdriverConfig structure).
|
---|
3957 | * \param pDriverConfig [OUT] The remote driver configuration structure.
|
---|
3958 | * \return XLstatus general status information
|
---|
3959 | */
|
---|
3960 |
|
---|
3961 |
|
---|
3962 | DECL_STDXL_FUNC( xlGetRemoteDriverConfig, XLGETREMOTEDRIVERCONFIG, (XLdriverConfig *pDriverConfig));
|
---|
3963 |
|
---|
3964 | ////////////////////////////////////////////////////////////////////////////////
|
---|
3965 | // MOST150 Function Declarations
|
---|
3966 | ////////////////////////////////////////////////////////////////////////////////
|
---|
3967 |
|
---|
3968 | // apiname, apitype, parameters in paranthesis
|
---|
3969 |
|
---|
3970 | /**
|
---|
3971 | * Common principles:
|
---|
3972 | * If not mentioned otherwise, all APIs are asynchronous and will trigger an action in VN2640.
|
---|
3973 | * Results are delivered in events which can be fetched by xlMost150Receive.
|
---|
3974 | *
|
---|
3975 | * Common Parameters: DEFPARAMS
|
---|
3976 | * XLportHandle portHandle: was previously fetched by xlOpenPort API.
|
---|
3977 | * XLaccess accessMask: determines on which channels an API should work.
|
---|
3978 | * XLuserHandle userHandle: used to match the response of the driver to the requests of the application
|
---|
3979 | * if an event is received spontaneously, e.g. MPR changed then the userHandle == 0
|
---|
3980 | * Common Return Value:
|
---|
3981 | * XLstatus: common return value of most APIs which indicates whether a command was
|
---|
3982 | * successfully launched or e.g. whether a command queue overflow happend
|
---|
3983 | */
|
---|
3984 |
|
---|
3985 | /** \brief fetching events from driver queue.
|
---|
3986 | * This method is used to fetch events, either bus events or acknowledgements
|
---|
3987 | * for commands from the driver queue. Each call delivers only one event (if an event is available). \n
|
---|
3988 | * It is a synchronous mode and either delivers event data immediately, or
|
---|
3989 | * indicates an error condition with its return value.
|
---|
3990 | * \param XLportHandle portHandle: [IN] was previously fetched by xlOpenPort API
|
---|
3991 | * \param XLaccess accessMask: [IN] determines on which channels an API should work
|
---|
3992 | * \param pEventBuffer [IN] This parameter must point to a buffer to which the driver can copy
|
---|
3993 | * the next event of the receive queue
|
---|
3994 | * \return XLstatus general status information
|
---|
3995 | */
|
---|
3996 | DECL_STDXL_FUNC( xlMost150Receive, XLFP_MOST150RECEIVE, (XLportHandle portHandle, XLmost150event* pEventBuffer));
|
---|
3997 |
|
---|
3998 | /** \brief Twinkle the power led from the VN2640.
|
---|
3999 | * ResponseEvent: none
|
---|
4000 | * \return XLstatus general status information
|
---|
4001 | */
|
---|
4002 | DECL_STDXL_FUNC( xlMost150TwinklePowerLed, XLFP_MOST150TWINKLEPOWERLED, (DEFPARAMS));
|
---|
4003 |
|
---|
4004 | /** \brief Activates or deactivates the different event sources of VN2640.
|
---|
4005 | * This method is used to select which bus events should be delivered by VN2640.
|
---|
4006 | * ResponseEvent: XL_MOST150_EVENT_SOURCE
|
---|
4007 | * \param sourceMask [IN] each bit stands for an event source and can separately be set.
|
---|
4008 | * Use the definitions of the sourcemask (see XL_MOST150_SOURCE_...).
|
---|
4009 | * \return XLstatus general status information
|
---|
4010 | */
|
---|
4011 | DECL_STDXL_FUNC( xlMost150SwitchEventSources, XLFP_MOST150SWITCHEVENTSOURCES,(DEFPARAMS, unsigned int sourceMask));
|
---|
4012 |
|
---|
4013 |
|
---|
4014 | /** \brief Sets the device mode.
|
---|
4015 | * This method is used to switch the device mode to either Master, Slave or bypass \n
|
---|
4016 | * ResponseEvent: XL_MOST150_DEVICE_MODE
|
---|
4017 | * \param deviceMode [IN] device mode (see XL_MOST150_DEVICEMODE_...)
|
---|
4018 | * \return XLstatus general status information
|
---|
4019 | */
|
---|
4020 | DECL_STDXL_FUNC( xlMost150SetDeviceMode, XLFP_MOST150SETDEVICEMODE, (DEFPARAMS, unsigned int deviceMode));
|
---|
4021 |
|
---|
4022 | /** \brief Requests the current device mode.
|
---|
4023 | * This method is asynchronous and requests the event used to switch device mode.
|
---|
4024 | * ResponseEvent: XL_MOST150_DEVICE_MODE
|
---|
4025 | * \return XLstatus general status information
|
---|
4026 | */
|
---|
4027 | DECL_STDXL_FUNC( xlMost150GetDeviceMode, XLFP_MOST150GETDEVICEMODE, (DEFPARAMS));
|
---|
4028 |
|
---|
4029 | /** \brief Switches the SPDIF mode to slave or master mode.
|
---|
4030 | * This method is used to switch into the SPDIF master or SPDIF slave mode \n
|
---|
4031 | * ResponseEvent: XL_MOST150_SPDIFMODE
|
---|
4032 | * \param spdifMode [IN] MOST master/slave, ...
|
---|
4033 | * \return XLstatus general status information
|
---|
4034 | */
|
---|
4035 | DECL_STDXL_FUNC( xlMost150SetSPDIFMode, XLFP_MOST150SETSPDIFMODE, (DEFPARAMS, unsigned int spdifMode));
|
---|
4036 |
|
---|
4037 | /** \brief Requests the current SPDIF mode.
|
---|
4038 | * This method is used to trigger the event XL_MOST150_SPDIFMODE, which will deliver
|
---|
4039 | * information whether the SPDIF is configured in slave or master mode.\n
|
---|
4040 | * ResponseEvent: XL_MOST150_SPDIFMODE
|
---|
4041 | * \return XLstatus general status information
|
---|
4042 | */
|
---|
4043 | DECL_STDXL_FUNC( xlMost150GetSPDIFMode, XLFP_MOST150GETSPDIFMODE, (DEFPARAMS));
|
---|
4044 |
|
---|
4045 |
|
---|
4046 | /** \brief Set one or more parameters of the special node info at once.
|
---|
4047 | * ResponseEvent: XL_MOST150_SPECIAL_NODE_INFO
|
---|
4048 | * \param pSpecialNodeInfo [IN] contains the parameter to set
|
---|
4049 | * \return XLstatus general status information
|
---|
4050 | */
|
---|
4051 | DECL_STDXL_FUNC( xlMost150SetSpecialNodeInfo, XLFP_MOST150SETSPECIALNODEINFO, (DEFPARAMS, XLmost150SetSpecialNodeInfo *pSpecialNodeInfo));
|
---|
4052 |
|
---|
4053 | /** \brief Requests one or more parameters of the special node info at once.
|
---|
4054 | * ResponseEvent: XL_MOST150_SPECIAL_NODE_INFO
|
---|
4055 | * \param requestMask [IN] contains a mask of parameter to get (see XL_MOST150_SPECIAL_NODE_MASK_CHANGED)
|
---|
4056 | * \return XLstatus general status information
|
---|
4057 | */
|
---|
4058 | DECL_STDXL_FUNC( xlMost150GetSpecialNodeInfo, XLFP_MOST150GETSPECIALNODEINFO, (DEFPARAMS, unsigned int requestMask));
|
---|
4059 |
|
---|
4060 | /** \brief Set the frequency of the MOST150 ring.
|
---|
4061 | * ResponseEvent: XL_MOST150_FREQUENCY
|
---|
4062 | * \param frequency [IN] contains the frequency to be set. Only as timing master! (see XL_MOST150_FREQUENCY_...)
|
---|
4063 | * \return XLstatus general status information
|
---|
4064 | */
|
---|
4065 | DECL_STDXL_FUNC( xlMost150SetFrequency, XLFP_MOST150SETFREQUENCY, (DEFPARAMS, unsigned int frequency));
|
---|
4066 |
|
---|
4067 | /** \brief Requests the frequency of the MOST150 ring.
|
---|
4068 | * ResponseEvent: XL_MOST150_FREQUENCY
|
---|
4069 | * \return XLstatus general status information
|
---|
4070 | */
|
---|
4071 | DECL_STDXL_FUNC( xlMost150GetFrequency, XLFP_MOST150GETFREQUENCY, (DEFPARAMS));
|
---|
4072 |
|
---|
4073 | /** \brief Transmit a control message on the MOST150 ring.
|
---|
4074 | * ResponseEvent: XL_MOST150_CTRL_TX
|
---|
4075 | * \param pCtrlTxMsg [IN] pointer to structure that contains the control message to be sent
|
---|
4076 | * \return XLstatus general status information
|
---|
4077 | */
|
---|
4078 | DECL_STDXL_FUNC( xlMost150CtrlTransmit, XLFP_MOST150CTRLTRANSMIT, (DEFPARAMS, XLmost150CtrlTxMsg *pCtrlTxMsg));
|
---|
4079 |
|
---|
4080 | /** \brief Transmit a data packet (MDP) on the MOST150 ring.
|
---|
4081 | * ResponseEvent: XL_MOST150_ASYNC_TX
|
---|
4082 | * \param pAsyncTxMsg [IN] pointer to structure that contains the MOST Data Packet (MDP) to be sent
|
---|
4083 | * \return XLstatus general status information
|
---|
4084 | */
|
---|
4085 | DECL_STDXL_FUNC( xlMost150AsyncTransmit, XLFP_MOST150ASYNCTRANSMIT, (DEFPARAMS, XLmost150AsyncTxMsg *pAsyncTxMsg));
|
---|
4086 |
|
---|
4087 | /** \brief Transmit a ethernet packet (MEP) on the MOST150 ring.
|
---|
4088 | * ResponseEvent: XL_MOST150_ETHERNET_TX
|
---|
4089 | * \param pEthernetTxMsg [IN] pointer to structure that contains the MOST Ethernet Packet (MEP) to be sent
|
---|
4090 | * \return XLstatus general status information
|
---|
4091 | */
|
---|
4092 | DECL_STDXL_FUNC( xlMost150EthernetTransmit, XLFP_MOST150ETHTRANSMIT, (DEFPARAMS, XLmost150EthernetTxMsg *pEthernetTxMsg));
|
---|
4093 |
|
---|
4094 | /** \brief Requests the state of the system lock flag.
|
---|
4095 | * ResponseEvent: XL_MOST150_SYSTEMLOCK_FLAG
|
---|
4096 | * \return XLstatus general status information
|
---|
4097 | */
|
---|
4098 | DECL_STDXL_FUNC( xlMost150GetSystemLockFlag, XLFP_MOST150GETSYSTEMLOCK, (DEFPARAMS));
|
---|
4099 |
|
---|
4100 | /** \brief Requests the state of the shutdown flag.
|
---|
4101 | * ResponseEvent: XL_MOST150_SHUTDOWN_FLAG
|
---|
4102 | * \return XLstatus general status information
|
---|
4103 | */
|
---|
4104 | DECL_STDXL_FUNC( xlMost150GetShutdownFlag, XLFP_MOST150GETSHUTDOWN, (DEFPARAMS));
|
---|
4105 |
|
---|
4106 | /** \brief Shutdown the MOST150 ring.
|
---|
4107 | * ResponseEvent:
|
---|
4108 | * \return XLstatus general status information
|
---|
4109 | */
|
---|
4110 | DECL_STDXL_FUNC( xlMost150Shutdown, XLFP_MOST150SHUTDOWN, (DEFPARAMS));
|
---|
4111 |
|
---|
4112 | /** \brief Startup the MOST150 ring.
|
---|
4113 | * ResponseEvent:
|
---|
4114 | * \return XLstatus general status information
|
---|
4115 | */
|
---|
4116 | DECL_STDXL_FUNC( xlMost150Startup, XLFP_MOST150STARTUP, (DEFPARAMS));
|
---|
4117 |
|
---|
4118 | /** \brief Requests the current allocation information.
|
---|
4119 | * \n
|
---|
4120 | * ResponseEvent: XL_MOST150_SYNC_ALLOC_INFO
|
---|
4121 | * \return XLstatus general status information
|
---|
4122 | */
|
---|
4123 | DECL_STDXL_FUNC( xlMost150SyncGetAllocTable, XLFP_MOST150GETALLOCTABLE, (DEFPARAMS));
|
---|
4124 |
|
---|
4125 | /** \brief Set the parameters for audio functions.
|
---|
4126 | * ResponseEvent: XL_MOST150_CTRL_SYNC_AUDIO
|
---|
4127 | * \param pSyncAudioParameter [IN] pointer to structure that contains the data
|
---|
4128 | * \return XLstatus general status information
|
---|
4129 | */
|
---|
4130 | DECL_STDXL_FUNC( xlMost150CtrlSyncAudio, XLFP_MOST150CTRLSYNCAUDIO, (DEFPARAMS, XLmost150SyncAudioParameter *pSyncAudioParameter));
|
---|
4131 |
|
---|
4132 | /** \brief Set the volume of Line In/Out audio device.
|
---|
4133 | * ResponseEvent: XL_MOST150_SYNC_VOLUME_STATUS
|
---|
4134 | * \param device [IN] specifies the device (see XL_MOST150_DEVICE_LINE_IN, ...)
|
---|
4135 | * \param volume [IN] specifies the volume
|
---|
4136 | * \return XLstatus general status information
|
---|
4137 | */
|
---|
4138 | DECL_STDXL_FUNC( xlMost150SyncSetVolume, XLFP_MOST150SYNCSETVOLUME, (DEFPARAMS, unsigned int device, unsigned int volume));
|
---|
4139 |
|
---|
4140 | /** \brief Requests the volume of Line In/Out audio device.
|
---|
4141 | * \n
|
---|
4142 | * ResponseEvent: XL_MOST150_SYNC_VOLUME_STATUS
|
---|
4143 | * \param device [IN] specifies the device (see XL_MOST150_DEVICE_LINE_IN, ...)
|
---|
4144 | * \return XLstatus general status information
|
---|
4145 | */
|
---|
4146 | DECL_STDXL_FUNC( xlMost150SyncGetVolume, XLFP_MOST150SYNCGETVOLUME, (DEFPARAMS, unsigned int device));
|
---|
4147 |
|
---|
4148 | /** \brief Set mute state of Line In/Out or S/PDIF In/Out audio device.
|
---|
4149 | * ResponseEvent: XL_MOST150_SYNC_MUTE_STATUS
|
---|
4150 | * \param device [IN] specifies the device (see XL_MOST150_DEVICE_...)
|
---|
4151 | * \param mute [IN] specifies the mute status (on / off)
|
---|
4152 | * \return XLstatus general status information
|
---|
4153 | */
|
---|
4154 | DECL_STDXL_FUNC( xlMost150SyncSetMute, XLFP_MOST150SYNCSETMUTE, (DEFPARAMS, unsigned int device, unsigned int mute));
|
---|
4155 |
|
---|
4156 | /** \brief Requests mute state of Line In/Out or S/PDIF In/Out audio device.
|
---|
4157 | * ResponseEvent: XL_MOST150_SYNC_MUTE_STATUS
|
---|
4158 | * \param device [IN] specifies the device (see XL_MOST150_DEVICE_LINE_IN, ...)
|
---|
4159 | * \return XLstatus general status information
|
---|
4160 | */
|
---|
4161 | DECL_STDXL_FUNC( xlMost150SyncGetMute, XLFP_MOST150SYNCGETMUTE, (DEFPARAMS, unsigned int device));
|
---|
4162 |
|
---|
4163 | /** \brief Requests the FOR and lock status either from the spy or from INIC.
|
---|
4164 | * ResponseEvent: XL_MOST150_RXLIGHT_LOCKSTATUS
|
---|
4165 | * \param fromSpy [IN] defines the source, to get the light & lock status from
|
---|
4166 | * \return XLstatus general status information
|
---|
4167 | */
|
---|
4168 | DECL_STDXL_FUNC( xlMost150GetRxLightLockStatus, XLFP_MOST150GETLIGHTLOCKSTATUS, (DEFPARAMS, unsigned int fromSpy));
|
---|
4169 |
|
---|
4170 | /** \brief Set the FOT output mode.
|
---|
4171 | * \n
|
---|
4172 | * ResponseEvent: XL_MOST150_TX_LIGHT
|
---|
4173 | * \param txLight [IN] mode of the output (modulated (on) or off)
|
---|
4174 | * \return XLstatus general status information
|
---|
4175 | */
|
---|
4176 | DECL_STDXL_FUNC( xlMost150SetTxLight, XLFP_MOST150SETTXLIGHT, (DEFPARAMS, unsigned int txLight));
|
---|
4177 |
|
---|
4178 | /** \brief Requests the FOT output mode.
|
---|
4179 | * ResponseEvent: XL_MOST150_TX_LIGHT
|
---|
4180 | * \return XLstatus general status information
|
---|
4181 | */
|
---|
4182 | DECL_STDXL_FUNC( xlMost150GetTxLight, XLFP_MOST150GETTXLIGHT, (DEFPARAMS));
|
---|
4183 |
|
---|
4184 | /** \brief Set the FOT output power.
|
---|
4185 | * \n
|
---|
4186 | * ResponseEvent: XL_MOST150_LIGHT_POWER
|
---|
4187 | * \param attenuation [IN] tx light power (no attenuation / -3dB attenuation)
|
---|
4188 | * \return XLstatus general status information
|
---|
4189 | */
|
---|
4190 | DECL_STDXL_FUNC( xlMost150SetTxLightPower, XLFP_MOST150SETTXLIGHTPOWER, (DEFPARAMS, unsigned int attenuation));
|
---|
4191 |
|
---|
4192 | /** \brief Controls the light error generation.
|
---|
4193 | * \n
|
---|
4194 | * ResponseEvent: XL_MOST150_GEN_LIGHT_ERROR
|
---|
4195 | * \param lightOffTime [IN] duration of light off in [ms]
|
---|
4196 | * \param lightOnTime [IN] duration of light on in [ms]
|
---|
4197 | * \param repeat [IN] number of error intervals
|
---|
4198 | * \return XLstatus general status information
|
---|
4199 | */
|
---|
4200 | DECL_STDXL_FUNC( xlMost150GenerateLightError, XLFP_MOST150GENLIGHTERROR, (DEFPARAMS, unsigned int lightOffTime, unsigned int lightOnTime, unsigned int repeat));
|
---|
4201 |
|
---|
4202 | /** \brief Control the lock error generation.
|
---|
4203 | * \n
|
---|
4204 | * ResponseEvent: XL_MOST150_GEN_LOCK_ERROR
|
---|
4205 | * \param unlockTime [IN] duration of unlock in [ms]
|
---|
4206 | * \param lockTime [IN] duration of lock in [ms]
|
---|
4207 | * \param repeat [IN] number of error intervals
|
---|
4208 | * \return XLstatus general status information
|
---|
4209 | */
|
---|
4210 | DECL_STDXL_FUNC( xlMost150GenerateLockError, XLFP_MOST150GENLOCKERROR, (DEFPARAMS, unsigned int unlockTime, unsigned int lockTime, unsigned int repeat));
|
---|
4211 |
|
---|
4212 | /** \brief Configures the receive buffer for control messages and packets of the INIC.
|
---|
4213 | * \n
|
---|
4214 | * ResponseEvent: XL_MOST150_CONFIGURE_RX_BUFFER
|
---|
4215 | * \param bufferType [IN] Bitmask for receive buffer type (control messages and/or packets (MDP/MEP)).
|
---|
4216 | * \param bufferMode [IN] Block or un-block receive buffer
|
---|
4217 | * \return XLstatus general status information
|
---|
4218 | */
|
---|
4219 | DECL_STDXL_FUNC( xlMost150ConfigureRxBuffer, XLFP_MOST150CONFIGURERXBUFFER, (DEFPARAMS, unsigned int bufferType, unsigned int bufferMode));
|
---|
4220 |
|
---|
4221 | /** \brief Defines the control message which should be transmitted with xlMost150CtrlGenerateBusload().
|
---|
4222 | * ResponseEvent:
|
---|
4223 | * \param pCtrlBusLoad [IN] pointer to structure that contains the control message
|
---|
4224 | * \return XLstatus general status information
|
---|
4225 | */
|
---|
4226 | DECL_STDXL_FUNC( xlMost150CtrlConfigureBusload, XLFP_MOST150CTRLCONFIGLOAD, (DEFPARAMS, XLmost150CtrlBusloadConfig *pCtrlBusLoad));
|
---|
4227 |
|
---|
4228 | /** \brief Starts or stops the control message busload by sending the control message defined with xlMost150CtrlConfigureBusload().
|
---|
4229 | * ResponseEvent: XL_MOST150_CTRL_BUSLOAD
|
---|
4230 | * \param numberCtrlFrames [IN] number of control messages to be sent
|
---|
4231 | * 0: stop sending
|
---|
4232 | * < 0xFFFFFFFF: number of messages to be sent
|
---|
4233 | * 0xFFFFFFFF: send continuously
|
---|
4234 | * \return XLstatus general status information
|
---|
4235 | */
|
---|
4236 | DECL_STDXL_FUNC( xlMost150CtrlGenerateBusload, XLFP_MOST150CTRLGENLOAD, (DEFPARAMS, unsigned long numberCtrlFrames));
|
---|
4237 |
|
---|
4238 | /** \brief Define the data or ethernet packet that should be transmitted with xlMost150AsyncGenerateBusload().
|
---|
4239 | * ResponseEvent:
|
---|
4240 | * \param pAsyncBusLoad [IN] pointer to structure that contains either the data or the ethernet packet
|
---|
4241 | * \return XLstatus general status information
|
---|
4242 | */
|
---|
4243 | DECL_STDXL_FUNC( xlMost150AsyncConfigureBusload, XLFP_MOST150ASYNCCONFIGLOAD, (DEFPARAMS, XLmost150AsyncBusloadConfig *pAsyncBusLoad));
|
---|
4244 |
|
---|
4245 | /** \brief Starts or stops the packet busload by sending either the data or ethernet packet defined with xlMost150AsyncConfigureBusload().
|
---|
4246 | * ResponseEvent: XL_MOST150_ASYNC_BUSLOAD
|
---|
4247 | * \param numberAsyncPackets [IN] number of data or ethernet packets to be sent
|
---|
4248 | * 0: stop sending
|
---|
4249 | * < 0xFFFFFFFF: number of packets to be sent
|
---|
4250 | * 0xFFFFFFFF: send continuously
|
---|
4251 | * \return XLstatus general status information
|
---|
4252 | */
|
---|
4253 | DECL_STDXL_FUNC( xlMost150AsyncGenerateBusload, XLFP_MOST150ASYNCGENLOAD, (DEFPARAMS, unsigned long numberAsyncPackets));
|
---|
4254 |
|
---|
4255 |
|
---|
4256 | /** \brief Set the ECL state.
|
---|
4257 | * ResponseEvent: XL_MOST150_ECL_LINE_CHANGED
|
---|
4258 | * \param eclLineState [IN] ecl state to be set: XL_MOST150_ECL_LINE_LOW, XL_MOST150_ECL_LINE_HIGH
|
---|
4259 | * \return XLstatus general status information
|
---|
4260 | */
|
---|
4261 | DECL_STDXL_FUNC( xlMost150SetECLLine, XLFP_MOST150SETECLLINE, (DEFPARAMS, unsigned int eclLineState));
|
---|
4262 |
|
---|
4263 |
|
---|
4264 | /** \brief Set the ECL termination resistor state.
|
---|
4265 | * ResponseEvent: XL_MOST150_ECL_TERMINATION_CHANGED
|
---|
4266 | * \param eclLineTermination [IN] ecl line termination resistor state to be set:
|
---|
4267 | * XL_MOST150_ECL_LINE_PULL_UP_NOT_ACTIVE, XL_MOST150_ECL_LINE_PULL_UP_ACTIVE
|
---|
4268 | * \return XLstatus general status information
|
---|
4269 | */
|
---|
4270 | DECL_STDXL_FUNC( xlMost150SetECLTermination, XLFP_MOST150SETECLTERMINATION, (DEFPARAMS, unsigned int eclLineTermination));
|
---|
4271 |
|
---|
4272 | /** \brief Requests the current ECL state and settings.
|
---|
4273 | * This method is asynchronous and requests the event used to get the ECL line state, termination and glitch filter setting.
|
---|
4274 | * ResponseEvent: XL_MOST150_ECL_LINE_CHANGED, XL_MOST150_ECL_TERMINATION_CHANGED, XL_MOST150_ECL_GLITCH_FILTER
|
---|
4275 | * \return XLstatus general status information
|
---|
4276 | */
|
---|
4277 | DECL_STDXL_FUNC( xlMost150GetECLInfo, XLFP_MOST150GETECLINFO, (DEFPARAMS));
|
---|
4278 |
|
---|
4279 | /** \brief Opens a stream (Rx / Tx) for routing synchronous data to or from the MOST bus (synchronous channel).
|
---|
4280 | * ResponseEvent: XL_MOST150_STREAM_STATE
|
---|
4281 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
4282 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
4283 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
4284 | * if an event is received spontaneously
|
---|
4285 | * \param pStreamOpen [IN] structure containg the stream parameters -
|
---|
4286 | * it's storage has has to be supplied by the caller
|
---|
4287 | * \return XLstatus general status information
|
---|
4288 | */
|
---|
4289 | DECL_STDXL_FUNC (xlMost150StreamOpen, XLFP_MOST150STREAMOPEN, (DEFPARAMS, XLmost150StreamOpen* pStreamOpen));
|
---|
4290 |
|
---|
4291 |
|
---|
4292 | /** \brief Closes an opened a stream (Rx / Tx) used for routing synchronous data to or from the MOST bus (synchronous channel).
|
---|
4293 | * ResponseEvent: XL_MOST150_STREAM_STATE
|
---|
4294 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
4295 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
4296 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
4297 | * if an event is received spontaneously
|
---|
4298 | * \param streamHandle [IN] stream handle returned by xlMostStreamOpen
|
---|
4299 | * \return XLstatus general status information
|
---|
4300 | */
|
---|
4301 | DECL_STDXL_FUNC (xlMost150StreamClose, XLFP_MOST150STREAMCLOSE, (DEFPARAMS, unsigned int streamHandle));
|
---|
4302 |
|
---|
4303 |
|
---|
4304 | /** \brief Starts the streaming (Rx / Tx) of synchronous data to or from the MOST bus (synchronous channel).
|
---|
4305 | * Attention: Has to be called after XL_MOST150_STREAM_STATE "Opened" was received.
|
---|
4306 | * ResponseEvent: XL_MOST150_STREAM_STATE
|
---|
4307 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
4308 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
4309 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
4310 | * if an event is received spontaneously
|
---|
4311 | * \param streamHandle [IN] stream handle returned by xlMostStreamOpen
|
---|
4312 | * \param numConnLabels [IN] Number of connection labels to stream (only used for Rx streaming, max. 8 labels can be streamed!)
|
---|
4313 | * \param pConnLabels [IN] connection label(s) (only used for Rx streaming)
|
---|
4314 | * \return XLstatus general status information
|
---|
4315 | */
|
---|
4316 | DECL_STDXL_FUNC (xlMost150StreamStart, XLFP_MOST150STREAMSTART, (DEFPARAMS, unsigned int streamHandle,
|
---|
4317 | unsigned int numConnLabels,
|
---|
4318 | unsigned int* pConnLabels));
|
---|
4319 |
|
---|
4320 |
|
---|
4321 | /** \brief Stops the streaming (Rx / Tx) of synchronous data to or from the MOST bus (synchronous channel).
|
---|
4322 | * Attention: Has to be called after XL_MOST150_STREAM_STATE "Started" was received.
|
---|
4323 | * ResponseEvent: XL_MOST150_STREAM_STATE
|
---|
4324 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
4325 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
4326 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
4327 | * if an event is received spontaneously
|
---|
4328 | * \param streamHandle [IN] stream handle returned by xlMostStreamOpen
|
---|
4329 | * \return XLstatus general status information
|
---|
4330 | */
|
---|
4331 | DECL_STDXL_FUNC (xlMost150StreamStop, XLFP_MOST150STREAMSTOP, (DEFPARAMS, unsigned int streamHandle));
|
---|
4332 |
|
---|
4333 | /** \brief Provides further streaming data to be sent to the MOST bus (synchronous channel).
|
---|
4334 | * ResponseEvent: XL_MOST150_STREAM_TX_BUFFER as soon as further data is required.
|
---|
4335 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
4336 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
4337 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
4338 | * if an event is received spontaneously
|
---|
4339 | * \param streamHandle [IN] stream handle returned by xlMostStreamOpen
|
---|
4340 | * \param pBuffer [IN] pointer to the buffer used for streaming
|
---|
4341 | * \param pNumberOfBytes [IN]/[OUT] number of bytes contained in the buffer to be used for streaming.
|
---|
4342 | * In case of not all bytes could be stored, this parameters contains the adjusted
|
---|
4343 | * number of bytes stored and the function returs an error (XL_ERR_QUEUE_IS_FULL).
|
---|
4344 | * \return XLstatus general status information
|
---|
4345 | */
|
---|
4346 | DECL_STDXL_FUNC (xlMost150StreamTransmitData, XLFP_MOST150STREAMTRANSMITDATA, (DEFPARAMS, unsigned int streamHandle, unsigned char* pBuffer, unsigned int* pNumberOfBytes));
|
---|
4347 |
|
---|
4348 | /** \brief Clears the content of the driver's Tx FIFO.
|
---|
4349 | * This method is used to clear the content of the driver's TX streaming FIFO which has not been sent yet.\n
|
---|
4350 | * ResponseEvent: None
|
---|
4351 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
4352 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
4353 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
4354 | * if an event is received spontaneously
|
---|
4355 | * \param streamHandle [IN] stream handle returned by xlMostStreamOpen.
|
---|
4356 | * \return XLstatus general status information
|
---|
4357 | */
|
---|
4358 | DECL_STDXL_FUNC (xlMost150StreamClearTxFifo, XLFP_MOST150STREAMCLEARTXFIFO, (DEFPARAMS, unsigned int streamHandle));
|
---|
4359 |
|
---|
4360 | /** \brief Retrieves the stream information.
|
---|
4361 | * This method is used to gather the recent stream state information.\n
|
---|
4362 | * ResponseEvent: None
|
---|
4363 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
4364 | * \param accessMask [IN] mask specifying the port's channel from where to get the device's state
|
---|
4365 | * \param userHandle [IN] used to match the response of the driver to the requests of the application
|
---|
4366 | * if an event is received spontaneously
|
---|
4367 | * \param pStreamInfo [OUT] Pointer to the stream information.
|
---|
4368 | * \return XLstatus general status information
|
---|
4369 | */
|
---|
4370 | DECL_STDXL_FUNC (xlMost150StreamGetInfo, XLFP_MOST150STREAMGETINFO, (DEFPARAMS, XLmost150StreamInfo* pStreamInfo));
|
---|
4371 |
|
---|
4372 | /** \brief Initializes the Rx Streaming FIFO.
|
---|
4373 | * This method is used to initialize the FIFO for storing the received streaming data.\n
|
---|
4374 | * ResponseEvent: None
|
---|
4375 | * \param portHandle [IN] handle to port from which the information is requested
|
---|
4376 | * \param accessMask [IN] mask specifying the port's channel
|
---|
4377 | * \return XLstatus general status information
|
---|
4378 | */
|
---|
4379 | DECL_STDXL_FUNC (xlMost150StreamInitRxFifo, XLFP_MOST150STREAMINITRXFIFO, (XLportHandle portHandle, XLaccess accessMask));
|
---|
4380 |
|
---|
4381 | /** \brief Fetches streaming data from the driver queue.
|
---|
4382 | * This method is used to fetch received streaming data. The application is triggered by
|
---|
4383 | * a XL_MOST150_STREAM_RX_BUFFER event to call this method.
|
---|
4384 | * It is a synchronous mode and either delivers streaming data immediately, or
|
---|
4385 | * indicates an error condition with its return value.
|
---|
4386 | * \param XLportHandle portHandle: [IN] was previously fetched by xlOpenPort API
|
---|
4387 | * \param XLaccess accessMask: [IN] determines on which channel an API should work
|
---|
4388 | * \param pBuffer [IN] Pointer to a buffer to which the driver can copy
|
---|
4389 | * the streaming data of the receive queue
|
---|
4390 | * \param pBufferSize [IN] Determines the maximum buffer size
|
---|
4391 | * [OUT] The number of actually copied data bytes
|
---|
4392 | * \return XLstatus general status information
|
---|
4393 | */
|
---|
4394 | DECL_STDXL_FUNC (xlMost150StreamReceiveData, XLFP_MOST150STREAMRECEIVEDATA, (XLportHandle portHandle, XLaccess accessMask,
|
---|
4395 | unsigned char* pBuffer, unsigned int* pBufferSize));
|
---|
4396 |
|
---|
4397 | /** \brief Controls the bypass stress generation.
|
---|
4398 | * \param XLportHandle portHandle: [IN] was previously fetched by xlOpenPort API
|
---|
4399 | * \param XLaccess accessMask: [IN] determines on which channel an API should work
|
---|
4400 | * \param XLuserHandle userHandle: [IN] used to match the response of the driver to the requests of the application
|
---|
4401 | * if an event is received spontaneously
|
---|
4402 | * \param bypassCloseTime [IN] duration of bypass close time in [ms] (minimum value: 10 ms)
|
---|
4403 | * \param bypassOpenTime [IN] duration of bypass open time in [ms] (minimum value: 10 ms)
|
---|
4404 | * \param repeat [IN] number of error intervals
|
---|
4405 | * \return XLstatus general status information
|
---|
4406 | */
|
---|
4407 | DECL_STDXL_FUNC (xlMost150GenerateBypassStress, XLFP_MOST150GENERATEBYPASSSTRESS, (DEFPARAMS, unsigned int bypassCloseTime,
|
---|
4408 | unsigned int bypassOpenTime, unsigned int repeat));
|
---|
4409 |
|
---|
4410 | /** \brief Configures a sequence for the ECL.
|
---|
4411 | * \param XLportHandle portHandle: [IN] was previously fetched by xlOpenPort API
|
---|
4412 | * \param XLaccess accessMask: [IN] determines on which channel an API should work
|
---|
4413 | * \param XLuserHandle userHandle: [IN] used to match the response of the driver to the requests of the application
|
---|
4414 | * if an event is received spontaneously
|
---|
4415 | * \param numStates [IN] Number of states during the sequence (max. XL_MOST150_ECL_SEQ_NUM_STATES_MAX)
|
---|
4416 | * \param pEclStates [IN] Pointer to a buffer containing the ECL sequence states (1: High, 0: Low)
|
---|
4417 | * \param pEclStatesDuration [IN] Pointer to a buffer containing the ECL sequence states duration in multiple of 100 µs (max. value XL_MOST150_ECL_SEQ_DURATION_MAX)
|
---|
4418 | * NOTE: Both buffers have to have at least the size <numStates> DWORDS!
|
---|
4419 | * \return XLstatus general status information
|
---|
4420 | */
|
---|
4421 | DECL_STDXL_FUNC (xlMost150EclConfigureSeq, XLFP_MOST150ECLCONFIGURESEQ, (DEFPARAMS, unsigned int numStates,
|
---|
4422 | unsigned int* pEclStates,
|
---|
4423 | unsigned int* pEclStatesDuration));
|
---|
4424 |
|
---|
4425 | /** \brief Starts or stops the previously configured ECL sequence.
|
---|
4426 | * \param XLportHandle portHandle: [IN] was previously fetched by xlOpenPort API
|
---|
4427 | * \param XLaccess accessMask: [IN] determines on which channel an API should work
|
---|
4428 | * \param XLuserHandle userHandle: [IN] used to match the response of the driver to the requests of the application
|
---|
4429 | * if an event is received spontaneously
|
---|
4430 | * \param start [IN] Starts (1) or stops (0) the configured ECL sequence
|
---|
4431 | * \return XLstatus general status information
|
---|
4432 | */
|
---|
4433 | DECL_STDXL_FUNC (xlMost150EclGenerateSeq, XLFP_MOST150ECLGENERATESEQ, (DEFPARAMS, unsigned int start));
|
---|
4434 |
|
---|
4435 | /** \brief Configures the glitch filter for detecting ECL state changes.
|
---|
4436 | * \param XLportHandle portHandle: [IN] was previously fetched by xlOpenPort API
|
---|
4437 | * \param XLaccess accessMask: [IN] determines on which channel an API should work
|
---|
4438 | * \param XLuserHandle userHandle: [IN] used to match the response of the driver to the requests of the application
|
---|
4439 | * if an event is received spontaneously
|
---|
4440 | * \param duration [IN] Duration (in µs) of glitches to be filtered. Value range: 50 µs .. 50 ms (Default: 1 ms)
|
---|
4441 | * \return XLstatus general status information
|
---|
4442 | */
|
---|
4443 | DECL_STDXL_FUNC (xlMost150SetECLGlitchFilter, XLFP_MOST150SETECLGLITCHFILTER, (DEFPARAMS, unsigned int duration));
|
---|
4444 |
|
---|
4445 |
|
---|
4446 |
|
---|
4447 | #if (__BORLANDC__ >= 0x0560)
|
---|
4448 | #pragma pack(pop)
|
---|
4449 | #else
|
---|
4450 | #include <poppack.h>
|
---|
4451 | #endif
|
---|
4452 |
|
---|
4453 | #ifdef __cplusplus
|
---|
4454 | }
|
---|
4455 | #endif // _cplusplus
|
---|
4456 |
|
---|
4457 | #endif // _V_XLAPI_H_
|
---|
4458 |
|
---|
4459 |
|
---|
4460 |
|
---|
4461 |
|
---|