VR-Forces 4.0.4 Class Documentation
include/vrfmodel/detonationCtlr.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2007 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: detonationCtlr.h,v $ $Revision: 1.6 $ $State: Exp $
00007 ** Created: 7/2/07 MEM
00008 *******************************************************************************/
00009 
00012 
00015 
00016 #ifndef detonationCtlr_H_
00017 #define detonationCtlr_H_
00018 
00019 
00020 #include "vrfobjcore/singleTaskControllerComponent.h"
00021 #include "vrfutil/vlClock.h"
00022 #include <vl/hostStructs.h>
00023 #include "vrfutil/simMunition.h"
00024 #include <vlpi/disEnums.h>
00025 
00026 class DtBooleanOutputPort;
00027 class DtIntegerOutputPort;
00028 class DtDetonationControllerDescriptor;
00029 class DtWarheadDetonationActuatorPSR;
00030 class DtSensorContactListMultiInputPort;
00031 class DtObjectTypesListOutputPort;
00032 class DtSimManager;
00033 class DtSimMessage;
00034 class DtRwSensorContactInfo;
00035 
00042 #include "vrfmodel/vrfmodelDefines.h"
00043 class DT_DLL_vrfmodel DtDetonationController : public DtSingleTaskControllerComponent
00044 {
00045 
00046 public:
00047 
00050    DtDetonationController(const DtString& name, 
00051       DtVrfObject* owner,
00052       DtSimManager* simManager, 
00053       DtComponentDescriptor* desc = 0,
00054       DtReaderWriterRegistry* parentRegistry = 0);
00055 
00057    virtual ~DtDetonationController();
00058 
00062    virtual bool postAddComponentsInit();
00063 
00066    virtual DtString type() const;
00067 
00070    virtual bool init();
00071 
00075    virtual void tick();
00076 
00079    virtual bool createTriggerPort();
00080    virtual DtBooleanOutputPort * triggerPort() const;
00081 
00082    virtual bool createQuantityOutputPort();
00083    virtual DtIntegerOutputPort* quantityOutputPort() const;
00084 
00085    virtual void setDetonationTime(DtTime detTime);
00086    virtual DtTime detonationTime() const;
00087 
00091    virtual void detonate();
00092 
00095    virtual void beginSensing();
00096 
00099    virtual bool tripped(const DtRwSensorContactInfo * potentialVictim);
00100 
00102    virtual bool setMunitionToDetonate( DtSimMunition& munition );
00103 
00107    static void setDetonationCallback(DtSimMessage* msg, void* usrData);
00108 
00109    virtual void processSetDetonation(DtSimMessage* msg);
00110 
00112    static void setArmedCallback(DtSimMessage * msg, void * usr);
00113 
00114    virtual void processSetArmed(DtSimMessage* msg);
00115 
00116    static void setRestoreCallback(DtSimMessage * msg, void * usrData);
00117 
00118    virtual void processSetRestore(DtSimMessage * msg);
00119 
00121    virtual DtDetonatorFuze fuseStringToEnum(const DtString & fuseString);
00122    
00124    virtual DtString fuseStringToEnum(DtDetonatorFuze fuse);
00125 
00129    static DtSimComponent * creator(const DtString& name, 
00130       DtVrfObject* owner,
00131       DtSimManager* simManager, 
00132       DtComponentDescriptor* desc = 0,
00133       DtReaderWriterRegistry* parentRegistry = 0);
00134 
00135 protected:
00136    
00138    virtual bool createPorts();
00139 
00140    virtual bool createTypesToDetectPort();
00141 
00149    virtual void lookupAndCacheProcessSR();
00150 
00152    virtual void registerRadioMessageCallbacks();
00153    
00154 protected:
00156    DtDetonationController();
00157 
00159    DtDetonationController(const DtDetonationController & orig);
00160 
00162    const DtDetonationController & operator=(const DtDetonationController & 
00163       orig);
00164 
00165 protected:
00166 
00168 
00170 
00177    DtSensorContactListMultiInputPort* myDetectedObjectsInputPort;
00178 
00185    DtObjectTypesListOutputPort*  myTypesToDetectOutputPort;
00186 
00192    DtBooleanOutputPort *    myTriggerPort;
00193 
00200    DtIntegerOutputPort*     myQuantityOutputPort;
00201 
00203 
00205    DtSimMunition      myCurrentMunition;
00206    DtDetonatorFuze    myCurrentFuze;
00207    DtTime             myDetonationTime;
00208    bool               myAmArmed;
00209  
00210    double             myDetonationProximity;
00211 
00217    DtWarheadDetonationActuatorPSR*    myProcessState;
00218 
00219    const DtDetonationControllerDescriptor* myDetonationDescriptor;
00220    
00221    
00222    bool     myFirstTick;
00223 };
00224 
00225 #endif
00226 
00227 
00228 
00229 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)