/*****************************************************************************
* File: SPPIO_bridge.c
*
* Description:
*
* External Entity: 'PIO_2' (SPPIO)
****************************************************************************/
#include "e_mechs.h"
#include "e_events.h"
#include "A_objects.h"
#include "A_enums.h"
#include "A_CAR_object.h"
#include "A_CAR_events.h"
#include "A_SP_object.h"
#include "A_SP_events.h"
#include "SPPIO_bridge.h"
/* Dummy up instance handle for event generation. */
static Escher_InstanceHandle_t self = &self;
/*****************************************************************************
* Bridge: raise_needle
****************************************************************************/
unsigned char
SPPIO_raise_needle(
const int ee_probe_id,
const int ee_radial_position,
const int ee_theta_offset )
{
unsigned char result = 0;
/* Replace the following instructions with your specific code. */
{
A_SP_s * v2; /* probe */
/* SELECT ANY probe FROM INSTANCES OF SP
WHERE SELECTED.probe_ID == PARAM.probe_id */
v2 = (A_SP_s *)0;
{ /* Begin selection scope */
A_SP_s * w1;
Escher_Iterator_s iter3_SP;
Escher_IteratorReset( &iter3_SP, pG_A_SP_extent );
while ( (w1 = (A_SP_s *)Escher_IteratorNext( &iter3_SP )) != 0 )
{
if ( w1->m_probe_ID == ee_probe_id )
{
v2 = w1;
break;
}
}
} /* End selection scope */
/* GENERATE SP3:'probe_in_position'(altitude:'up') TO probe */
{
A_SP_Event3_s * event4 = (A_SP_Event3_s *) Escher_NewOoaEvent( (void *) v2, &A_SP_Event3_sc );
event4->m_altitude = A_position_up_e;
SetEventSendingInstance( event4, self );
Escher_SendEvent( (OoaEvent_t *)event4 );
}
return A_position_up_e;
}
return result;
}
/*****************************************************************************
* Bridge: lower_needle
****************************************************************************/
unsigned char
SPPIO_lower_needle(
const int ee_probe_id,
const int ee_radial_position,
const int ee_theta_offset )
{
unsigned char result = 0;
/* Replace the following instructions with your specific code. */
{
A_SP_s * v6; /* probe */
/* SELECT ANY probe FROM INSTANCES OF SP
WHERE SELECTED.probe_ID == PARAM.probe_id */
v6 = (A_SP_s *)0;
{ /* Begin selection scope */
A_SP_s * w5;
Escher_Iterator_s iter7_SP;
Escher_IteratorReset( &iter7_SP, pG_A_SP_extent );
while ( (w5 = (A_SP_s *)Escher_IteratorNext( &iter7_SP )) != 0 )
{
if ( w5->m_probe_ID == ee_probe_id )
{
v6 = w5;
break;
}
}
} /* End selection scope */
/* GENERATE SP3:'probe_in_position'(altitude:'down') TO probe */
{
A_SP_Event3_s * event8 = (A_SP_Event3_s *) Escher_NewOoaEvent( (void *) v6, &A_SP_Event3_sc );
event8->m_altitude = A_position_down_e;
SetEventSendingInstance( event8, self );
Escher_SendEvent( (OoaEvent_t *)event8 );
}
return A_position_down_e;
}
return result;
}