1 /****************************************************************************
3 (c) SYSTEC electronic GmbH, D-07973 Greiz, August-Bebel-Str. 29
4 www.systec-electronic.com
8 Description: include file for DLL module
12 Redistribution and use in source and binary forms, with or without
13 modification, are permitted provided that the following conditions
16 1. Redistributions of source code must retain the above copyright
17 notice, this list of conditions and the following disclaimer.
19 2. Redistributions in binary form must reproduce the above copyright
20 notice, this list of conditions and the following disclaimer in the
21 documentation and/or other materials provided with the distribution.
23 3. Neither the name of SYSTEC electronic GmbH nor the names of its
24 contributors may be used to endorse or promote products derived
25 from this software without prior written permission. For written
26 permission, please contact info@systec-electronic.com.
28 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
29 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
30 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
31 FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
32 COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
33 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
34 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
35 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
36 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
37 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
38 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
39 POSSIBILITY OF SUCH DAMAGE.
43 If a provision of this License is or becomes illegal, invalid or
44 unenforceable in any jurisdiction, that shall not affect:
45 1. the validity or enforceability in that jurisdiction of any other
46 provision of this License; or
47 2. the validity or enforceability in other jurisdictions of that or
48 any other provision of this License.
50 -------------------------------------------------------------------------
52 $RCSfile: EplDll.h,v $
56 $Revision: 1.4 $ $Date: 2008/04/17 21:36:32 $
63 -------------------------------------------------------------------------
67 2006/06/08 d.k.: start of the implementation, version 1.00
69 ****************************************************************************/
77 //---------------------------------------------------------------------------
79 //---------------------------------------------------------------------------
81 #ifndef EPL_DLL_MAX_ASND_SERVICE_ID
82 #define EPL_DLL_MAX_ASND_SERVICE_ID (EPL_C_DLL_MAX_ASND_SERVICE_IDS + 1) // last is kEplDllAsndSdo == 5
85 //---------------------------------------------------------------------------
87 //---------------------------------------------------------------------------
90 kEplDllAsndNotDefined = 0x00,
91 kEplDllAsndIdentResponse = 0x01,
92 kEplDllAsndStatusResponse = 0x02,
93 kEplDllAsndNmtRequest = 0x03,
94 kEplDllAsndNmtCommand = 0x04,
96 } tEplDllAsndServiceId;
99 kEplDllAsndFilterNone = 0x00,
100 kEplDllAsndFilterLocal = 0x01, // receive only ASnd frames with local or broadcast node ID
101 kEplDllAsndFilterAny = 0x02, // receive any ASnd frame
105 kEplDllReqServiceNo = 0x00,
106 kEplDllReqServiceIdent = 0x01,
107 kEplDllReqServiceStatus = 0x02,
108 kEplDllReqServiceNmtRequest = 0x03,
109 kEplDllReqServiceUnspecified = 0xFF,
111 } tEplDllReqServiceId;
114 kEplDllAsyncReqPrioNmt = 0x07, // PRIO_NMT_REQUEST
115 kEplDllAsyncReqPrio6 = 0x06,
116 kEplDllAsyncReqPrio5 = 0x05,
117 kEplDllAsyncReqPrio4 = 0x04,
118 kEplDllAsyncReqPrioGeneric = 0x03, // PRIO_GENERIC_REQUEST
119 kEplDllAsyncReqPrio2 = 0x02, // till WSP 0.1.3: PRIO_ABOVE_GENERIC
120 kEplDllAsyncReqPrio1 = 0x01, // till WSP 0.1.3: PRIO_BELOW_GENERIC
121 kEplDllAsyncReqPrio0 = 0x00, // till WSP 0.1.3: PRIO_GENERIC_REQUEST
123 } tEplDllAsyncReqPriority;
126 unsigned int m_uiFrameSize;
128 tEplNetTime m_NetTime;
133 unsigned int m_uiSizeOfStruct;
134 BOOL m_fAsyncOnly; // do not need to register PRes-Frame
135 unsigned int m_uiNodeId; // local node ID
137 // 0x1F82: NMT_FeatureFlags_U32
138 u32 m_dwFeatureFlags;
139 // Cycle Length (0x1006: NMT_CycleLen_U32) in [us]
140 u32 m_dwCycleLen; // required for error detection
141 // 0x1F98: NMT_CycleTiming_REC
142 // 0x1F98.1: IsochrTxMaxPayload_U16
143 unsigned int m_uiIsochrTxMaxPayload; // const
144 // 0x1F98.2: IsochrRxMaxPayload_U16
145 unsigned int m_uiIsochrRxMaxPayload; // const
146 // 0x1F98.3: PResMaxLatency_U32
147 u32 m_dwPresMaxLatency; // const in [ns], only required for IdentRes
148 // 0x1F98.4: PReqActPayloadLimit_U16
149 unsigned int m_uiPreqActPayloadLimit; // required for initialisation (+24 bytes)
150 // 0x1F98.5: PResActPayloadLimit_U16
151 unsigned int m_uiPresActPayloadLimit; // required for initialisation of Pres frame (+24 bytes)
152 // 0x1F98.6: ASndMaxLatency_U32
153 u32 m_dwAsndMaxLatency; // const in [ns], only required for IdentRes
154 // 0x1F98.7: MultiplCycleCnt_U8
155 unsigned int m_uiMultiplCycleCnt; // required for error detection
156 // 0x1F98.8: AsyncMTU_U16
157 unsigned int m_uiAsyncMtu; // required to set up max frame size
158 // $$$ 0x1F98.9: Prescaler_U16
159 // $$$ Multiplexed Slot
161 // 0x1C14: DLL_LossOfFrameTolerance_U32 in [ns]
162 u32 m_dwLossOfFrameTolerance;
164 // 0x1F8A: NMT_MNCycleTiming_REC
165 // 0x1F8A.1: WaitSoCPReq_U32 in [ns]
168 // 0x1F8A.2: AsyncSlotTimeout_U32 in [ns]
169 u32 m_dwAsyncSlotTimeout;
171 } tEplDllConfigParam;
174 unsigned int m_uiSizeOfStruct;
175 u32 m_dwDeviceType; // NMT_DeviceType_U32
176 u32 m_dwVendorId; // NMT_IdentityObject_REC.VendorId_U32
177 u32 m_dwProductCode; // NMT_IdentityObject_REC.ProductCode_U32
178 u32 m_dwRevisionNumber; // NMT_IdentityObject_REC.RevisionNo_U32
179 u32 m_dwSerialNumber; // NMT_IdentityObject_REC.SerialNo_U32
180 u64 m_qwVendorSpecificExt1;
181 u32 m_dwVerifyConfigurationDate; // CFM_VerifyConfiguration_REC.ConfDate_U32
182 u32 m_dwVerifyConfigurationTime; // CFM_VerifyConfiguration_REC.ConfTime_U32
183 u32 m_dwApplicationSwDate; // PDL_LocVerApplSw_REC.ApplSwDate_U32 on programmable device or date portion of NMT_ManufactSwVers_VS on non-programmable device
184 u32 m_dwApplicationSwTime; // PDL_LocVerApplSw_REC.ApplSwTime_U32 on programmable device or time portion of NMT_ManufactSwVers_VS on non-programmable device
187 u32 m_dwDefaultGateway;
189 u8 m_abVendorSpecificExt2[48];
194 unsigned int m_uiNodeId;
195 u16 m_wPreqPayloadLimit; // object 0x1F8B: NMT_MNPReqPayloadLimitList_AU16
196 u16 m_wPresPayloadLimit; // object 0x1F8D: NMT_PResPayloadLimitList_AU16
197 u32 m_dwPresTimeout; // object 0x1F92: NMT_MNCNPResTimeout_AU32
201 //---------------------------------------------------------------------------
202 // function prototypes
203 //---------------------------------------------------------------------------
205 #endif // #ifndef _EPL_DLL_H_