1 /**************************************************************************** 2 3 (c) SYSTEC electronic GmbH, D-07973 Greiz, August-Bebel-Str. 29 4 www.systec-electronic.com 5 6 Project: openPOWERLINK 7 8 Description: include file for Epl-Obd-Userspace-module 9 10 License: 11 12 Redistribution and use in source and binary forms, with or without 13 modification, are permitted provided that the following conditions 14 are met: 15 16 1. Redistributions of source code must retain the above copyright 17 notice, this list of conditions and the following disclaimer. 18 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. 22 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. 27 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. 40 41 Severability Clause: 42 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. 49 50 ------------------------------------------------------------------------- 51 52 $RCSfile: EplObdu.h,v $ 53 54 $Author: D.Krueger $ 55 56 $Revision: 1.6 $ $Date: 2008/10/17 15:32:32 $ 57 58 $State: Exp $ 59 60 Build Environment: 61 GCC V3.4 62 63 ------------------------------------------------------------------------- 64 65 Revision History: 66 67 2006/06/19 k.t.: start of the implementation 68 69 ****************************************************************************/ 70 71 #include "../EplObd.h" 72 73 #ifndef _EPLOBDU_H_ 74 #define _EPLOBDU_H_ 75 76 //--------------------------------------------------------------------------- 77 // const defines 78 //--------------------------------------------------------------------------- 79 80 //--------------------------------------------------------------------------- 81 // typedef 82 //--------------------------------------------------------------------------- 83 84 //--------------------------------------------------------------------------- 85 // function prototypes 86 //--------------------------------------------------------------------------- 87 88 #if (((EPL_MODULE_INTEGRATION) & (EPL_MODULE_OBDU)) != 0) 89 90 #if EPL_OBD_USE_KERNEL != FALSE 91 #error "EPL OBDu module enabled, but OBD_USE_KERNEL == TRUE" 92 #endif 93 94 EPLDLLEXPORT tEplKernel PUBLIC EplObduWriteEntry(unsigned int uiIndex_p, 95 unsigned int uiSubIndex_p, 96 void *pSrcData_p, 97 tEplObdSize Size_p); 98 99 // --------------------------------------------------------------------- 100 EPLDLLEXPORT tEplKernel PUBLIC EplObduReadEntry(unsigned int uiIndex_p, 101 unsigned int uiSubIndex_p, 102 void *pDstData_p, 103 tEplObdSize * pSize_p); 104 105 // --------------------------------------------------------------------- 106 EPLDLLEXPORT tEplKernel PUBLIC EplObduAccessOdPart(tEplObdPart ObdPart_p, 107 tEplObdDir Direction_p); 108 109 // --------------------------------------------------------------------- 110 EPLDLLEXPORT tEplKernel PUBLIC EplObduDefineVar(tEplVarParam MEM * pVarParam_p); 111 112 // --------------------------------------------------------------------- 113 EPLDLLEXPORT void *PUBLIC EplObduGetObjectDataPtr(unsigned int uiIndex_p, 114 unsigned int uiSubIndex_p); 115 // --------------------------------------------------------------------- 116 EPLDLLEXPORT tEplKernel PUBLIC EplObduRegisterUserOd(tEplObdEntryPtr pUserOd_p); 117 118 // --------------------------------------------------------------------- 119 EPLDLLEXPORT void PUBLIC EplObduInitVarEntry(tEplObdVarEntry MEM * pVarEntry_p, 120 BYTE bType_p, 121 tEplObdSize ObdSize_p); 122 123 // --------------------------------------------------------------------- 124 EPLDLLEXPORT tEplObdSize PUBLIC EplObduGetDataSize(unsigned int uiIndex_p, 125 unsigned int uiSubIndex_p); 126 127 // --------------------------------------------------------------------- 128 EPLDLLEXPORT unsigned int PUBLIC EplObduGetNodeId(void); 129 130 // --------------------------------------------------------------------- 131 EPLDLLEXPORT tEplKernel PUBLIC EplObduSetNodeId(unsigned int uiNodeId_p, 132 tEplObdNodeIdType NodeIdType_p); 133 // --------------------------------------------------------------------- 134 EPLDLLEXPORT tEplKernel PUBLIC EplObduGetAccessType(unsigned int uiIndex_p, 135 unsigned int uiSubIndex_p, 136 tEplObdAccess * 137 pAccessTyp_p); 138 // --------------------------------------------------------------------- 139 EPLDLLEXPORT tEplKernel PUBLIC EplObduReadEntryToLe(unsigned int uiIndex_p, 140 unsigned int uiSubIndex_p, 141 void *pDstData_p, 142 tEplObdSize * pSize_p); 143 // --------------------------------------------------------------------- 144 EPLDLLEXPORT tEplKernel PUBLIC EplObduWriteEntryFromLe(unsigned int uiIndex_p, 145 unsigned int 146 uiSubIndex_p, 147 void *pSrcData_p, 148 tEplObdSize Size_p); 149 150 // --------------------------------------------------------------------- 151 EPLDLLEXPORT tEplKernel PUBLIC EplObduSearchVarEntry(EPL_MCO_DECL_INSTANCE_PTR_ 152 unsigned int uiIndex_p, 153 unsigned int uiSubindex_p, 154 tEplObdVarEntry MEM ** 155 ppVarEntry_p); 156 157 #elif EPL_OBD_USE_KERNEL != FALSE 158 #include "../kernel/EplObdk.h" 159 160 #define EplObduWriteEntry EplObdWriteEntry 161 162 #define EplObduReadEntry EplObdReadEntry 163 164 #define EplObduAccessOdPart EplObdAccessOdPart 165 166 #define EplObduDefineVar EplObdDefineVar 167 168 #define EplObduGetObjectDataPtr EplObdGetObjectDataPtr 169 170 #define EplObduRegisterUserOd EplObdRegisterUserOd 171 172 #define EplObduInitVarEntry EplObdInitVarEntry 173 174 #define EplObduGetDataSize EplObdGetDataSize 175 176 #define EplObduGetNodeId EplObdGetNodeId 177 178 #define EplObduSetNodeId EplObdSetNodeId 179 180 #define EplObduGetAccessType EplObdGetAccessType 181 182 #define EplObduReadEntryToLe EplObdReadEntryToLe 183 184 #define EplObduWriteEntryFromLe EplObdWriteEntryFromLe 185 186 #define EplObduSearchVarEntry EplObdSearchVarEntry 187 188 #define EplObduIsNumerical EplObdIsNumerical 189 190 #endif // #if(((EPL_MODULE_INTEGRATION) & (EPL_MODULE_OBDU)) != 0) 191 192 #endif // #ifndef _EPLOBDU_H_ 193