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 NMT-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: EplNmtu.h,v $ 53 54 $Author: D.Krueger $ 55 56 $Revision: 1.5 $ $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/09 k.t.: start of the implementation 68 69 ****************************************************************************/ 70 71 #include "../EplNmt.h" 72 #include "EplEventu.h" 73 74 #ifndef _EPLNMTU_H_ 75 #define _EPLNMTU_H_ 76 77 //--------------------------------------------------------------------------- 78 // const defines 79 //--------------------------------------------------------------------------- 80 81 //--------------------------------------------------------------------------- 82 // typedef 83 //--------------------------------------------------------------------------- 84 // nmt commands 85 typedef enum { 86 // requestable ASnd ServiceIds 0x01..0x1F 87 kEplNmtCmdIdentResponse = 0x01, 88 kEplNmtCmdStatusResponse = 0x02, 89 // plain NMT state commands 0x20..0x3F 90 kEplNmtCmdStartNode = 0x21, 91 kEplNmtCmdStopNode = 0x22, 92 kEplNmtCmdEnterPreOperational2 = 0x23, 93 kEplNmtCmdEnableReadyToOperate = 0x24, 94 kEplNmtCmdResetNode = 0x28, 95 kEplNmtCmdResetCommunication = 0x29, 96 kEplNmtCmdResetConfiguration = 0x2A, 97 kEplNmtCmdSwReset = 0x2B, 98 // extended NMT state commands 0x40..0x5F 99 kEplNmtCmdStartNodeEx = 0x41, 100 kEplNmtCmdStopNodeEx = 0x42, 101 kEplNmtCmdEnterPreOperational2Ex = 0x43, 102 kEplNmtCmdEnableReadyToOperateEx = 0x44, 103 kEplNmtCmdResetNodeEx = 0x48, 104 kEplNmtCmdResetCommunicationEx = 0x49, 105 kEplNmtCmdResetConfigurationEx = 0x4A, 106 kEplNmtCmdSwResetEx = 0x4B, 107 // NMT managing commands 0x60..0x7F 108 kEplNmtCmdNetHostNameSet = 0x62, 109 kEplNmtCmdFlushArpEntry = 0x63, 110 // NMT info services 0x80..0xBF 111 kEplNmtCmdPublishConfiguredCN = 0x80, 112 kEplNmtCmdPublishActiveCN = 0x90, 113 kEplNmtCmdPublishPreOperational1 = 0x91, 114 kEplNmtCmdPublishPreOperational2 = 0x92, 115 kEplNmtCmdPublishReadyToOperate = 0x93, 116 kEplNmtCmdPublishOperational = 0x94, 117 kEplNmtCmdPublishStopped = 0x95, 118 kEplNmtCmdPublishEmergencyNew = 0xA0, 119 kEplNmtCmdPublishTime = 0xB0, 120 121 kEplNmtCmdInvalidService = 0xFF 122 } tEplNmtCommand; 123 124 typedef tEplKernel(PUBLIC * 125 tEplNmtuStateChangeCallback) (tEplEventNmtStateChange 126 NmtStateChange_p); 127 128 typedef tEplKernel(PUBLIC * 129 tEplNmtuCheckEventCallback) (tEplNmtEvent NmtEvent_p); 130 131 //--------------------------------------------------------------------------- 132 // function prototypes 133 //--------------------------------------------------------------------------- 134 135 #if(((EPL_MODULE_INTEGRATION) & (EPL_MODULE_NMTU)) != 0) 136 137 EPLDLLEXPORT tEplKernel PUBLIC EplNmtuInit(void); 138 139 EPLDLLEXPORT tEplKernel PUBLIC EplNmtuAddInstance(void); 140 141 EPLDLLEXPORT tEplKernel PUBLIC EplNmtuDelInstance(void); 142 143 EPLDLLEXPORT tEplKernel PUBLIC EplNmtuNmtEvent(tEplNmtEvent NmtEvent_p); 144 145 EPLDLLEXPORT tEplNmtState PUBLIC EplNmtuGetNmtState(void); 146 147 EPLDLLEXPORT tEplKernel PUBLIC EplNmtuProcessEvent(tEplEvent * pEplEvent_p); 148 149 EPLDLLEXPORT tEplKernel PUBLIC 150 EplNmtuRegisterStateChangeCb(tEplNmtuStateChangeCallback 151 pfnEplNmtStateChangeCb_p); 152 153 #endif // #if(((EPL_MODULE_INTEGRATION) & (EPL_MODULE_NMTU)) != 0) 154 155 #endif // #ifndef _EPLNMTU_H_ 156