/***************************************************************************** * File: A_ROW_object.h * * Object: row (ROW) * Subsystem: autosampler * Domain: A * Repository: as2.ooa * * Notice: * (C) Copyright 1999, 2000 ROX Software, Inc. * All rights reserved. * * Model Compiler: MC3020 V1.3.0 * * Warnings: * !!! THIS IS AN AUTO-GENERATED FILE. PLEASE DO NOT EDIT. !!! ****************************************************************************/ #ifndef A_ROW_OBJECT_H #define A_ROW_OBJECT_H #ifdef __cplusplus extern "C" { #endif #include "e_mechs.h" #include "e_events.h" #include "A_objects.h" #include "sys_user_co.h" /***************************************************************************** * Structure: A_ROW_s * Structural representation of application analysis object: * 'row' (ROW) ****************************************************************************/ struct A_ROW_s { /* Application analysis OIM attributes */ int m_radius; /* * radius */ unsigned char m_current_sampling_position; /* - current_sampling_position */ unsigned char m_next_sampling_position; /* - next_sampling_position */ unsigned char m_maximum_sampling_positions; /* - maximum_sampling_positions */ /* - carousel_ID (R1) */ /* OPTIMIZED OUT */ int m_sampling_time; /* - sampling_time */ bool m_needs_probe; /* - needs_probe */ /* Relationship storage */ A_CAR_s * mc_CAR_R1; A_PAA_s * mc_PAA_R2; /* State machine current state */ Escher_StateNumber_t mc_current_state; }; /***************************************************************************** * Object Factory/Manipulation Methods ****************************************************************************/ extern void A_ROW_FactoryInit( void ); extern A_ROW_s * A_ROW_Create( void ); /* Note: No instance deletion accessor needed */ #define A_ROW_MAX_EXTENT_SIZE 10 extern Escher_ObjectSet_s * pG_A_ROW_extent; /***************************************************************************** * Where clause instance selection against identifying attribute set(s). ****************************************************************************/ extern A_ROW_s * A_ROW_AnyWhere1( const int ); /***************************************************************************** * Object Relationship Methods ****************************************************************************/ extern void A_ROW_R1_Link( A_CAR_s *, A_ROW_s * ); /* Note: No CAR<-R1->ROW unrelate accessor needed */ /***************************************************************************** * Enumeration of state model states for object *****************************************************************************/ #define A_ROW_STATE_1 1 /* State [1]: 'idle' */ #define A_ROW_STATE_2 2 /* State [2]: 'waiting' */ #define A_ROW_STATE_3 3 /* State [3]: 'positioning' */ #define A_ROW_STATE_4 4 /* State [4]: 'sampling' */ #define A_ROW_STATE_5 5 /* State [5]: 'checking' */ /***************************************************************************** * Enumeration of state model event numbers *****************************************************************************/ #define A_ROW_EVENT_ROW1 0 /* 'probe_request' */ #define A_ROW_EVENT_ROW2 1 /* 'probe_assigned' */ #define A_ROW_EVENT_ROW3 2 /* 'carousel_move_complete' */ #define A_ROW_EVENT_ROW4 3 /* 'sample_complete' */ #define A_ROW_EVENT_ROW5 4 /* 'next_sample' */ #define A_ROW_EVENT_ROW6 5 /* 'sampling_complete' */ /***************************************************************************** * State Action Methods ****************************************************************************/ extern void A_ROW_Action_1( A_ROW_s *, const OoaEvent_t * const ); extern void A_ROW_Action_2( A_ROW_s *, const OoaEvent_t * const ); extern void A_ROW_Action_3( A_ROW_s *, const OoaEvent_t * const ); extern void A_ROW_Action_4( A_ROW_s *, const OoaEvent_t * const ); extern void A_ROW_Action_5( A_ROW_s *, const OoaEvent_t * const ); extern void A_ROW_Dispatch( const OoaEvent_t * const ); #ifdef __cplusplus } #endif #endif /* A_ROW_OBJECT_H */