#pragma once #include "vtvsub.h" //########################################################################## //#################### Subsystem::SubsystemResource ################## //########################################################################## struct VTVPower__SubsystemResource: public Subsystem::SubsystemResource { Scalar maxAcceleration; }; //########################################################################## //############################ VTVPower ############################## //########################################################################## class VTVPower: public Subsystem { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Shared Data support // public: static Derivation *GetClassDerivations(); static SharedData DefaultData; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Message Support // #if 0 private: static const HandlerEntry MessageHandlerEntries[]; protected: static MessageHandlerSet MessageHandlers; #endif //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Attribute Support // public: enum { MaxAccelerationOutputAttributeID = Subsystem::NextAttributeID, NextAttributeID }; private: static const IndexEntry AttributePointers[]; protected: //static AttributeIndexSet AttributeIndex static AttributeIndexSet& GetAttributeIndex(); // // public attribute declarations go here // public: Scalar maxAccelerationOutput; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Model Support // public: typedef void (VTVPower::*Performance)(Scalar time_slice); void PowerSimulation(Scalar time_slice); void SetPerformance(Performance performance) { Check(this); activePerformance = (Simulation::Performance)performance; } VTV* GetEntity() {Check(this); return Cast_Object(VTV*, Subsystem::GetEntity());} //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Construction and Destruction // public: typedef VTVPower__SubsystemResource SubsystemResource; VTVPower( VTV *owner, int subsystem_ID, SubsystemResource *subsystem ); ~VTVPower(); Logical TestInstance() const; };