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 for a MRC.
8  ** The dispatcher of this class takes the environment events out
9  ** of the communication queue and 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 
44 struct MRP_Environment_T
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_startMRC( 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 link_down_interval,
82  Unsigned16 link_up_interval,
83  Unsigned16 link_change_count,
84  MRPBoolean blocked_state_supported,
85  void * lpvContextInd);
86 
88 MRPError MRP_Environment_T_stopMRC( MRP_Environment_T* const me,
89  DomainID domain_id );
90 
92 MRPError MRP_Environment_T_readMRCRingPort1ID( MRP_Environment_T* const me,
93  DomainID domain_id,
94  Unsigned16* const value );
95 
97 MRPError MRP_Environment_T_readMRCRingPort2ID( MRP_Environment_T* const me,
98  DomainID domain_id,
99  Unsigned16* const value );
100 
102 MRPError MRP_Environment_T_readMRCVLanID( MRP_Environment_T* const me,
103  DomainID domain_id,
104  Unsigned16* const value );
105 
107 MRPError MRP_Environment_T_readMRCRingPort1PortState( MRP_Environment_T* const me,
108  DomainID domain_id,
109  Unsigned16* const value );
110 
112 MRPError MRP_Environment_T_readMRCRingPort2PortState( MRP_Environment_T* const me,
113  DomainID domain_id,
114  Unsigned16* const value );
115 
117 MRPError MRP_Environment_T_readMRCLinkDownInterval( MRP_Environment_T* const me,
118  DomainID domain_id,
119  Unsigned16* const value );
120 
122 MRPError MRP_Environment_T_readMRCLinkUpInterval( MRP_Environment_T* const me,
123  DomainID domain_id,
124  Unsigned16* const value );
125 
127 MRPError MRP_Environment_T_readMRCLinkChangeCount( MRP_Environment_T* const me,
128  DomainID domain_id,
129  Unsigned16* const value );
130 
132 MRPError MRP_Environment_T_readMRCBlockedStateSupported( MRP_Environment_T* const me,
133  DomainID domain_id,
134  MRPBoolean* const value );
135 
137 MRPError MRP_Environment_T_readExpectedRoleState( MRP_Environment_T* const me,
138  DomainID domain_id,
139  Unsigned16* const value );
140 
141 
142 /* function add by Molex, allowing to bypass the MRP internal queue*/
143 void MRP_Environment_T_dispatche_timer ( MRP_Environment_T* const me );
144 void MRP_Environment_T_dispatche_link_change( MRP_Environment_T* const me, unsigned char * lpbyData);
145 void MRP_Environment_T_dispatche_rcv_pdu ( MRP_Environment_T* const me, unsigned char * lpbyData);
146 #endif
147 
148 
Definition: mrp_environment.h:44
Definition: mrp_pkg.h:81
Definition: mrp_domain.h:54
Definition: mrp_frameanalyser.h:41