versadac  1
versadac - Scalable Recorder Firmware
mrp_environment.h
1 /***************************************************************************************
2  *********** Copyright 2005 Zurich University of Applied Sciences / InES **************
3  ***************************************************************************************
4  **
5  ** File : mrp_environment.h
6  **
7  ** Description : This file provides the environment. The dispatcher of this class
8  ** takes the environment events out of the communication queue and
9  ** processes them.
10  **
11  ***************************************************************************************
12  ** Department : Institute of Embedded Systems
13  ** Project : MRP
14  ** Modul : MRP_Environment_T
15  ** Author : Christian Schaer
16  ** Contact : scc@zhwin.ch
17  ** Date : 10.04.2006
18  ****************************** Modifications ******************************************
19  **
20  ** Date : Who : Comment :
21  ** 10.05.06 scc initial release
22  **************************************************************************************/
23 /* $Workfile:: mrp_environment.h $*/
24 /* $Revision:: 5 $*/
25 /* $Date:: 16/12/10 14:44 $*/
26 
27 #ifndef MRP_ENVIRONMENT_H
28 #define MRP_ENVIRONMENT_H
29 
30 
31 /***********************************************************************/
32 /*** Header Files Includes ***/
33 /***********************************************************************/
34 
35 #include "mrp_pkg.h"
36 #include "mrp_frameanalyser.h"
37 #include "mrp_domain.h"
38 
39 
40 /**********************************************************************/
41 /*** class MRP_Environment_T ***/
42 /**********************************************************************/
43 
45 {
46  MRP_FrameAnalyser_T mrp_frameanalyser_;
47  MRP_Domain_T mrp_domains_[MRP_DOMAIN_COUNT];
48  Unsigned16 number_of_domains_;
49  Unsigned16 max_number_of_domains_;
50 
51  UChar host_mac_[6];
52 };
53 
54 /********************************************/
55 /*** Constructors and destructors ***/
56 /********************************************/
57 
58 MRPError MRP_Environment_T_Init(MRP_Environment_T* const me );
59 
60 void MRP_Environment_T_Cleanup(MRP_Environment_T* const me);
61 
62 
63 /********************************************/
64 /*** public Methods ***/
65 /********************************************/
66 
69 void MRP_Environment_T_dispatcher( MRP_Environment_T* const me );
70 
72 void MRP_Environment_T_enableMRP( MRP_Environment_T* const me,
73  MRPBoolean enable );
74 
76 MRPError MRP_Environment_T_startMRM( MRP_Environment_T* const me,
77  DomainID domain_id,
78  Unsigned16 ring_port_1_id,
79  Unsigned16 ring_port_2_id,
80  Unsigned16 vlan_id,
81  Unsigned16 manager_priority,
82  Unsigned16 topology_change_interval,
83  Unsigned16 topology_change_repeat_count,
84  Unsigned16 short_test_interval,
85  Unsigned16 default_test_interval,
86  Unsigned16 test_monitoring_count,
87  MRPBoolean non_blocking_MRC_supported,
88  Unsigned16 test_monitoring_extended_count,
89  MRPBoolean react_on_link_change,
90  MRPBoolean check_media_redundancy,
91  void * lpvContextInd);
92 
94 MRPError MRP_Environment_T_stopMRM( MRP_Environment_T* const me,
95  DomainID domain_id );
96 
98 MRPError MRP_Environment_T_startMRC( MRP_Environment_T* const me,
99  DomainID domain_id,
100  Unsigned16 ring_port_1_id,
101  Unsigned16 ring_port_2_id,
102  Unsigned16 vlan_id,
103  Unsigned16 link_down_interval,
104  Unsigned16 link_up_interval,
105  Unsigned16 link_change_count,
106  MRPBoolean blocked_state_supported,
107  void * lpvContextInd);
108 
110 MRPError MRP_Environment_T_stopMRC( MRP_Environment_T* const me,
111  DomainID domain_id );
112 
114 MRPError MRP_Environment_T_readMRMRingPort1ID( MRP_Environment_T* const me,
115  DomainID domain_id,
116  Unsigned16* const value );
117 
119 MRPError MRP_Environment_T_readMRMRingPort2ID( MRP_Environment_T* const me,
120  DomainID domain_id,
121  Unsigned16* const value );
122 
124 MRPError MRP_Environment_T_readMRMVLanID( MRP_Environment_T* const me,
125  DomainID domain_id,
126  Unsigned16* const value );
127 
129 MRPError MRP_Environment_T_readMRMManagerPriority( MRP_Environment_T* const me,
130  DomainID domain_id,
131  Unsigned16* const value );
132 
134 MRPError MRP_Environment_T_readMRMRealRoleState( MRP_Environment_T* const me,
135  DomainID domain_id,
136  Unsigned16* const value );
137 
139 MRPError MRP_Environment_T_readMRMRealRingState( MRP_Environment_T* const me,
140  DomainID domain_id,
141  Unsigned16* const value );
142 
144 MRPError MRP_Environment_T_readMRMRingPort1PortState( MRP_Environment_T* const me,
145  DomainID domain_id,
146  Unsigned16* const value );
148 MRPError MRP_Environment_T_readMRMRingPort2PortState( MRP_Environment_T* const me,
149  DomainID domain_id,
150  Unsigned16* const value );
151 
153 MRPError MRP_Environment_T_readMRMTopologyChangeInterval( MRP_Environment_T* const me,
154  DomainID domain_id,
155  Unsigned16* const value );
156 
158 MRPError MRP_Environment_T_readMRMTopologyChangeRepeatCount( MRP_Environment_T* const me,
159  DomainID domain_id,
160  Unsigned16* const value );
161 
163 MRPError MRP_Environment_T_readMRMShortTestInterval( MRP_Environment_T* const me,
164  DomainID domain_id,
165  Unsigned16* const value );
166 
168 MRPError MRP_Environment_T_readMRMDefaultTestInterval( MRP_Environment_T* const me,
169  DomainID domain_id,
170  Unsigned16* const value );
171 
173 MRPError MRP_Environment_T_readMRMTestMonitoringCount( MRP_Environment_T* const me,
174  DomainID domain_id,
175  Unsigned16* const value );
176 
178 MRPError MRP_Environment_T_readMRMNonBlockingMRCSupported( MRP_Environment_T* const me,
179  DomainID domain_id,
180  MRPBoolean* const value );
181 
183 MRPError MRP_Environment_T_readMRMTestMonitoringExtendedCount( MRP_Environment_T* const me,
184  DomainID domain_id,
185  Unsigned16* const value );
186 
188 MRPError MRP_Environment_T_readMRMReactOnLinkChange( MRP_Environment_T* const me,
189  DomainID domain_id,
190  MRPBoolean* const value );
191 
193 MRPError MRP_Environment_T_readMRMCheckMediaRedundancy( MRP_Environment_T* const me,
194  DomainID domain_id,
195  MRPBoolean* const value );
196 
198 MRPError MRP_Environment_T_readMRCRingPort1ID( MRP_Environment_T* const me,
199  DomainID domain_id,
200  Unsigned16* const value );
201 
203 MRPError MRP_Environment_T_readMRCRingPort2ID( MRP_Environment_T* const me,
204  DomainID domain_id,
205  Unsigned16* const value );
206 
208 MRPError MRP_Environment_T_readMRCVLanID( MRP_Environment_T* const me,
209  DomainID domain_id,
210  Unsigned16* const value );
211 
213 MRPError MRP_Environment_T_readMRCRingPort1PortState( MRP_Environment_T* const me,
214  DomainID domain_id,
215  Unsigned16* const value );
216 
218 MRPError MRP_Environment_T_readMRCRingPort2PortState( MRP_Environment_T* const me,
219  DomainID domain_id,
220  Unsigned16* const value );
221 
223 MRPError MRP_Environment_T_readMRCLinkDownInterval( MRP_Environment_T* const me,
224  DomainID domain_id,
225  Unsigned16* const value );
226 
228 MRPError MRP_Environment_T_readMRCLinkUpInterval( MRP_Environment_T* const me,
229  DomainID domain_id,
230  Unsigned16* const value );
231 
233 MRPError MRP_Environment_T_readMRCLinkChangeCount( MRP_Environment_T* const me,
234  DomainID domain_id,
235  Unsigned16* const value );
236 
238 MRPError MRP_Environment_T_readMRCBlockedStateSupported( MRP_Environment_T* const me,
239  DomainID domain_id,
240  MRPBoolean* const value );
241 
243 MRPError MRP_Environment_T_readExpectedRoleState( MRP_Environment_T* const me,
244  DomainID domain_id,
245  Unsigned16* const value );
246 
247 /* function add by Molex, allowing to bypass the MRP internal queue*/
248 void MRP_Environment_T_dispatche_timer ( MRP_Environment_T* const me );
249 void MRP_Environment_T_dispatche_link_change( MRP_Environment_T* const me, unsigned char * lpbyData);
250 void MRP_Environment_T_dispatche_rcv_pdu ( MRP_Environment_T* const me, unsigned char * lpbyData);
251 #endif
252 
Definition: mrp_environment.h:44
Definition: mrp_pkg.h:81
Definition: mrp_domain.h:54
Definition: mrp_frameanalyser.h:41