// {{{RME classifier 'Logical View::Pacote'

#if defined( PRAGMA ) && ! defined( PRAGMA_IMPLEMENTED )
#pragma implementation "Pacote.h"
#endif

#include <RTSystem/PVA.h>
#include <Pacote.h>

// {{{RME classifier 'Logical View::Pacote' tool 'OT::Cpp' property 'ImplementationPreface'
// {{{USR tool 'OT::Cpp' property 'ImplementationPreface'
// }}}USR
// }}}RME

static void rtg_Pacote_init( const RTObject_class * type, Pacote * target )
{
	(void)new( target ) Pacote;
}

static void rtg_Pacote_copy( const RTObject_class * type, Pacote * target, const Pacote * source )
{
	(void)new( target ) Pacote( *source );
}

static void rtg_Pacote_destroy( const RTObject_class * type, Pacote * target )
{
	target->~Pacote();
}

const RTObject_class RTType_Pacote =
{
	(const RTObject_class *)0
  , (RTSuperAccessFunction)0
  , "Pacote"
  , (RTVersionId)0
  , (RTFieldOffset)sizeof( Pacote )
  , (RTInitFunction)rtg_Pacote_init
  , (RTCopyFunction)rtg_Pacote_copy
#if OBJECT_DECODE
  , RTstruct_decode
#endif
#if OBJECT_ENCODE
  , RTstruct_encode
#endif
  , (RTDestroyFunction)rtg_Pacote_destroy
  , 3
  , Pacote::rtg_Pacote_fields
};

// {{{RME classifier 'Logical View::Pacote' tool 'OT::Cpp' property 'GenerateDefaultConstructor'
Pacote::Pacote( void )
{
}
// }}}RME

// {{{RME classifier 'Logical View::Pacote' tool 'OT::Cpp' property 'GenerateDestructor'
Pacote::~Pacote( void )
{
}
// }}}RME

// {{{RME classifier 'Logical View::Pacote' tool 'OT::Cpp' property 'GenerateCopyConstructor'
Pacote::Pacote( const Pacote & rtg_arg )
	: CodigoProcurado( rtg_arg.CodigoProcurado )
	, CodigoLido( rtg_arg.CodigoLido )
	, AchouPacote( rtg_arg.AchouPacote )
{
}
// }}}RME

// {{{RME classifier 'Logical View::Pacote' tool 'OT::Cpp' property 'GenerateAssignmentOperator'
Pacote & Pacote::operator=( const Pacote & rtg_arg )
{
	if( this != &rtg_arg )
	{
		CodigoProcurado = rtg_arg.CodigoProcurado;
		CodigoLido = rtg_arg.CodigoLido;
		AchouPacote = rtg_arg.AchouPacote;
	}
	return *this;
}
// }}}RME

// {{{RME classifier 'Logical View::Pacote' operation 'ValidarCodigo()'
bool Pacote::ValidarCodigo( void )
{
	// {{{USR operation 'ValidarCodigo()'
	// Verificar se o codigo lido pelo sensor esta de acordo com o sistema
	if (CodigoLido < 10000) {
		if (CodigoLido > 0) {
			// OK, O codigo lido esta na faixa prevista
			return true;
		} else {
			return false;
		}
	} else {
		// O codigo esta fora da faixa
		return false;
	}
	// }}}USR
}
// }}}RME

// {{{RME classifier 'Logical View::Pacote' operation 'VerificarCodigo()'
void Pacote::VerificarCodigo( void )
{
	// {{{USR operation 'VerificarCodigo()'
	if (ValidarCodigo() == true){
		if (CodigoLido == CodigoProcurado){
			AchouPacote = true;
		} else {
			AchouPacote = false;
		}
	} else {
		AchouPacote = false;
	}
	// }}}USR
}
// }}}RME

const RTFieldDescriptor Pacote::rtg_Pacote_fields[] =
{
	// {{{RME classifier 'Logical View::Pacote' classAttribute 'CodigoProcurado'
	{
		"CodigoProcurado"
	  , RTOffsetOf( Pacote, CodigoProcurado )
		// {{{RME classifier 'Logical View::Pacote' classAttribute 'CodigoProcurado' tool 'OT::CppTargetRTS' property 'TypeDescriptor'
	  , &RTType_long
		// }}}RME
		// {{{RME classifier 'Logical View::Pacote' classAttribute 'CodigoProcurado' tool 'OT::CppTargetRTS' property 'GenerateTypeModifier'
	  , (const RTTypeModifier *)0
		// }}}RME
	}
	// }}}RME
	// {{{RME classifier 'Logical View::Pacote' classAttribute 'CodigoLido'
  , {
		"CodigoLido"
	  , RTOffsetOf( Pacote, CodigoLido )
		// {{{RME classifier 'Logical View::Pacote' classAttribute 'CodigoLido' tool 'OT::CppTargetRTS' property 'TypeDescriptor'
	  , &RTType_long
		// }}}RME
		// {{{RME classifier 'Logical View::Pacote' classAttribute 'CodigoLido' tool 'OT::CppTargetRTS' property 'GenerateTypeModifier'
	  , (const RTTypeModifier *)0
		// }}}RME
	}
	// }}}RME
	// {{{RME classifier 'Logical View::Pacote' classAttribute 'AchouPacote'
  , {
		"AchouPacote"
	  , RTOffsetOf( Pacote, AchouPacote )
		// {{{RME classifier 'Logical View::Pacote' classAttribute 'AchouPacote' tool 'OT::CppTargetRTS' property 'TypeDescriptor'
	  , &RTType_bool
		// }}}RME
		// {{{RME classifier 'Logical View::Pacote' classAttribute 'AchouPacote' tool 'OT::CppTargetRTS' property 'GenerateTypeModifier'
	  , (const RTTypeModifier *)0
		// }}}RME
	}
	// }}}RME
};

// {{{RME classifier 'Logical View::Pacote' tool 'OT::Cpp' property 'ImplementationEnding'
// {{{USR tool 'OT::Cpp' property 'ImplementationEnding'
// }}}USR
// }}}RME

// }}}RME
