Open Core Interface - MLPI
MLPI-MotionLogicProgrammingInterface(mlpiCore)  1.26.2
mlpiIoHelper.h
Go to the documentation of this file.
1 #ifndef __MLPIIOHELPER_H__
2 #define __MLPIIOHELPER_H__
3 // -----------------------------------------------------------------------
4 // MLPI - <mlpiIoHelper.h>
5 // -----------------------------------------------------------------------
6 // Copyright (c) 2013 Bosch Rexroth. All rights reserved.
7 // Redistribution and use in source and binary forms of this MLPI software
8 // (SW) provided to you, with or without modification, are permitted
9 // without prior approval provided that the following conditions are met:
10 //
11 // 1. Redistributions of source code of SW must retain the above copyright
12 // notice, this list of conditions and the following disclaimer.
13 //
14 // 2. Redistributions in binary form of SW must reproduce the above copyright
15 // notice, this list of conditions and the following disclaimer in the
16 // documentation and/or other materials provided with the distribution.
17 //
18 // 3. User recognizes and acknowledges that it acquires no right,
19 // title or interest in or to any of the names or trademarks used in
20 // connection with the SW ("names") by virtue of this License and waives
21 // any right to or interest in the names. User recognizes and acknowledges
22 // that names of companies or names or products of companies displayed
23 // in the documentation of SW to indicate the interoperability of products
24 // with the SW are the names of their respective owners. The use of such
25 // names in the documentation of SW does not imply any sponsorship,
26 // approval, or endorsement by such companies of this product.
27 //
28 // 4. Modified code versions, i.e. any addition to or deletion from
29 // the substance or structure of the original code of the SW running
30 // the MLPI must be plainly marked as such and must not be misrepresented
31 // as being original SW.
32 //
33 // 5. The SW may only be used in connection with a Bosch Rexroth product.
34 //
35 // THIS INFORMATION IS PROVIDED BY BOSCH REXROTH CORPORATION "AS IS"
36 // AND WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING
37 // (BUT NOTLIMITED TO) ANY IMPLIED WARRANTIES OF MERCHANTABILITY,
38 // FITNESS FOR ANY PARTICULAR PURPOSE, OR NON-INFRINGEMENT. WHILE THE
39 // INFORMATION PROVIDED IS BELIEVED TO BE ACCURATE, IT MAY INCLUDE
40 // ERRORS OR INACCURACIES.
41 // SUBJECT TO COMPULSORY STATUTORY PROVISIONS OF THE GERMAN LAW AS
42 // THE APPLICABLE LAW FOR THIS LICENSE BOSCH REXROTH CORPORATION WILL
43 // NOT BE LIABLE FOR ANY DAMAGES OF ANY KIND ARISING FROM THE USE OF
44 // THE SOFTWARE DISTRIBUTED HEREUNDER, INCLUDING BUT NOT LIMITED TO
45 // DIRECT, INDIRECT, INCIDENTAL, PUNITIVE, AND CONSEQUENTIAL DAMAGES.
46 // -----------------------------------------------------------------------
47 //
57 //
58 // -----------------------------------------------------------------------
59 
60 
74 
75 
76 // -----------------------------------------------------------------------
77 // GLOBAL INCLUDES
78 // -----------------------------------------------------------------------
79 #include "mlpiGlobal.h"
80 #include "wchar16.h"
81 
82 #include "mlpiIoLib.h"
83 
84 // -----------------------------------------------------------------------
85 // GLOBAL TYPEDEFS
86 // -----------------------------------------------------------------------
87 
88 // -----------------------------------------------------------------------
89 // GLOBAL CONSTANTS
90 // -----------------------------------------------------------------------
91 
92 // -----------------------------------------------------------------------
93 // GLOBAL MACROS
94 // -----------------------------------------------------------------------
95 #define MLPI_IO_DIAGNOSIS_FLAGS_ACCESS(name, bit) bool name() const {return (_flags & (1<<bit)) ? true : false;}
96 
97 // -----------------------------------------------------------------------
98 // GLOBAL EXPORTS
99 // -----------------------------------------------------------------------
100 
137 typedef struct MlpiIoDiagnosisFlagDecoder
138 {
139 public:
140  MlpiIoDiagnosisFlagDecoder(const ULONG flags)
141  : _flags(flags) {
142  }
143 
144  operator ULONG() const {
145  return _flags;
146  }
147 
148  MLPI_IO_DIAGNOSIS_FLAGS_ACCESS(enable, 0);
149  MLPI_IO_DIAGNOSIS_FLAGS_ACCESS(driverAvailable, 4);
150  MLPI_IO_DIAGNOSIS_FLAGS_ACCESS(detected, 5);
151  MLPI_IO_DIAGNOSIS_FLAGS_ACCESS(configured, 6);
152  MLPI_IO_DIAGNOSIS_FLAGS_ACCESS(active, 7);
153  MLPI_IO_DIAGNOSIS_FLAGS_ACCESS(busError, 8);
154  MLPI_IO_DIAGNOSIS_FLAGS_ACCESS(error, 9);
155  MLPI_IO_DIAGNOSIS_FLAGS_ACCESS(diagnosis, 10);
156  MLPI_IO_DIAGNOSIS_FLAGS_ACCESS(passive, 11);
157 
158  bool _isOkay() const { return MLPI_IO_FIELDBUS_DIAGNOSIS_OKAY(_flags); }
159  bool _isNotOkay() const { return MLPI_IO_FIELDBUS_DIAGNOSIS_ERROR(_flags); }
160  bool _hasDiag() const { return MLPI_IO_FIELDBUS_DIAGNOSIS_DIAG(_flags); }
161 
162 private:
163  ULONG _flags;
165 
166 #ifdef __cplusplus
167 extern "C" {
168 #endif
169 
170 //
171 // "Read fieldbus I/O" wrapper of PLC data types within the IEC61131 environment 'IndraLogic'
172 //
173 
174 inline MLPIRESULT mlpiIoReadFieldbusIoBool(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG bitOffset, BOOL8 *data)
175  {return mlpiIoReadFieldbusIoBool8(connection, masterName, slaveAddress, area, bitOffset, data);}
176 
177 inline MLPIRESULT mlpiIoReadFieldbusIoSint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, CHAR *data)
178  {return mlpiIoReadFieldbusIoChar(connection, masterName, slaveAddress, area, byteOffset, data);}
179 inline MLPIRESULT mlpiIoReadFieldbusIoInt(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, SHORT *data)
180  {return mlpiIoReadFieldbusIoShort(connection, masterName, slaveAddress, area, byteOffset, data);}
181 inline MLPIRESULT mlpiIoReadFieldbusIoDint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, LONG *data)
182  {return mlpiIoReadFieldbusIoLong(connection, masterName, slaveAddress, area, byteOffset, data);}
183 inline MLPIRESULT mlpiIoReadFieldbusIoLint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, LLONG *data)
184  {return mlpiIoReadFieldbusIoLlong(connection, masterName, slaveAddress, area, byteOffset, data);}
185 
186 inline MLPIRESULT mlpiIoReadFieldbusIoUsint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, UCHAR *data)
187  {return mlpiIoReadFieldbusIoUchar(connection, masterName, slaveAddress, area, byteOffset, data);}
188 inline MLPIRESULT mlpiIoReadFieldbusIoUint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, USHORT *data)
189  {return mlpiIoReadFieldbusIoUshort(connection, masterName, slaveAddress, area, byteOffset, data);}
190 inline MLPIRESULT mlpiIoReadFieldbusIoUdint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, ULONG *data)
191  {return mlpiIoReadFieldbusIoUlong(connection, masterName, slaveAddress, area, byteOffset, data);}
192 inline MLPIRESULT mlpiIoReadFieldbusIoUlint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, ULLONG *data)
193  {return mlpiIoReadFieldbusIoUllong(connection, masterName, slaveAddress, area, byteOffset, data);}
194 
195 inline MLPIRESULT mlpiIoReadFieldbusIoByte(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, UCHAR *data)
196  {return mlpiIoReadFieldbusIoUchar(connection, masterName, slaveAddress, area, byteOffset, data);}
197 inline MLPIRESULT mlpiIoReadFieldbusIoWord(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, USHORT *data)
198  {return mlpiIoReadFieldbusIoUshort(connection, masterName, slaveAddress, area, byteOffset, data);}
199 inline MLPIRESULT mlpiIoReadFieldbusIoDword(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, ULONG *data)
200  {return mlpiIoReadFieldbusIoUlong(connection, masterName, slaveAddress, area, byteOffset, data);}
201 inline MLPIRESULT mlpiIoReadFieldbusIoLword(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, ULLONG *data)
202  {return mlpiIoReadFieldbusIoUllong(connection, masterName, slaveAddress, area, byteOffset, data);}
203 
204 inline MLPIRESULT mlpiIoReadFieldbusIoReal(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, FLOAT *data)
205  {return mlpiIoReadFieldbusIoFloat(connection, masterName, slaveAddress, area, byteOffset, data);}
206 inline MLPIRESULT mlpiIoReadFieldbusIoLreal(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, DOUBLE *data)
207  {return mlpiIoReadFieldbusIoDouble(connection, masterName, slaveAddress, area, byteOffset, data);}
208 
209 inline MLPIRESULT mlpiIoReadFieldbusIoArraySint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, CHAR *data, const ULONG numElements, ULONG *numElementsRet)
210  {return mlpiIoReadFieldbusIoArrayChar(connection, masterName, slaveAddress, area, byteOffset, data, numElements, numElementsRet);}
211 inline MLPIRESULT mlpiIoReadFieldbusIoArrayInt(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, SHORT *data, const ULONG numElements, ULONG *numElementsRet)
212  {return mlpiIoReadFieldbusIoArrayShort(connection, masterName, slaveAddress, area, byteOffset, data, numElements, numElementsRet);}
213 inline MLPIRESULT mlpiIoReadFieldbusIoArrayDint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, LONG *data, const ULONG numElements, ULONG *numElementsRet)
214  {return mlpiIoReadFieldbusIoArrayLong(connection, masterName, slaveAddress, area, byteOffset, data, numElements, numElementsRet);}
215 inline MLPIRESULT mlpiIoReadFieldbusIoArrayLint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, LLONG *data, const ULONG numElements, ULONG *numElementsRet)
216  {return mlpiIoReadFieldbusIoArrayLlong(connection, masterName, slaveAddress, area, byteOffset, data, numElements, numElementsRet);}
217 
218 inline MLPIRESULT mlpiIoReadFieldbusIoArrayUsint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, UCHAR *data, const ULONG numElements, ULONG *numElementsRet)
219  {return mlpiIoReadFieldbusIoArrayUchar(connection, masterName, slaveAddress, area, byteOffset, data, numElements, numElementsRet);}
220 inline MLPIRESULT mlpiIoReadFieldbusIoArrayUint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, USHORT *data, const ULONG numElements, ULONG *numElementsRet)
221  {return mlpiIoReadFieldbusIoArrayUshort(connection, masterName, slaveAddress, area, byteOffset, data, numElements, numElementsRet);}
222 inline MLPIRESULT mlpiIoReadFieldbusIoArrayUdint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, ULONG *data, const ULONG numElements, ULONG *numElementsRet)
223  {return mlpiIoReadFieldbusIoArrayUlong(connection, masterName, slaveAddress, area, byteOffset, data, numElements, numElementsRet);}
224 inline MLPIRESULT mlpiIoReadFieldbusIoArrayUlint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, ULLONG *data, const ULONG numElements, ULONG *numElementsRet)
225  {return mlpiIoReadFieldbusIoArrayUllong(connection, masterName, slaveAddress, area, byteOffset, data, numElements, numElementsRet);}
226 
227 inline MLPIRESULT mlpiIoReadFieldbusIoArrayByte(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, UCHAR *data, const ULONG numElements, ULONG *numElementsRet)
228  {return mlpiIoReadFieldbusIoArrayUchar(connection, masterName, slaveAddress, area, byteOffset, data, numElements, numElementsRet);}
229 inline MLPIRESULT mlpiIoReadFieldbusIoArrayWord(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, USHORT *data, const ULONG numElements, ULONG *numElementsRet)
230  {return mlpiIoReadFieldbusIoArrayUshort(connection, masterName, slaveAddress, area, byteOffset, data, numElements, numElementsRet);}
231 inline MLPIRESULT mlpiIoReadFieldbusIoArrayDword(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, ULONG *data, const ULONG numElements, ULONG *numElementsRet)
232  {return mlpiIoReadFieldbusIoArrayUlong(connection, masterName, slaveAddress, area, byteOffset, data, numElements, numElementsRet);}
233 inline MLPIRESULT mlpiIoReadFieldbusIoArrayLword(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, ULLONG *data, const ULONG numElements, ULONG *numElementsRet)
234  {return mlpiIoReadFieldbusIoArrayUllong(connection, masterName, slaveAddress, area, byteOffset, data, numElements, numElementsRet);}
235 
236 inline MLPIRESULT mlpiIoReadFieldbusIoArrayReal(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, FLOAT *data, const ULONG numElements, ULONG *numElementsRet)
237  {return mlpiIoReadFieldbusIoArrayFloat(connection, masterName, slaveAddress, area, byteOffset, data, numElements, numElementsRet);}
238 inline MLPIRESULT mlpiIoReadFieldbusIoArrayLreal(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, DOUBLE *data, const ULONG numElements, ULONG *numElementsRet)
239  {return mlpiIoReadFieldbusIoArrayDouble(connection, masterName, slaveAddress, area, byteOffset, data, numElements, numElementsRet);}
240 
241 //
242 // "Write fieldbus I/O" wrapper of PLC data types within the IEC61131 environment 'IndraLogic'
243 //
244 
245 inline MLPIRESULT mlpiIoWriteFieldbusIoBool(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG bitOffset, const BOOL8 data)
246  {return mlpiIoWriteFieldbusIoBool8(connection, masterName, slaveAddress, area, bitOffset, data);}
247 
248 inline MLPIRESULT mlpiIoWriteFieldbusIoSint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const CHAR data)
249  {return mlpiIoWriteFieldbusIoChar(connection, masterName, slaveAddress, area, byteOffset, data);}
250 inline MLPIRESULT mlpiIoWriteFieldbusIoInt(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const SHORT data)
251  {return mlpiIoWriteFieldbusIoShort(connection, masterName, slaveAddress, area, byteOffset, data);}
252 inline MLPIRESULT mlpiIoWriteFieldbusIoDint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const LONG data)
253  {return mlpiIoWriteFieldbusIoLong(connection, masterName, slaveAddress, area, byteOffset, data);}
254 inline MLPIRESULT mlpiIoWriteFieldbusIoLint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const LLONG data)
255  {return mlpiIoWriteFieldbusIoLlong(connection, masterName, slaveAddress, area, byteOffset, data);}
256 
257 inline MLPIRESULT mlpiIoWriteFieldbusIoUsint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const UCHAR data)
258  {return mlpiIoWriteFieldbusIoUchar(connection, masterName, slaveAddress, area, byteOffset, data);}
259 inline MLPIRESULT mlpiIoWriteFieldbusIoUint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const USHORT data)
260  {return mlpiIoWriteFieldbusIoUshort(connection, masterName, slaveAddress, area, byteOffset, data);}
261 inline MLPIRESULT mlpiIoWriteFieldbusIoUdint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const ULONG data)
262  {return mlpiIoWriteFieldbusIoUlong(connection, masterName, slaveAddress, area, byteOffset, data);}
263 inline MLPIRESULT mlpiIoWriteFieldbusIoUlint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const ULLONG data)
264  {return mlpiIoWriteFieldbusIoUllong(connection, masterName, slaveAddress, area, byteOffset, data);}
265 
266 inline MLPIRESULT mlpiIoWriteFieldbusIoByte(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const UCHAR data)
267  {return mlpiIoWriteFieldbusIoUchar(connection, masterName, slaveAddress, area, byteOffset, data);}
268 inline MLPIRESULT mlpiIoWriteFieldbusIoWord(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const USHORT data)
269  {return mlpiIoWriteFieldbusIoUshort(connection, masterName, slaveAddress, area, byteOffset, data);}
270 inline MLPIRESULT mlpiIoWriteFieldbusIoDword(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const ULONG data)
271  {return mlpiIoWriteFieldbusIoUlong(connection, masterName, slaveAddress, area, byteOffset, data);}
272 inline MLPIRESULT mlpiIoWriteFieldbusIoLword(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const ULLONG data)
273  {return mlpiIoWriteFieldbusIoUllong(connection, masterName, slaveAddress, area, byteOffset, data);}
274 
275 inline MLPIRESULT mlpiIoWriteFieldbusIoReal(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const FLOAT data)
276  {return mlpiIoWriteFieldbusIoFloat(connection, masterName, slaveAddress, area, byteOffset, data);}
277 inline MLPIRESULT mlpiIoWriteFieldbusIoLreal(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const DOUBLE data)
278  {return mlpiIoWriteFieldbusIoDouble(connection, masterName, slaveAddress, area, byteOffset, data);}
279 
280 inline MLPIRESULT mlpiIoWriteFieldbusIoArraySint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const CHAR *data, const ULONG numElements)
281  {return mlpiIoWriteFieldbusIoArrayChar(connection, masterName, slaveAddress, area, byteOffset, data, numElements);}
282 inline MLPIRESULT mlpiIoWriteFieldbusIoArrayInt(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const SHORT *data, const ULONG numElements)
283  {return mlpiIoWriteFieldbusIoArrayShort(connection, masterName, slaveAddress, area, byteOffset, data, numElements);}
284 inline MLPIRESULT mlpiIoWriteFieldbusIoArrayDint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const LONG *data, const ULONG numElements)
285  {return mlpiIoWriteFieldbusIoArrayLong(connection, masterName, slaveAddress, area, byteOffset, data, numElements);}
286 inline MLPIRESULT mlpiIoWriteFieldbusIoArrayLint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const LLONG *data, const ULONG numElements)
287  {return mlpiIoWriteFieldbusIoArrayLlong(connection, masterName, slaveAddress, area, byteOffset, data, numElements);}
288 
289 inline MLPIRESULT mlpiIoWriteFieldbusIoArrayUsint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const UCHAR *data, const ULONG numElements)
290  {return mlpiIoWriteFieldbusIoArrayUchar(connection, masterName, slaveAddress, area, byteOffset, data, numElements);}
291 inline MLPIRESULT mlpiIoWriteFieldbusIoArrayUint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const USHORT *data, const ULONG numElements)
292  {return mlpiIoWriteFieldbusIoArrayUshort(connection, masterName, slaveAddress, area, byteOffset, data, numElements);}
293 inline MLPIRESULT mlpiIoWriteFieldbusIoArrayUdint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const ULONG *data, const ULONG numElements)
294  {return mlpiIoWriteFieldbusIoArrayUlong(connection, masterName, slaveAddress, area, byteOffset, data, numElements);}
295 inline MLPIRESULT mlpiIoWriteFieldbusIoArrayUlint(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const ULLONG *data, const ULONG numElements)
296  {return mlpiIoWriteFieldbusIoArrayUllong(connection, masterName, slaveAddress, area, byteOffset, data, numElements);}
297 
298 inline MLPIRESULT mlpiIoWriteFieldbusIoArrayByte(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const UCHAR *data, const ULONG numElements)
299  {return mlpiIoWriteFieldbusIoArrayUchar(connection, masterName, slaveAddress, area, byteOffset, data, numElements);}
300 inline MLPIRESULT mlpiIoWriteFieldbusIoArrayWord(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const USHORT *data, const ULONG numElements)
301  {return mlpiIoWriteFieldbusIoArrayUshort(connection, masterName, slaveAddress, area, byteOffset, data, numElements);}
302 inline MLPIRESULT mlpiIoWriteFieldbusIoArrayDword(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const ULONG *data, const ULONG numElements)
303  {return mlpiIoWriteFieldbusIoArrayUlong(connection, masterName, slaveAddress, area, byteOffset, data, numElements);}
304 inline MLPIRESULT mlpiIoWriteFieldbusIoArrayLword(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const ULLONG *data, const ULONG numElements)
305  {return mlpiIoWriteFieldbusIoArrayUllong(connection, masterName, slaveAddress, area, byteOffset, data, numElements);}
306 
307 inline MLPIRESULT mlpiIoWriteFieldbusIoArrayReal(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const FLOAT *data, const ULONG numElements)
308  {return mlpiIoWriteFieldbusIoArrayFloat(connection, masterName, slaveAddress, area, byteOffset, data, numElements);}
309 inline MLPIRESULT mlpiIoWriteFieldbusIoArrayLreal(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const DOUBLE *data, const ULONG numElements)
310  {return mlpiIoWriteFieldbusIoArrayDouble(connection, masterName, slaveAddress, area, byteOffset, data, numElements);}
311 
312 
313 
314 #ifdef __cplusplus
315 }
316 #endif
317 
318 
319 #endif /* __MLPIIOHELPER_H__ */
MLPIRESULT mlpiIoWriteFieldbusIoLlong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const LLONG data)
This function writes the 64-bit signed data value to a fieldbus I/O.
unsigned char UCHAR
1 byte unsigned integer
Definition: mlpiGlobal.h:160
MLPIRESULT mlpiIoWriteFieldbusIoArrayUchar(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const UCHAR *data, const ULONG numElements)
This function writes an array of 8-bit unsigned data values to a fieldbus I/O.
MLPIRESULT mlpiIoReadFieldbusIoUllong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, ULLONG *data)
This function reads the 64-bit unsigned data value from a fieldbus I/O.
#define MLPI_IO_FIELDBUS_DIAGNOSIS_OKAY(flags)
Fieldbus diagnosis flag combination &#39;diagnosis&#39;.
Definition: mlpiIoLib.h:295
unsigned long long ULLONG
8 byte unsigned integer
Definition: mlpiGlobal.h:171
int LONG
4 byte signed integer
Definition: mlpiGlobal.h:164
char CHAR
1 byte signed integer
Definition: mlpiGlobal.h:159
MLPIRESULT mlpiIoWriteFieldbusIoBool8(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG bitOffset, const BOOL8 data)
This function writes a bit to a fieldbus I/O.
MLPIRESULT mlpiIoReadFieldbusIoArrayFloat(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, FLOAT *data, const ULONG numElements, ULONG *numElementsRet)
This function reads an array of 32-bit floating point data values (single precision) from a fieldbus ...
MLPIRESULT mlpiIoWriteFieldbusIoArrayUlong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const ULONG *data, const ULONG numElements)
This function writes an array of 32-bit unsigned data values to a fieldbus I/O.
signed char BOOL8
1 byte boolean
Definition: mlpiGlobal.h:158
unsigned short USHORT
2 byte unsigned integer
Definition: mlpiGlobal.h:162
MLPIRESULT mlpiIoReadFieldbusIoArrayLong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, LONG *data, const ULONG numElements, ULONG *numElementsRet)
This function reads an array of 32-bit signed data values from a fieldbus I/O.
MLPIRESULT mlpiIoWriteFieldbusIoArrayFloat(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const FLOAT *data, const ULONG numElements)
This function writes an array of 32-bit floating point data values (single precision) to a fieldbus I...
MlpiIoFieldbusArea
This enumeration defines the I/O areas &#39;Input&#39; and &#39;Output&#39; of a fieldbus device. ...
Definition: mlpiIoLib.h:367
MLPIRESULT mlpiIoWriteFieldbusIoLong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const LONG data)
This function writes the 32-bit signed data value to a fieldbus I/O.
MLPIRESULT mlpiIoWriteFieldbusIoUlong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const ULONG data)
This function writes the 32-bit unsigned data value to a fieldbus I/O.
MLPIRESULT mlpiIoReadFieldbusIoUshort(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, USHORT *data)
This function reads the 16-bit unsigned data value from a fieldbus I/O.
MLPIRESULT mlpiIoReadFieldbusIoUchar(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, UCHAR *data)
This function reads the 8-bit unsigned data value from a fieldbus I/O.
short SHORT
2 byte signed integer
Definition: mlpiGlobal.h:161
MLPIRESULT mlpiIoReadFieldbusIoBool8(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG bitOffset, BOOL8 *data)
This function reads a bit from a fieldbus I/O.
MLPIRESULT mlpiIoReadFieldbusIoShort(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, SHORT *data)
This function reads the 16-bit signed data value from a fieldbus I/O.
MLPIRESULT mlpiIoWriteFieldbusIoFloat(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const FLOAT data)
This function writes the 32-bit floating point data value (single precision) to a fieldbus I/O...
MLPIRESULT mlpiIoWriteFieldbusIoArrayUllong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const ULLONG *data, const ULONG numElements)
This function writes an array of 64-bit unsigned data values to a fieldbus I/O.
MLPIRESULT mlpiIoReadFieldbusIoArrayUchar(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, UCHAR *data, const ULONG numElements, ULONG *numElementsRet)
This function reads an array of 8-bit unsigned data values from a fieldbus I/O.
wchar_t WCHAR16
UTF16 string.
Definition: mlpiGlobal.h:193
unsigned int ULONG
4 byte unsigned integer
Definition: mlpiGlobal.h:165
MLPIRESULT mlpiIoReadFieldbusIoArrayChar(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, CHAR *data, const ULONG numElements, ULONG *numElementsRet)
This function reads an array of 8-bit signed data values from a fieldbus I/O.
MLPIRESULT mlpiIoWriteFieldbusIoArrayShort(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const SHORT *data, const ULONG numElements)
This function writes an array of 16-bit signed data values to a fieldbus I/O.
MLPIRESULT mlpiIoWriteFieldbusIoArrayDouble(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const DOUBLE *data, const ULONG numElements)
This function writes an array of 64-bit floating point data values (double precision) to a fieldbus I...
#define MLPI_IO_FIELDBUS_DIAGNOSIS_DIAG(flags)
Fieldbus diagnosis flag combination &#39;error or diagnosis&#39;.
Definition: mlpiIoLib.h:314
MLPIRESULT mlpiIoWriteFieldbusIoDouble(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const DOUBLE data)
This function writes the 64-bit floating point data value (double precision) to a fieldbus I/O...
MLPIRESULT mlpiIoReadFieldbusIoUlong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, ULONG *data)
This function reads the 32-bit unsigned data value from a fieldbus I/O.
MLPIRESULT mlpiIoReadFieldbusIoArrayShort(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, SHORT *data, const ULONG numElements, ULONG *numElementsRet)
This function reads an array of 16-bit signed data values from a fieldbus I/O.
struct MlpiIoDiagnosisFlagDecoder MlpiIoDiagnosisFlagDecoder
The following struct helps to decode the diagnosis flags of MlpiIoDiagnosis as given by mlpiIoReadFie...
MLPIRESULT mlpiIoWriteFieldbusIoArrayLlong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const LLONG *data, const ULONG numElements)
This function writes an array of 64-bit signed data values to a fieldbus I/O.
MLPIRESULT mlpiIoWriteFieldbusIoUchar(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const UCHAR data)
This function writes the 8-bit unsigned data value to a fieldbus I/O.
MLPIRESULT mlpiIoWriteFieldbusIoArrayChar(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const CHAR *data, const ULONG numElements)
This function writes an array of 8-bit signed data values to a fieldbus I/O.
MLPIRESULT mlpiIoReadFieldbusIoArrayDouble(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, DOUBLE *data, const ULONG numElements, ULONG *numElementsRet)
This function reads an array of 64-bit floating point data values (double precision) from a fieldbus ...
MLPIRESULT mlpiIoReadFieldbusIoArrayUlong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, ULONG *data, const ULONG numElements, ULONG *numElementsRet)
This function reads an array of 32-bit unsigned data values from a fieldbus I/O.
MLPIRESULT mlpiIoReadFieldbusIoArrayUllong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, ULLONG *data, const ULONG numElements, ULONG *numElementsRet)
This function reads an array of 64-bit unsigned data values from a fieldbus I/O.
MLPIRESULT mlpiIoWriteFieldbusIoUllong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const ULLONG data)
This function writes the 64-bit unsigned data value to a fieldbus I/O.
MLPIRESULT mlpiIoWriteFieldbusIoShort(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const SHORT data)
This function writes the 16-bit signed data value to a fieldbus I/O.
MLPIRESULT mlpiIoReadFieldbusIoLlong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, LLONG *data)
This function reads the 64-bit signed data value from a fieldbus I/O.
MLPIRESULT mlpiIoReadFieldbusIoArrayUshort(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, USHORT *data, const ULONG numElements, ULONG *numElementsRet)
This function reads an array of 16-bit unsigned data values from a fieldbus I/O.
MLPIRESULT mlpiIoReadFieldbusIoArrayLlong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, LLONG *data, const ULONG numElements, ULONG *numElementsRet)
This function reads an array of 64-bit signed data values from a fieldbus I/O.
MLPIRESULT mlpiIoWriteFieldbusIoArrayLong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const LONG *data, const ULONG numElements)
This function writes an array of 32-bit signed data values to a fieldbus I/O.
MLPIRESULT mlpiIoWriteFieldbusIoUshort(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const USHORT data)
This function writes the 16-bit unsigned data value to a fieldbus I/O.
long long LLONG
8 byte signed integer
Definition: mlpiGlobal.h:170
MLPIRESULT mlpiIoReadFieldbusIoChar(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, CHAR *data)
This function reads the 8-bit signed data value from a fieldbus I/O.
float FLOAT
4 byte floating point
Definition: mlpiGlobal.h:172
double DOUBLE
8 byte floating point
Definition: mlpiGlobal.h:177
MLPIRESULT mlpiIoReadFieldbusIoLong(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, LONG *data)
This function reads the 32-bit signed data value from a fieldbus I/O.
MLPIRESULT mlpiIoWriteFieldbusIoChar(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const CHAR data)
This function writes the 8-bit signed data value to a fieldbus I/O.
MLPIRESULT mlpiIoReadFieldbusIoDouble(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, DOUBLE *data)
This function reads the 64-bit floating point data value (double precision) from a fieldbus I/O...
unsigned long MLPIHANDLE
common MLPI-API handle value
Definition: mlpiGlobal.h:206
MLPIRESULT mlpiIoWriteFieldbusIoArrayUshort(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, const USHORT *data, const ULONG numElements)
This function writes an array of 16-bit unsigned data values to a fieldbus I/O.
MLPIRESULT mlpiIoReadFieldbusIoFloat(const MLPIHANDLE connection, const WCHAR16 *masterName, const WCHAR16 *slaveAddress, const MlpiIoFieldbusArea area, const ULONG byteOffset, FLOAT *data)
This function reads the 32-bit floating point data value (single precision) from a fieldbus I/O...
int MLPIRESULT
common MLPI-API return value
Definition: mlpiGlobal.h:198