Version 8.9.0
 
Loading...
Searching...
No Matches
IRPifConfig.h
1/******************************************************************************
2 * Copyright (c) 2012-2019 All Rights Reserved, http://www.evocortex.com *
3 * Evocortex GmbH *
4 * Emilienstr. 1 *
5 * 90489 Nuremberg *
6 * Germany *
7 * *
8 * Contributors: *
9 * Initial version for Linux 64-Bit platform supported by Fraunhofer IPA, *
10 * http://www.ipa.fraunhofer.de *
11 *****************************************************************************/
12
13#pragma once
14#include <vector>
15#include "IRChannelConfigAI.h"
16#include "IRChannelConfigAO.h"
17#include "IRChannelConfigDI.h"
18#include "IRChannelConfigDO.h"
19#include "irdirectsdk_defs.h"
20#include "IRArray.h"
21
22namespace evo {
23
24#if _WIN32 && !IRDIRECTSDK_STATIC
25 EXPIMP_TEMPLATE template class __IRDIRECTSDK_API__ IRArray<IRChannelConfigDI>;
26 EXPIMP_TEMPLATE template class __IRDIRECTSDK_API__ IRArray<IRChannelConfigAI>;
27 EXPIMP_TEMPLATE template class __IRDIRECTSDK_API__ IRArray<IRChannelConfigDO>;
28 EXPIMP_TEMPLATE template class __IRDIRECTSDK_API__ IRArray<IRChannelConfigAO>;
29#endif
30
36struct __IRDIRECTSDK_API__ IRPifConfig
37{
38 IRPifConfig(std::size_t countDIs = 0, std::size_t countAIs = 0, std::size_t countDOs = 0, std::size_t countAOs = 0)
39 : ChannelsDI(countDIs), ChannelsAI(countAIs), ChannelsDO(countDOs), ChannelsAO(countAOs)
40 {
41 FlagOpenOutput.AnalogValueOpen = 0;
42 FlagOpenOutput.AnalogValueClosed = 0;
43 FlagOpenOutput.AnalogValueMoving = 0;
44 FrameSyncOutput.AnalogValue = 0;
45
46 for(std::size_t i = 0; i < countDIs; i++)
47 {
48 ChannelsDI[i] = IRChannelConfigDI(i);
49 }
50
51 for(std::size_t i = 0; i < countAIs; i++)
52 {
53 ChannelsAI[i] = IRChannelConfigAI(i);
54 }
55
56 for(std::size_t i = 0; i < countDOs; i++)
57 {
58 ChannelsDO[i] = IRChannelConfigDO(i);
59 }
60
61 for(std::size_t i = 0; i < countAOs; i++)
62 {
63 ChannelsAO[i] = IRChannelConfigAO(i);
64 }
65 }
66
67#if __cplusplus >= 201103L || _MSC_VER >= 1800
68 IRPifConfig(const evo::IRPifConfig& obj) = default;
69
70 IRPifConfig& operator=(IRPifConfig& src)
71 {
72 FlagOpenOutput = src.FlagOpenOutput;
73 FrameSyncOutput = src.FrameSyncOutput;
74 FlagOpenInputChannel = src.FlagOpenInputChannel;
75 ChannelsDI = src.ChannelsDI;
76 ChannelsAI = src.ChannelsAI;
77 ChannelsDO = src.ChannelsDO;
78 ChannelsAO = src.ChannelsAO;
79
80 return *this;
81 }
82
87 IRPifConfig& operator=(IRPifConfig&& src)
88 {
89 FlagOpenOutput = std::move(src.FlagOpenOutput);
90 FrameSyncOutput = std::move(src.FrameSyncOutput);
91 FlagOpenInputChannel = std::move(src.FlagOpenInputChannel);
92 ChannelsDI = std::move(src.ChannelsDI);
93 ChannelsAI = std::move(src.ChannelsAI);
94 ChannelsDO = std::move(src.ChannelsDO);
95 ChannelsAO = std::move(src.ChannelsAO);
96
97 return *this;
98 }
99#endif
100
101 struct {
107
113
119
125
126 } FlagOpenOutput;
127
128 struct {
134
139 IRChannelConfig Channel;
140
141 } FrameSyncOutput;
142
143
149
155
161
167
173};
174
175} // namespace evo
C-Array wrapper for handle size, copy and memory.
Definition: IRArray.h:23
Channel config of analog input.
Definition: IRChannelConfigAI.h:25
Channel config of analog output.
Definition: IRChannelConfigAO.h:25
Channel config of digital input.
Definition: IRChannelConfigDI.h:24
Channel config of digital output.
Definition: IRChannelConfigDO.h:24
Definition: IRChannelConfig.h:23
Config for pif.
Definition: IRPifConfig.h:37
IRChannelConfig FlagOpenInputChannel
Input channel for set flag state.
Definition: IRPifConfig.h:148
IRArray< IRChannelConfigAI > ChannelsAI
Channel config of analog input channel's.
Definition: IRPifConfig.h:160
float AnalogValueMoving
Analog Output Voltage/Milliampere when Flag is moving.
Definition: IRPifConfig.h:118
IRArray< IRChannelConfigDO > ChannelsDO
Channel config of digital output channel's.
Definition: IRPifConfig.h:166
IRChannelConfig Channel
Output channel for flag.
Definition: IRPifConfig.h:124
float AnalogValueClosed
Analog Output Voltage/Milliampere when Flag is closed.
Definition: IRPifConfig.h:112
IRArray< IRChannelConfigDI > ChannelsDI
Channel config of digital input channel's.
Definition: IRPifConfig.h:154
IRArray< IRChannelConfigAO > ChannelsAO
Channel config of analog output channel's.
Definition: IRPifConfig.h:172
float AnalogValue
Analog Output Voltage/Milliampere on Frame for syncing.
Definition: IRPifConfig.h:133
float AnalogValueOpen
Analog Output Voltage/Milliampere when Flag is open.
Definition: IRPifConfig.h:106