CLProtocol 3.5.1
ClSerial.h
1//-----------------------------------------------------------------------------
2// (c) 2008 by Basler Vision Technologies
3// Section: Vision Components
4// Project: GenApi
5// Author: Fritz Dierks
6// $Header$
7//
8// License: This file is published under the license of the EMVA GenICam Standard Group.
9// A text file describing the legal terms is included in your installation as 'GenICam_license.pdf'.
10// If for some reason you are missing this file please contact the EMVA or visit the website
11// (http://www.genicam.org) for a full copy.
12//
13// THIS SOFTWARE IS PROVIDED BY THE EMVA GENICAM STANDARD GROUP "AS IS"
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE EMVA GENICAM STANDARD GROUP
17// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
21// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
23// POSSIBILITY OF SUCH DAMAGE.
24//-----------------------------------------------------------------------------
29#ifndef CLPROTOCOL_CLSERIAL_H
30#define CLPROTOCOL_CLSERIAL_H
31
32#include <CLProtocol/ClSerialTypes.h>
33
34//==============================================================================
35// Macros
36//==============================================================================
37
38#if (defined(__cplusplus) || defined(__cplusplus__))
39 #define USER_EXTERN_C extern "C"
40#else
41 #define USER_EXTERN_C
42#endif
43
44#ifdef CLSERIAL_EXPORTS
45 #if defined(_WIN32)
46 #define CLSERIALEXPORT USER_EXTERN_C __declspec(dllexport)
47 #else
48 #define CLSERIALEXPORT USER_EXTERN_C __attribute__((visibility("default")))
49 #endif
50#else
51 #if defined(_WIN32)
52 #define CLSERIALEXPORT USER_EXTERN_C __declspec(dllimport)
53 #else
54 #define CLSERIALEXPORT USER_EXTERN_C __attribute__((visibility("default")))
55 #endif
56#endif
57
58#ifndef CLSERIALCC
59 // Note that the CLAllSerial.dll uses __stdcall instead of __cdecl
60 #if defined(_WIN32)
61 #define CLSERIALCC __cdecl
62 #else
63 #if !defined(__x86_64) && !defined(__arm__) && !defined(__aarch64__) && !defined(VXWORKS)
64 #define CLSERIALCC __attribute__((cdecl))
65 #else
66 #define CLSERIALCC /* use default calling convention */
67 #endif
68 #endif
69#endif
70
71//==============================================================================
72// exported functions
73//==============================================================================
74
77
80
81
92CLSERIALEXPORT CLINT32 CLSERIALCC
93clGetManufacturerInfo(
94 CLINT8* ManufacturerName,
99 CLUINT32* bufferSize,
105 CLUINT32* version
107 );
108
118CLSERIALEXPORT CLINT32 CLSERIALCC
119clSerialInit(
120 CLUINT32 serialIndex,
124 hSerRef* serialRefPtr
125 );
126
140CLSERIALEXPORT CLINT32 CLSERIALCC
141clSerialRead(
142 hSerRef serialRef,
143 CLINT8* buffer,
147 CLUINT32* bufferSize,
148 CLUINT32 serialTimeOut
149 );
150
158CLSERIALEXPORT CLINT32 CLSERIALCC
159clSerialWrite(
160 hSerRef serialRef,
161 CLINT8* buffer,
162 CLUINT32* bufferSize,
166 CLUINT32 serialTimeOut
167 );
168
173CLSERIALEXPORT void CLSERIALCC
174clSerialClose(
175 hSerRef serialRef
176 );
177
178
188CLSERIALEXPORT CLINT32 CLSERIALCC
189clGetNumSerialPorts(
190 CLUINT32* numSerialPorts
191 );
192
193/*
194\brief This function returns a manufacturer-specific identifier for each serial port in your system.
195\return At completion, this function returns one of the following status codes:
196 CL_ERR_NO_ERR
197 CL_BUFFER_TOO_SMALL
198 CL_ERR_FUNCTION_NOT_FOUND
199 CL_ERR_INVALID_INDEX
200*/
201CLSERIALEXPORT CLINT32 CLSERIALCC
202clGetSerialPortIdentifier(
203 CLUINT32 serialIndex,
206 CLINT8* PortID,
210 CLUINT32 *bufferSize
211 );
216
224CLSERIALEXPORT CLINT32 CLSERIALCC
225clGetNumBytesAvail(
226 hSerRef serialRef,
227 CLUINT32 *numBytes
228 );
229
236CLSERIALEXPORT CLINT32 CLSERIALCC
237clFlushPort(
238 hSerRef serialRef
239 );
240
248CLSERIALEXPORT CLINT32 CLSERIALCC
249clGetSupportedBaudRates(
250 hSerRef serialRef,
252 CLUINT32 *baudRates
253 );
255
264CLSERIALEXPORT CLINT32 CLSERIALCC
265clSetBaudRate(
266 hSerRef serialRef,
267 CLUINT32 baudRate
268 );
270
284CLSERIALEXPORT CLINT32 CLSERIALCC
285clGetErrorText(
286 CLINT32 errorCode,
288 CLINT8* errorText,
290 CLUINT32* errorTextSize
291 );
295
296 // CLSerialInterface // PublicInterfaces
299
300
301//==============================================================================
302// helper functions
303//==============================================================================
304
305
306#endif // CLPROTOCOL_CLSERIAL_H
307