⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cuwarmer.cpp

📁 含有uml的多个实例及实例的java源码。
💻 CPP
字号:
// {{{RME classifier 'Logical View::ControlUnits::CUWarmer'#if defined( PRAGMA ) && ! defined( PRAGMA_IMPLEMENTED )#pragma implementation "rtg/CUWarmer.h"#endif#include <RTSystem/AutoTestMarkI_x86VisualCpp60.h>#include <rtg/CUWarmer.h>// {{{RME tool 'OT::Cpp' property 'ImplementationPreface'// {{{USR// }}}USR// }}}RMEstatic const RTRelayDescriptor rtg_relays[] ={	{		"warmer"	  , &Warmer::Conjugate::rt_class	  , 1 // cardinality	}  , {		"coffeeControl"	  , &CUControl_Warmer::Base::rt_class	  , 1 // cardinality	}};static RTActor * new_CUWarmer_Actor( RTController * _rts, RTActorRef * _ref ){	return new CUWarmer_Actor( _rts, _ref );}const RTActorClass CUWarmer ={	(const RTActorClass *)0  , "CUWarmer"  , (RTVersionId)0  , 2  , rtg_relays  , new_CUWarmer_Actor};static const char * const rtg_state_names[] ={	"TOP"  , "PotEmpty"  , "Warming"  , "NoPot"};#define SUPER RTActorCUWarmer_Actor::CUWarmer_Actor( RTController * rtg_rts, RTActorRef * rtg_ref )	: RTActor( rtg_rts, rtg_ref ){}CUWarmer_Actor::~CUWarmer_Actor( void ){}int CUWarmer_Actor::_followInV( RTBindingEnd & rtg_end, int rtg_portId, int rtg_repIndex ){	switch( rtg_portId )	{	case 0:		// warmer		if( rtg_repIndex < 1 )		{			rtg_end.port = &warmer;			rtg_end.index = rtg_repIndex;			return 1;		}		break;	case 1:		// coffeeControl		if( rtg_repIndex < 1 )		{			rtg_end.port = &coffeeControl;			rtg_end.index = rtg_repIndex;			return 1;		}		break;	default:		break;	}	return RTActor::_followInV( rtg_end, rtg_portId, rtg_repIndex );}// {{{RME transition ':TOP:PotEmpty:Junction2:pot_not_empty'INLINE_METHODS void CUWarmer_Actor::transition2_pot_not_empty( const void * rtdata, Warmer::Conjugate * rtport ){	// {{{USR	warmer.warmerOn().send();#ifdef DEBUG	cout << "(Warmer) Turning warmer plate on.\n";#endif	// }}}USR}// }}}RME// {{{RME transition ':TOP:Warming:Junction2:no_pot'INLINE_METHODS void CUWarmer_Actor::transition3_no_pot( const void * rtdata, Warmer::Conjugate * rtport ){	// {{{USR	warmer.warmerOff().send();	coffeeControl.NoPot().send();#ifdef DEBUG	cout << "(Warmer) Turning warmer plate off.\n";#endif	// }}}USR}// }}}RME// {{{RME transition ':TOP:PotEmpty:Junction4:ready'INLINE_METHODS void CUWarmer_Actor::transition4_ready( const void * rtdata, CUControl_Warmer::Base * rtport ){	// {{{USR	coffeeControl.Ready().reply();	// }}}USR}// }}}RME// {{{RME transition ':TOP:Junction1:not_ready'INLINE_METHODS void CUWarmer_Actor::transition5_not_ready( const void * rtdata, CUControl_Warmer::Base * rtport ){	// {{{USR	coffeeControl.NotReady().reply();	// }}}USR}// }}}RME// {{{RME transition ':TOP:NoPot:Junction2:pot_not_empty'INLINE_METHODS void CUWarmer_Actor::transition6_pot_not_empty( const void * rtdata, Warmer::Conjugate * rtport ){	// {{{USR	warmer.warmerOn().send();	coffeeControl.Pot().send();	// }}}USR}// }}}RME// {{{RME transition ':TOP:NoPot:Junction3:pot_empty'INLINE_METHODS void CUWarmer_Actor::transition7_pot_empty( const void * rtdata, Warmer::Conjugate * rtport ){	// {{{USR	// coffeeControl.send( Pot );	coffeeControl.Pot().send();	// }}}USR}// }}}RME// {{{RME transition ':TOP:PotEmpty:Junction6:no_pot'INLINE_METHODS void CUWarmer_Actor::transition8_no_pot( const void * rtdata, Warmer::Conjugate * rtport ){	// {{{USR	// coffeeControl.send( NoPot );	coffeeControl.NoPot().send();	// }}}USR}// }}}RME// {{{RME transition ':TOP:Warming:Junction3:pot_empty'INLINE_METHODS void CUWarmer_Actor::transition9_pot_empty( const void * rtdata, Warmer::Conjugate * rtport ){	// {{{USR	warmer.warmerOff().send();#ifdef DEBUG	cout << "(Warmer) Turning warmer plate off.\n";#endif	// }}}USR}// }}}RMEINLINE_CHAINS void CUWarmer_Actor::chain1_Initial( void ){	// transition ':TOP:Initial:Initial'	rtgChainBegin( 1, "Initial" );	rtgTransitionBegin();	rtgTransitionEnd();	enterState( 2 );}INLINE_CHAINS void CUWarmer_Actor::chain5_not_ready( void ){	// transition ':TOP:Junction1:not_ready'	rtgChainBegin( 1, "not_ready" );	exitToChainState( 1, rtg_parent_state );	rtgTransitionBegin();	transition5_not_ready( msg->data, (CUControl_Warmer::Base *)msg->sap() );	rtgTransitionEnd();	processHistory();}INLINE_CHAINS void CUWarmer_Actor::chain2_pot_not_empty( void ){	// transition ':TOP:PotEmpty:Junction2:pot_not_empty'	rtgChainBegin( 2, "pot_not_empty" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition2_pot_not_empty( msg->data, (Warmer::Conjugate *)msg->sap() );	rtgTransitionEnd();	enterState( 3 );}INLINE_CHAINS void CUWarmer_Actor::chain10_PotEmpty( void ){	// transition ':TOP:PotEmpty:Junction8:PotEmpty'	rtgChainBegin( 2, "PotEmpty" );	exitState( rtg_parent_state );	rtgTransitionBegin();	rtgTransitionEnd();	enterState( 2 );}INLINE_CHAINS void CUWarmer_Actor::chain8_no_pot( void ){	// transition ':TOP:PotEmpty:Junction6:no_pot'	rtgChainBegin( 2, "no_pot" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition8_no_pot( msg->data, (Warmer::Conjugate *)msg->sap() );	rtgTransitionEnd();	enterState( 4 );}INLINE_CHAINS void CUWarmer_Actor::chain4_ready( void ){	// transition ':TOP:PotEmpty:Junction4:ready'	rtgChainBegin( 2, "ready" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition4_ready( msg->data, (CUControl_Warmer::Base *)msg->sap() );	rtgTransitionEnd();	enterState( 2 );}INLINE_CHAINS void CUWarmer_Actor::chain12_PotNotEmpty( void ){	// transition ':TOP:Warming:Junction4:PotNotEmpty'	rtgChainBegin( 3, "PotNotEmpty" );	exitState( rtg_parent_state );	rtgTransitionBegin();	rtgTransitionEnd();	enterState( 3 );}INLINE_CHAINS void CUWarmer_Actor::chain9_pot_empty( void ){	// transition ':TOP:Warming:Junction3:pot_empty'	rtgChainBegin( 3, "pot_empty" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition9_pot_empty( msg->data, (Warmer::Conjugate *)msg->sap() );	rtgTransitionEnd();	enterState( 2 );}INLINE_CHAINS void CUWarmer_Actor::chain3_no_pot( void ){	// transition ':TOP:Warming:Junction2:no_pot'	rtgChainBegin( 3, "no_pot" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition3_no_pot( msg->data, (Warmer::Conjugate *)msg->sap() );	rtgTransitionEnd();	enterState( 4 );}INLINE_CHAINS void CUWarmer_Actor::chain6_pot_not_empty( void ){	// transition ':TOP:NoPot:Junction2:pot_not_empty'	rtgChainBegin( 4, "pot_not_empty" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition6_pot_not_empty( msg->data, (Warmer::Conjugate *)msg->sap() );	rtgTransitionEnd();	enterState( 3 );}INLINE_CHAINS void CUWarmer_Actor::chain7_pot_empty( void ){	// transition ':TOP:NoPot:Junction3:pot_empty'	rtgChainBegin( 4, "pot_empty" );	exitState( rtg_parent_state );	rtgTransitionBegin();	transition7_pot_empty( msg->data, (Warmer::Conjugate *)msg->sap() );	rtgTransitionEnd();	enterState( 2 );}INLINE_CHAINS void CUWarmer_Actor::chain11_NoPot( void ){	// transition ':TOP:NoPot:Junction5:NoPot'	rtgChainBegin( 4, "NoPot" );	exitState( rtg_parent_state );	rtgTransitionBegin();	rtgTransitionEnd();	enterState( 4 );}void CUWarmer_Actor::rtsBehavior( int signalIndex, int portIndex ){	for( int stateIndex = getCurrentState(); ; stateIndex = rtg_parent_state[ stateIndex - 1 ] )		switch( stateIndex )		{		case 1:			// {{{RME state ':TOP'			switch( portIndex )			{			case 0:				switch( signalIndex )				{				case 1:					chain1_Initial();					return;				default:					break;				}				break;			case 2:				// {{{RME port 'coffeeControl'				switch( signalIndex )				{				case CUControl_Warmer::Base::rti_CheckReady:					chain5_not_ready();					return;				default:					break;				}				break;				// }}}RME			default:				break;			}			unexpectedMessage();			return;			// }}}RME		case 2:			// {{{RME state ':TOP:PotEmpty'			switch( portIndex )			{			case 0:				switch( signalIndex )				{				case 1:					return;				default:					break;				}				break;			case 1:				// {{{RME port 'warmer'				switch( signalIndex )				{				case Warmer::Conjugate::rti_potNotEmpty:					chain2_pot_not_empty();					return;				case Warmer::Conjugate::rti_potEmpty:					chain10_PotEmpty();					return;				case Warmer::Conjugate::rti_warmerEmpty:					chain8_no_pot();					return;				default:					break;				}				break;				// }}}RME			case 2:				// {{{RME port 'coffeeControl'				switch( signalIndex )				{				case CUControl_Warmer::Base::rti_CheckReady:					chain4_ready();					return;				default:					break;				}				break;				// }}}RME			default:				break;			}			break;			// }}}RME		case 3:			// {{{RME state ':TOP:Warming'			switch( portIndex )			{			case 0:				switch( signalIndex )				{				case 1:					return;				default:					break;				}				break;			case 1:				// {{{RME port 'warmer'				switch( signalIndex )				{				case Warmer::Conjugate::rti_potNotEmpty:					chain12_PotNotEmpty();					return;				case Warmer::Conjugate::rti_potEmpty:					chain9_pot_empty();					return;				case Warmer::Conjugate::rti_warmerEmpty:					chain3_no_pot();					return;				default:					break;				}				break;				// }}}RME			default:				break;			}			break;			// }}}RME		case 4:			// {{{RME state ':TOP:NoPot'			switch( portIndex )			{			case 0:				switch( signalIndex )				{				case 1:					return;				default:					break;				}				break;			case 1:				// {{{RME port 'warmer'				switch( signalIndex )				{				case Warmer::Conjugate::rti_potNotEmpty:					chain6_pot_not_empty();					return;				case Warmer::Conjugate::rti_potEmpty:					chain7_pot_empty();					return;				case Warmer::Conjugate::rti_warmerEmpty:					chain11_NoPot();					return;				default:					break;				}				break;				// }}}RME			default:				break;			}			break;			// }}}RME		default:			unexpectedState();			return;		}}const RTActor_class * CUWarmer_Actor::getActorData( void ) const{	return &CUWarmer_Actor::rtg_class;}const RTActor_class CUWarmer_Actor::rtg_class ={	(const RTActor_class *)0  , rtg_state_names  , 4  , CUWarmer_Actor::rtg_parent_state  , &CUWarmer  , 0  , (const RTComponentDescriptor *)0  , 2  , CUWarmer_Actor::rtg_ports  , 0  , (const RTLocalBindingDescriptor *)0  , 0  , (const RTFieldDescriptor *)0};const RTStateId CUWarmer_Actor::rtg_parent_state[] ={	0  , 1  , 1  , 1};const RTPortDescriptor CUWarmer_Actor::rtg_ports[] ={	{		"warmer"	  , (const char *)0	  , &Warmer::Conjugate::rt_class	  , RTOffsetOf( CUWarmer_Actor, CUWarmer_Actor::warmer )	  , 1 // cardinality	  , 1	  , RTPortDescriptor::KindWired + RTPortDescriptor::NotificationDisabled + RTPortDescriptor::RegisterNotPermitted + RTPortDescriptor::VisibilityPublic	}  , {		"coffeeControl"	  , (const char *)0	  , &CUControl_Warmer::Base::rt_class	  , RTOffsetOf( CUWarmer_Actor, CUWarmer_Actor::coffeeControl )	  , 1 // cardinality	  , 2	  , RTPortDescriptor::KindWired + RTPortDescriptor::NotificationDisabled + RTPortDescriptor::RegisterNotPermitted + RTPortDescriptor::VisibilityPublic	}};#undef SUPER// {{{RME tool 'OT::Cpp' property 'ImplementationEnding'// {{{USR// }}}USR// }}}RME// }}}RME

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -