00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00029 #ifndef SUBSYSTEMS_H
00030 #define SUBSYSTEMS_H
00031
00032
00033 #include "FlyLegacy.h"
00034 #include <vector>
00035 #include <map>
00036
00037
00038
00039
00040
00041 #define SUBSYSTEM_BASE ('subs') // CSubsystem
00042 #define SUBSYSTEM_DEPENDENT ('dpnd') // CDependent
00043 #define SUBSYSTEM_ANNOUNCEMENT ('annc') // CAnnouncement
00044 #define SUBSYSTEM_GENERIC_MONITOR ('genM') // CGenericMonitor
00045 #define SUBSYSTEM_GENERIC_INDICATOR ('genI') // CGenericIndicator
00046 #define SUBSYSTEM_HISTORY ('hist') // CHistory
00047 #define SUBSYSTEM_PNEUMATIC_PUMP ('pnup') // CPneumaticPump
00048 #define SUBSYSTEM_EMERGENCY_LOCATOR ('elts') // CEmergencyLocator
00049 #define SUBSYSTEM_EXTERIOR_LIGHT ('bulb') // CExteriorLight
00050 #define SUBSYSTEM_PITOT_STATIC_SWITCH ('pssw') // CPitotStaticSwitch
00051 #define SUBSYSTEM_PITOT_HEAT_SWITCH ('phsw') // CPitotHeatSwitch
00052 #define SUBSYSTEM_STATIC_SOURCE_SWITCH ('sssw') // CStaticSourceSwitch
00053 #define SUBSYSTEM_ANNUNCIATOR_LIGHT ('anlt') // CAnnunciatorLight
00054 #define SUBSYSTEM_STALL_WARNING ('stal') // CStallWarning
00055 #define SUBSYSTEM_LIGHT_SETTING_STATE ('lsst') // CLightSettingState
00056 #define SUBSYSTEM_SWITCH_SET ('swst') // CSwitchSet
00057 #define SUBSYSTEM_ROTARY_IGNITION_SWITCH ('rign') // CRotaryIgnitionSwitch
00058 #define SUBSYSTEM_BATTERY ('batt') // CBattery
00059 #define SUBSYSTEM_ALTERNATOR ('natr') // CAlternator
00060
00061
00062
00063
00064 #define SUBSYSTEM_PITOT_STATIC_SUBS ('psss') // CPitotStaticSubsystem
00065 #define SUBSYSTEM_ALTIMETER ('ALTI') // CAltimeter
00066 #define SUBSYSTEM_VERTICAL_SPEED ('VSI_') // CVerticalSpeedIndicator
00067 #define SUBSYSTEM_AIRSPEED ('SPED') // CAirspeedIndicator
00068 #define SUBSYSTEM_PNEUMATIC ('pnus') // CPneumaticSubsystem
00069 #define SUBSYSTEM_ATTITUDE ('ATTI') // CAttitudeIndicator
00070 #define SUBSYSTEM_DIRECTIONAL_GYRO ('GYRO') // CDirectionalGyro
00071 #define SUBSYSTEM_VACUUM_INDICATOR ('vaci') // CVacuumIndicator
00072 #define SUBSYSTEM_TURN_COORDINATOR ('TURN') // CTurnCoordinator
00073 #define SUBSYSTEM_MAGNETIC_COMPASS ('mcmp') // CMagneticCompass
00074 #define SUBSYSTEM_NAVIGATION ('navg') // CNavigation
00075 #define SUBSYSTEM_DIGITAL_CLOCK_OAT ('doat') // CDigitalClockOAT
00076 #define SUBSYSTEM_KAP140_PANEL ('K140') // CBKKAP140Panel
00077 #define SUBSYSTEM_MARKER_PANEL ('mark') // CMarkerPanel
00078 #define SUBSYSTEM_AMMETER ('amps') // CAmmeter
00079
00080
00081
00082
00083 #define SUBSYSTEM_ENGINE_SUBSYSTEM ('esub') // CEngineSubsystem
00084 #define SUBSYSTEM_TACHOMETER ('TACH') // CTachometer
00085 #define SUBSYSTEM_OIL_TEMPERATURE ('oilT') // COilTemperature
00086 #define SUBSYSTEM_OIL_PRESSURE ('oilP') // COilPressure
00087 #define SUBSYSTEM_EXHAUST_GAS_TEMPERATURE ('eEGT') // CExhaustGasTemperature
00088 #define SUBSYSTEM_MANIFOLD_PRESSURE ('eMAP') // CManifoldPressure
00089 #define SUBSYSTEM_HOBBS_METER ('hobs') // CHobbsMeter
00090 #define SUBSYSTEM_TACHOMETER_TIMER ('takt') // CTachometerTimer
00091
00092
00093
00094
00095 #define SUBSYSTEM_BASE_CONTROL ('CONT') // CBaseControl
00096 #define SUBSYSTEM_THROTTLE_CONTROL ('THRO') // CThrottleControl
00097 #define SUBSYSTEM_MIXTURE_CONTROL ('MIXT') // CMixtureControl
00098 #define SUBSYSTEM_STEERING_CONTROL ('ster') // CSteeringControl
00099 #define SUBSYSTEM_FLAP_CONTROL ('flap') // CFlapControl
00100 #define SUBSYSTEM_ELEVATOR_CONTROL ('elvr') // CElevatorControl
00101 #define SUBSYSTEM_AILERON_CONTROL ('ailr') // CAileronControl
00102 #define SUBSYSTEM_RUDDER_CONTROL ('rudr') // CRudderControl
00103 #define SUBSYSTEM_ELEVATOR_TRIM_CONTROL ('etrm') // CElevatorTrimControl
00104 #define SUBSYSTEM_AILERON_TRIM_CONTROL ('atrm') // CAileronTrimControl
00105 #define SUBSYSTEM_RUDDER_TRIM_CONTROL ('rtrm') // CRudderTrimControl
00106 #define SUBSYSTEM_BRAKE_CONTROL ('brak') // CBrakeControl
00107
00108
00109
00110
00111 #define SUBSYSTEM_RADIO ('rado') // CRadio
00112 #define SUBSYSTEM_NAV_RADIO ('navi') // CNavRadio
00113 #define SUBSYSTEM_RNAV_RADIO ('rnav') // CRnavRadio
00114 #define SUBSYSTEM_COMM_RADIO ('comm') // CCommRadio
00115 #define SUBSYSTEM_HF_COMM_RADIO ('hifr') // CHFCommRadio
00116 #define SUBSYSTEM_TRANSPONDER_RADIO ('xpdr') // CTransponderRadio
00117 #define SUBSYSTEM_ADF_RADIO ('adfr') // CADFRadio
00118 #define SUBSYSTEM_KLN89_GPS_RADIO ('gpsr') // CBKKLN89GPSRadio
00119 #define SUBSYSTEM_KX155_RADIO ('kx15') // CBKKX155Radio
00120 #define SUBSYSTEM_KT76_RADIO ('kt76') // CBKKT76Radio
00121 #define SUBSYSTEM_AUDIO_PANEL_RADIO ('adio') // CAudioPanelRadio
00122 #define SUBSYSTEM_KAP140_RADIO ('ka14') // CBKKAP140Radio
00123
00124
00125
00126
00127 #define SUBSYSTEM_FUEL_SUBSYSTEM ('fSub') // CFuelSubsystem
00128 #define SUBSYSTEM_FUEL_TAP ('fTap') // CFuelTap
00129 #define SUBSYSTEM_FUEL_CELL ('fCel') // CFuelCell
00130 #define SUBSYSTEM_FUEL_HEATER ('fHtr') // CFuelHeater
00131 #define SUBSYSTEM_FUEL_MATH ('fMat') // CFuelMath
00132 #define SUBSYSTEM_FUEL_PUMP ('fPmp') // CFuelPump
00133 #define SUBSYSTEM_FUEL_SOURCE ('fsrc') // CFuelSource
00134 #define SUBSYSTEM_FUEL_TANK ('ftnk') // CFuelTank
00135
00136
00137
00138
00139 #define SUBSYSTEM_ENGINE_GAUGE ('egag') // CEngineGauge
00140 #define SUBSYSTEM_ON_GROUND_MONITOR ('ognd') // COnGroundMonitor
00141 #define SUBSYSTEM_ALTITUDE_MONITOR ('altm') // CAltitudeMonitor
00142 #define SUBSYSTEM_SPEED_MONITOR ('spdm') // CSpeedMonitor
00143 #define SUBSYSTEM_ENGINE_STATUS ('ests') // CEngineStatus
00144 #define SUBSYSTEM_TIME_DELAY ('tdla') // CTimeDelay
00145 #define SUBSYSTEM_KEYED_SYSTEM ('keyd') // CKeyedSystem
00146 #define SUBSYSTEM_TACHOMETER_V1 ('tach') // CTachometerV1
00147 #define SUBSYSTEM_THROTTLE_CONTROL_V1 ('thro') // CThrottleV1
00148 #define SUBSYSTEM_MIXTURE_CONTROL_V1 ('mixt') // CMixtureControlV1
00149 #define SUBSYSTEM_PROPELLER_CONTROL_V1 ('blad') // CPropellerControlV1
00150 #define SUBSYSTEM_PRIME_CONTROL_V1 ('prim') // CPrimeControlV1
00151 #define SUBSYSTEM_ENGINE_ANTI_ICE_V1 ('carb') // CEngineAntiIceV1
00152 #define SUBSYSTEM_IDLE_CONTROL_V1 ('idle') // CIdleControlV1
00153 #define SUBSYSTEM_ALTIMETER_V1 ('alti') // CAltimeterV1
00154 #define SUBSYSTEM_VERTICAL_SPEED_V1 ('vsi_') // CVerticalSpeedIndicatorV1
00155 #define SUBSYSTEM_AIRSPEED_V1 ('sped') // CAirspeedIndicatorV1
00156 #define SUBSYSTEM_ATTITUDE_V1 ('atti') // CAttitudeIndicatorV1
00157 #define SUBSYSTEM_DIRECTIONAL_GYRO_V1 ('gyro') // CDirectionalGyroV1
00158 #define SUBSYSTEM_TURN_COORDINATOR_V1 ('turn') // CTurnCoordinatorV1
00159 #define SUBSYSTEM_AUDIO_PANEL_V1 ('audp') // CAudioPanelV1
00160 #define SUBSYSTEM_STARTER_CONTROL ('strt') // CStarterControl
00161 #define SUBSYSTEM_MAGNETO_CONTROL ('neto') // CMagnetoControl
00162 #define SUBSYSTEM_VOLTMETER ('volt') // CVoltmeter
00163 #define SUBSYSTEM_GENERATOR ('genr') // CGenerator
00164 #define SUBSYSTEM_FREQUENCY_METER ('freq') // CFrequencyMEter
00165 #define SUBSYSTEM_INVERTER ('nvrt') // CInverter
00166 #define SUBSYSTEM_FUEL_GAUGE ('fgag') // CFuelGauge
00167 #define SUBSYSTEM_GEAR_CONTROL ('gear') // CGearControl
00168 #define SUBSYSTEM_PROPELLER_CONTROL ('BLAD') // CPropellerControl
00169 #define SUBSYSTEM_PRIME_CONTROL ('PRIM') // CPrimeControl
00170 #define SUBSYSTEM_AUDIO_PANEL ('AUDP') // CAudioPanel
00171 #define SUBSYSTEM_ENGINE_ANTI_ICE ('CARB') // CEngineAntiIce
00172 #define SUBSYSTEM_IDLE_CONTROL ('IDLE') // CIdleControl
00173 #define SUBSYSTEM_HIGH_LIFT_CONTROL ('hild') // CHighLiftControl
00174 #define SUBSYSTEM_FUEL_FLOW_GAUGE ('fflw') // CFuelFlowGauge
00175 #define SUBSYSTEM_FUEL_PRESSURE_GAUGE ('fprs') // CFuelPressureGauge
00176 #define SUBSYSTEM_SUCTION_GAUGE ('suct') // CSuctionGauge
00177 #define SUBSYSTEM_FLAP_GAUGE ('flpg') // CFlapGauge
00178 #define SUBSYSTEM_ANNUNCIATOR ('annr') // CAnnunciator
00179 #define SUBSYSTEM_PRESSURIZATION ('pzat') // CPressurization
00180 #define SUBSYSTEM_N1_TACHOMETER ('_N1_') // CN1Tachometer
00181 #define SUBSYSTEM_N2_TACHOMETER ('_N2_') // CN2Tachometer
00182 #define SUBSYSTEM_TORQUE_METER ('torq') // CTorqueMEter
00183 #define SUBSYSTEM_DME_PANEL ('dmep') // CDMEPanel
00184 #define SUBSYSTEM_DME_PANEL_1 ('dme2') // CDMEPanel2
00185 #define SUBSYSTEM_WEATHER_RADAR ('wrdr') // CWeatherRadar
00186 #define SUBSYSTEM_INDICATOR_SET ('inds') // CIndicatorSet
00187 #define SUBSYSTEM_CONTACTOR ('cntr') // CContactor
00188 #define SUBSYSTEM_FLASHER ('flsh') // CFlasher
00189 #define SUBSYSTEM_FAST_SLOW_METER ('fosm') // CFastSlowMEter
00190 #define SUBSYSTEM_CYLINDER_HEAD_TEMP_GAUGE ('eCHT') // CCylinderHeadTempGauge
00191 #define SUBSYSTEM_ITT_GAUGE ('eITT') // CInterturbineTempGauge
00192 #define SUBSYSTEM_ACCELEROMETER ('acel') // CAccelerometer
00193 #define SUBSYSTEM_TCAS_PANEL ('tcas') // CTCASPanel
00194 #define SUBSYSTEM_GEAR_LIGHT ('grlt') // CGearLight
00195 #define SUBSYSTEM_FUEL_PUMP_CONTROL ('fpsw') // CFuelPumpControl
00196 #define SUBSYSTEM_GEAR_WARNING ('grwn') // CGearWarning
00197 #define SUBSYSTEM_SYNCHROPHASER ('sync') // CSynchrophaser
00198 #define SUBSYSTEM_SURFACE_DEICE ('sdic') // CSurfaceDeice
00199 #define SUBSYSTEM_PROPELLER_DEICE ('pdic') // CPropellerDeice
00200 #define SUBSYSTEM_CROSSFEED_CONTROL ('xfed') // CCrossfeedControl
00201 #define SUBSYSTEM_OXYGEN ('oxyg') // COxygen
00202 #define SUBSYSTEM_STARTER_IGNITER ('StIg') // CStarterIgniter
00203 #define SUBSYSTEM_ENGINE_MONITOR ('eMnr') // CEngineMonitor
00204 #define SUBSYSTEM_FIRE_SYSTEM ('fire') // CFireSystem
00205 #define SUBSYSTEM_FUEL_IMBALANCE ('fimb') // CFuelImbalance
00206 #define SUBSYSTEM_COWL_FLAP ('cowl') // CCowlFlap
00207 #define SUBSYSTEM_TEMP_CONTROL ('temp') // CTempControl
00208 #define SUBSYSTEM_WIPER_CONTROL ('wipe') // CWiperControl
00209 #define SUBSYSTEM_AIR_BRAKE_CONTROL ('abrk') // CAirbrakeControl
00210 #define SUBSYSTEM_THRUST_REVERSE_CONTROL ('trev') // CThrustReverseControl
00211 #define SUBSYSTEM_PERFORMANCE_RESERVE ('aprs') // CPerformanceReserve
00212 #define SUBSYSTEM_RUDDER_BIAS ('rbia') // CRudderBias
00213 #define SUBSYSTEM_STALL_IDENT ('stlI') // CStallIdent
00214 #define SUBSYSTEM_IGNITER_CONTROL ('ignc') // CIgniterControl
00215 #define SUBSYSTEM_WING_DEICE ('wdic') // CWingDeice
00216 #define SUBSYSTEM_TEMP_AIRSPEED_DISPLAY ('tasd') // CTemperatureAirspeedDisplay
00217 #define SUBSYSTEM_COLLINS_PFD ('cpfd') // CCollinsPFD
00218 #define SUBSYSTEM_COLLINS_ND ('cnvd') // CCollinsND
00219 #define SUBSYSTEM_COLLINS_AD ('cadd') // CCollinsAD
00220 #define SUBSYSTEM_COLLINS_MND ('cmnd') // CCollinsMND
00221 #define SUBSYSTEM_COLLINS_RTU ('crtu') // CCollinsRTU
00222 #define SUBSYSTEM_PILATUS_PFD ('ppfd') // CPilatusPFD
00223 #define SUBSYSTEM_VIRTUAL_GPS ('vgps') // CVirtualGPS
00224 #define SUBSYSTEM_ROTOR ('rtrs') // CRotorSubsystem
00225 #define SUBSYSTEM_407_DIGITAL_INDICATORS ('x407') // C407DigitalIndicators
00226 #define SUBSYSTEM_HOOK ('hook') // CHookControl
00227 #define SUBSYSTEM_THRUST_PITCH_CONTROL ('tvpc') // CThrustPitchControl
00228 #define SUBSYSTEM_LON_CYCLIC_CONTROL ('zCyc') // CLonCyclicControl
00229 #define SUBSYSTEM_LAT_CYCLIC_CONTROL ('xCyc') // CLatCyclicControl
00230 #define SUBSYSTEM_TAIL_ROTOR_CONTROL ('tRtr') // CTailRotorControl
00231 #define SUBSYSTEM_COLLECTIVE_CONTROL ('coll') // CCollectiveControl
00232 #define SUBSYSTEM_LON_CYCLIC_TRIM_CONTROL ('zCyt') // CLonCyclicTrimControl
00233 #define SUBSYSTEM_LAT_CYCLIC_TRIM_CONTROL ('xCyt') // CLatCyclicTrimControl
00234 #define SUBSYSTEM_TAIL_ROTOR_TRIM_CONTROL ('tRtt') // CTailRotorTrimControl
00235 #define SUBSYSTEM_COLLECTIVE_TRIM_CONTROL ('tCol') // CCollectiveTrimControl
00236 #define SUBSYSTEM_AIR_MODEL ('airS') // CAirModel
00237 #define SUBSYSTEM_MIXER_MODEL ('mixr') // CMixerModel
00238 #define SUBSYSTEM_WHEEL_MODEL ('whls') // CWheelModel
00239 #define SUBSYSTEM_ENGINE_MODEL ('ngns') // CEngineModel
00240 #define SUBSYSTEM_WING_MODEL ('wngs') // CWingModel
00241 #define SUBSYSTEM_AUTOPILOT_MASTER_PANEL ('MrAp') // CAutopilotMasterPanel
00242 #define SUBSYSTEM_AUTOPILOT_PANEL ('appl') // CAutopilotPanel
00243 #define SUBSYSTEM_K150_PANEL ('K150') // CKAP150Panel
00244 #define SUBSYSTEM_K200_PANEL ('K200') // CKAP200Panel
00245 #define SUBSYSTEM_AFCS65_PANEL ('C065') // CAFCS65Panel
00246 #define SUBSYSTEM_AFCS85_PANEL ('C085') // CAFCS85Panel
00247 #define SUBSYSTEM_UNIVERSAL_FMS ('ufms') // CFMSys
00248 #define SUBSYSTEM_ENGINE_FUEL_PUMP ('edfp') // CEngineFuelPump
00249 #define SUBSYSTEM_FUEL_MANAGEMENT ('fmnt') // CFuelManagement
00250 #define SUBSYSTEM_APU_FUEL_SOURCE ('fAPU') // CAPUFuelSource
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268 typedef enum {
00269 INDN_NONE,
00270 INDN_LINEAR,
00271 INDN_EXPONENTIAL
00272 } EIndicationMode;
00273
00274 typedef enum {
00275 EVAL_UNKNOWN,
00276 EVAL_INPROGRESS,
00277 EVAL_COMPLETE
00278 } EEvalState;
00279
00280
00281 class CSubsystem : public CStreamObject {
00282 public:
00283 CSubsystem (void);
00284 virtual ~CSubsystem (void);
00285
00286
00287 virtual int Read (SStream *stream, Tag tag);
00288 virtual void ReadFinished (void);
00289 virtual void Write (SStream *stream);
00290
00291
00292 void TypeIs (Tag t);
00293 bool IsType (Tag t);
00294 void Alias (Tag tag, Tag alias);
00295 bool MsgForMe (SMessage *msg);
00296
00297 virtual EMessageResult ReceiveMessage (SMessage *msg);
00298 virtual void SetGroup (int group) { gNum = group; }
00299
00300
00301 virtual void Prepare (void);
00302 virtual void TimeSlice (float dT);
00303
00304 virtual void Print (FILE *f);
00305
00306 protected:
00307
00308 Tag type;
00309 char type_string[8];
00310
00311
00312 Tag unId;
00313 char unId_string[8];
00314
00315 std::map<Tag,Tag> aliasList;
00316
00317
00318 float timK;
00319 float ratK;
00320 float indn;
00321 float indnTarget;
00322 EIndicationMode indnMode;
00323
00324
00325
00326 char fWAV[64];
00327
00328
00329 unsigned int uNum;
00330 unsigned int gNum;
00331 EMessageHWType hwId;
00332 };
00333
00334
00335 typedef enum {
00336 DEPENDENCY_AND,
00337 DEPENDENCY_OR
00338 } EDependentFunction;
00339
00340 typedef enum {
00341 POLL_NEVER,
00342 POLL_CHANGED,
00343 POLL_ALWAYS,
00344 } EDependentPolling;
00345
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366 class CDependent: public CSubsystem {
00367 public:
00368 CDependent (void);
00369 virtual ~CDependent (void);
00370
00371
00372 virtual int Read (SStream *stream, Tag tag);
00373 virtual void ReadFinished (void);
00374 virtual void Write (SStream *stream);
00375
00376
00377 virtual EMessageResult ReceiveMessage (SMessage *msg);
00378 virtual void TimeSlice (float dT);
00379 virtual void Print (FILE *f);
00380
00381
00382 void SetEvaluated (EEvalState eval);
00383 int NumDependencies (void);
00384
00385 public:
00386
00387 EEvalState evaluated;
00388
00389
00390 std::vector<SMessage> dpnd;
00391 EDependentFunction mode;
00392
00393
00394 bool stat;
00395 int st8t;
00396 float volt;
00397 float offV;
00398 float mVlt;
00399 float load;
00400 float freQ;
00401
00402
00403 bool active;
00404 int state;
00405
00406
00407 float voltage;
00408 float current;
00409 float frequency;
00410
00411
00412 SMessage pxy1;
00413 SMessage pxy0;
00414 float rise;
00415 float fall;
00416
00417
00418 SMessage mPol;
00419 bool mAll;
00420 EDependentPolling poll;
00421 };
00422
00423
00424
00425
00426
00427 class CAnnouncement : public CSubsystem {
00428 public:
00429 CAnnouncement (void);
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439 };
00440
00441
00442
00443
00444
00445 typedef enum {
00446 MONITOR_LT,
00447 MONITOR_GT,
00448 MONITOR_LE,
00449 MONITOR_GE
00450 } EMonitorMode;
00451
00452
00453
00454
00455
00456 class CGenericMonitor : public CDependent {
00457 public:
00458 CGenericMonitor (void);
00459
00460
00461 virtual int Read (SStream *stream, Tag tag);
00462
00463
00464 virtual EMessageResult ReceiveMessage (SMessage *msg);
00465 virtual void TimeSlice (float dT);
00466
00467 protected:
00468 SMessage mVal;
00469 EMonitorMode mode;
00470 float comp;
00471 };
00472
00473
00474
00475
00476
00477 class CGenericIndicator : public CDependent {
00478 public:
00479 CGenericIndicator (void);
00480
00481
00482 virtual int Read (SStream *stream, Tag tag);
00483 virtual void ReadFinished (void);
00484
00485
00486 virtual EMessageResult ReceiveMessage (SMessage *msg);
00487
00488 protected:
00489 SMessage mVal;
00490 Tag alia;
00491 };
00492
00493
00494
00495
00496
00497 class CHistory : public CDependent {
00498 public:
00499 CHistory (void);
00500
00501
00502
00503
00504 };
00505
00506
00507
00508
00509
00510
00511 class CPneumaticPump : public CDependent {
00512 public:
00513 CPneumaticPump (void);
00514
00515
00516 virtual int Read (SStream *stream, Tag tag);
00517
00518
00519 virtual EMessageResult ReceiveMessage (SMessage *msg);
00520
00521 protected:
00522 float suct;
00523 };
00524
00525
00526
00527
00528
00529 class CEmergencyLocator : public CDependent {
00530 public:
00531 CEmergencyLocator (void);
00532
00533
00534 virtual int Read (SStream *stream, Tag tag);
00535
00536
00537
00538 protected:
00539 float gLim;
00540 };
00541
00542
00543
00544
00545
00546 class CExteriorLight : public CDependent {
00547 public:
00548 CExteriorLight (void);
00549
00550
00551 virtual int Read (SStream *stream, Tag tag);
00552
00553
00554
00555 protected:
00556 Tag LMid;
00557 };
00558
00559
00560
00561
00562
00563 class CPitotStaticSwitch : public CDependent {
00564 public:
00565 CPitotStaticSwitch (void);
00566 virtual ~CPitotStaticSwitch (void);
00567
00568
00569 virtual int Read (SStream *stream, Tag tag);
00570
00571
00572
00573 protected:
00574 int nSystems;
00575 int *system;
00576 };
00577
00578
00579
00580
00581
00582 class CPitotHeatSwitch : public CPitotStaticSwitch {
00583 public:
00584 CPitotHeatSwitch (void);
00585
00586
00587
00588
00589
00590 protected:
00591 };
00592
00593
00594
00595
00596
00597 class CStaticSourceSwitch : public CPitotStaticSwitch {
00598 public:
00599 CStaticSourceSwitch (void);
00600
00601
00602
00603
00604
00605 protected:
00606 };
00607
00608
00609
00610
00611
00612 class CAnnunciatorLight : public CDependent {
00613 public:
00614 CAnnunciatorLight (void);
00615
00616
00617 virtual int Read (SStream *stream, Tag tag);
00618
00619
00620
00621 protected:
00622 float blnk;
00623 float blpp;
00624 };
00625
00626
00627
00628
00629
00630 class CStallWarning : public CDependent {
00631 public:
00632 CStallWarning (void);
00633
00634
00635 virtual int Read (SStream *stream, Tag tag);
00636
00637
00638
00639 protected:
00640 char wing[64];
00641 };
00642
00643
00644
00645
00646
00647 class CLightSettingState : public CDependent {
00648 public:
00649 CLightSettingState (void);
00650
00651
00652 virtual int Read (SStream *stream, Tag tag);
00653
00654
00655
00656 protected:
00657 float levl;
00658 };
00659
00660
00661
00662
00663
00664 class CSwitchSet : public CDependent {
00665 public:
00666 CSwitchSet (void);
00667 virtual ~CSwitchSet (void);
00668
00669
00670 virtual int Read (SStream *stream, Tag tag);
00671
00672
00673
00674 protected:
00675 std::vector<SMessage> smsg;
00676
00677 bool sync;
00678 bool LAND;
00679 bool TAXI;
00680 bool NAVI;
00681 };
00682
00683
00684
00685
00686
00687 class CRotaryIgnitionSwitch : public CDependent {
00688 public:
00689 CRotaryIgnitionSwitch (void);
00690
00691
00692
00693
00694
00695 protected:
00696 };
00697
00698
00699
00700
00701
00702 class CBattery : public CDependent {
00703 public:
00704 CBattery (void);
00705
00706
00707 virtual int Read (SStream *stream, Tag tag);
00708
00709
00710
00711 protected:
00712 float life;
00713 };
00714
00715
00716
00717
00718
00719 class CAlternator : public CDependent {
00720 public:
00721 CAlternator (void);
00722
00723
00724 virtual int Read (SStream *stream, Tag tag);
00725
00726
00727 EMessageResult ReceiveMessage (SMessage *msg);
00728
00729 protected:
00730 float mxld;
00731 float loRg;
00732 };
00733
00734
00735
00736
00737
00738
00739
00740
00741
00742
00743
00744
00745 class CPitotStaticSubsystem : public CDependent {
00746 public:
00747 CPitotStaticSubsystem (void);
00748
00749
00750 virtual int Read (SStream *stream, Tag tag);
00751
00752
00753
00754
00755
00756 protected:
00757 int gNum;
00758 };
00759
00760
00761
00762
00763
00764 class CAltimeter : public CPitotStaticSubsystem {
00765 public:
00766 CAltimeter (void);
00767
00768
00769 virtual int Read (SStream *stream, Tag tag);
00770
00771
00772
00773 virtual EMessageResult ReceiveMessage (SMessage *msg);
00774
00775 protected:
00776 };
00777
00778
00779
00780
00781
00782 class CVerticalSpeedIndicator : public CPitotStaticSubsystem {
00783 public:
00784 CVerticalSpeedIndicator (void);
00785
00786
00787 virtual int Read (SStream *stream, Tag tag);
00788
00789
00790
00791 virtual EMessageResult ReceiveMessage (SMessage *msg);
00792
00793 protected:
00794 };
00795
00796
00797
00798
00799
00800 class CAirspeedIndicator : public CPitotStaticSubsystem {
00801 public:
00802 CAirspeedIndicator (void);
00803
00804
00805 virtual int Read (SStream *stream, Tag tag);
00806
00807
00808
00809 virtual EMessageResult ReceiveMessage (SMessage *msg);
00810
00811 protected:
00812 };
00813
00814
00815
00816
00817
00818
00819
00820
00821 class CPneumaticSubsystem : public CDependent {
00822 public:
00823 CPneumaticSubsystem (void);
00824 virtual ~CPneumaticSubsystem (void);
00825
00826
00827 virtual int Read (SStream *stream, Tag tag);
00828
00829
00830
00831
00832
00833 protected:
00834 std::vector<SMessage> mPmp;
00835 };
00836
00837
00838
00839
00840
00841 class CAttitudeIndicator : public CPneumaticSubsystem {
00842 public:
00843 CAttitudeIndicator (void);
00844
00845
00846 virtual int Read (SStream *stream, Tag tag);
00847
00848
00849
00850 virtual EMessageResult ReceiveMessage (SMessage *msg);
00851
00852 protected:
00853 float prat;
00854 };
00855
00856
00857
00858
00859
00860 class CDirectionalGyro : public CPneumaticSubsystem {
00861 public:
00862 CDirectionalGyro (void);
00863
00864
00865 virtual int Read (SStream *stream, Tag tag);
00866
00867
00868
00869 virtual EMessageResult ReceiveMessage (SMessage *msg);
00870
00871 protected:
00872 float step;
00873 };
00874
00875
00876
00877
00878
00879 class CVacuumIndicator : public CPneumaticSubsystem {
00880 public:
00881 CVacuumIndicator (void);
00882
00883
00884 virtual int Read (SStream *stream, Tag tag);
00885
00886
00887
00888
00889
00890 protected:
00891 };
00892
00893
00894
00895
00896
00897 class CTurnCoordinator : public CDependent {
00898 public:
00899 CTurnCoordinator (void);
00900
00901
00902 virtual int Read (SStream *stream, Tag tag);
00903
00904
00905
00906
00907
00908 protected:
00909 float tilt;
00910 };
00911
00912
00913
00914
00915
00916 class CMagneticCompass : public CDependent {
00917 public:
00918 CMagneticCompass (void);
00919
00920
00921
00922
00923 };
00924
00925
00926
00927
00928
00929 class CNavigation : public CDependent {
00930 public:
00931 CNavigation (void);
00932
00933
00934
00935
00936 };
00937
00938
00939
00940
00941
00942 class CDigitalClockOAT : public CDependent {
00943 public:
00944 CDigitalClockOAT (void);
00945
00946
00947
00948
00949
00950 protected:
00951 };
00952
00953
00954
00955
00956
00957 class CBKKAP140Panel : public CDependent {
00958 public:
00959 CBKKAP140Panel (void);
00960
00961
00962 virtual int Read (SStream *stream, Tag tag);
00963
00964
00965
00966 protected:
00967
00968 SMessage gyro;
00969 SMessage nav1;
00970 };
00971
00972
00973
00974
00975
00976 class CMarkerPanel : public CDependent {
00977 public:
00978 CMarkerPanel (void);
00979
00980
00981
00982
00983
00984 protected:
00985 };
00986
00987
00988
00989
00990
00991 class CAmmeter : public CDependent {
00992 public:
00993 CAmmeter (void);
00994
00995
00996 virtual int Read (SStream *stream, Tag tag);
00997
00998
00999
01000 protected:
01001 bool chrg;
01002 SMessage mMon;
01003 };
01004
01005
01006
01007
01008
01009
01010
01011
01012
01013 class CSteeringControl : public CDependent {
01014 public:
01015 CSteeringControl (void);
01016
01017
01018
01019
01020
01021 protected:
01022 };
01023
01024
01025
01026
01027
01028
01029
01030
01031 class CEngineSubsystem : public CDependent {
01032 public:
01033 CEngineSubsystem (void);
01034
01035
01036 virtual int Read (SStream *stream, Tag tag);
01037
01038
01039
01040 protected:
01041 unsigned int eNum;
01042 };
01043
01044
01045
01046
01047
01048 class CTachometer : public CEngineSubsystem {
01049 public:
01050 CTachometer (void);
01051
01052
01053
01054
01055
01056 protected:
01057 };
01058
01059
01060
01061
01062
01063 class COilTemperature : public CEngineSubsystem {
01064 public:
01065 COilTemperature (void);
01066
01067
01068
01069
01070 };
01071
01072
01073
01074
01075
01076 class COilPressure : public CEngineSubsystem {
01077 public:
01078 COilPressure (void);
01079
01080
01081 virtual int Read (SStream *stream, Tag tag);
01082
01083
01084
01085 protected:
01086 float lowP;
01087 };
01088
01089
01090
01091
01092
01093 class CExhaustGasTemperature : public CEngineSubsystem {
01094 public:
01095 CExhaustGasTemperature (void);
01096
01097
01098
01099
01100 };
01101
01102
01103
01104
01105
01106 class CManifoldPressure : public CEngineSubsystem {
01107 public:
01108 CManifoldPressure (void);
01109
01110
01111
01112
01113 };
01114
01115
01116
01117
01118
01119 class CHobbsMeter : public CEngineSubsystem {
01120 public:
01121 CHobbsMeter (void);
01122
01123
01124
01125
01126 };
01127
01128
01129
01130
01131
01132 class CTachometerTimer : public CEngineSubsystem {
01133 public:
01134 CTachometerTimer (void);
01135
01136
01137
01138
01139 };
01140
01141
01142
01143
01144
01145
01146
01147
01148
01149 class CBaseControl : public CDependent {
01150 public:
01151 CBaseControl (void);
01152
01153
01154 virtual int Read (SStream *stream, Tag tag);
01155
01156
01157
01158
01159 void Incr (void);
01160 void Decr (void);
01161
01162 protected:
01163 float scal;
01164 float step;
01165 float bend;
01166 float posn;
01167 };
01168
01169
01170
01171
01172
01173 class CThrottleControl : public CBaseControl {
01174 public:
01175 CThrottleControl (void);
01176
01177
01178
01179
01180
01181 protected:
01182 };
01183
01184
01185
01186
01187
01188 class CMixtureControl : public CBaseControl {
01189 public:
01190 CMixtureControl (void);
01191
01192
01193 virtual int Read (SStream *stream, Tag tag);
01194
01195
01196
01197 protected:
01198 bool autoControl;
01199 bool injd;
01200 float prmr;
01201 float prff;
01202 float plim;
01203 };
01204
01205
01206
01207
01208
01209 class CFlapControl : public CBaseControl {
01210 public:
01211 CFlapControl (void);
01212 virtual ~CFlapControl (void);
01213
01214
01215 virtual int Read (SStream *stream, Tag tag);
01216
01217
01218
01219 protected:
01220 int nPos;
01221 float *pos;
01222 int nSpeed;
01223 float *speed;
01224 };
01225
01226
01227
01228
01229
01230 class CElevatorControl : public CBaseControl {
01231 public:
01232 CElevatorControl (void);
01233
01234
01235
01236
01237
01238 protected:
01239 };
01240
01241
01242
01243
01244
01245 class CAileronControl : public CBaseControl {
01246 public:
01247 CAileronControl (void);
01248
01249
01250
01251
01252
01253 protected:
01254 };
01255
01256
01257
01258
01259
01260 class CRudderControl : public CBaseControl {
01261 public:
01262 CRudderControl (void);
01263
01264
01265
01266
01267
01268 protected:
01269 };
01270
01271
01272
01273
01274
01275 class CElevatorTrimControl : public CBaseControl {
01276 public:
01277 CElevatorTrimControl (void);
01278
01279
01280
01281
01282
01283 protected:
01284 };
01285
01286
01287
01288
01289
01290 class CAileronTrimControl : public CBaseControl {
01291 public:
01292 CAileronTrimControl (void);
01293
01294
01295
01296
01297
01298 protected:
01299 };
01300
01301
01302
01303
01304
01305 class CRudderTrimControl : public CBaseControl {
01306 public:
01307 CRudderTrimControl (void);
01308
01309
01310
01311
01312
01313 protected:
01314 };
01315
01316
01317
01318
01319
01320 class CBrakeControl : public CBaseControl {
01321 public:
01322 CBrakeControl (void);
01323
01324
01325
01326
01327
01328 protected:
01329 };
01330
01331
01332
01333
01334
01335
01336
01337
01338
01339
01340
01341 class CRadio : public CDependent {
01342 public:
01343 CRadio (void);
01344
01345
01346 virtual int Read (SStream *stream, Tag tag);
01347
01348
01349 virtual EMessageResult ReceiveMessage (SMessage *msg);
01350
01351 protected:
01352 float tune;
01353 float lfrq;
01354 float hfrq;
01355 float sinc;
01356 bool test;
01357 };
01358
01359
01360
01361
01362 class CNavRadio : public CRadio {
01363 public:
01364 CNavRadio (void);
01365 virtual ~CNavRadio (void);
01366
01367
01368 virtual int Read (SStream *stream, Tag tag);
01369
01370
01371 virtual EMessageResult ReceiveMessage (SMessage *msg);
01372 virtual void TimeSlice (float dT);
01373
01374
01375 virtual void RescanNavaids (void);
01376
01377 protected:
01378 float stby;
01379
01380 SNavaid *navaidList;
01381 float navaidTimer;
01382 int navaidFilter;
01383 SNavaid *navaidTuned;
01384
01385
01386 float navd;
01387 float navdTarget;
01388 float navdTimK;
01389 float navdRatK;
01390 };
01391
01392
01393
01394
01395
01396 class CRnavRadio : public CRadio {
01397 public:
01398 CRnavRadio (void);
01399
01400
01401
01402
01403
01404
01405 protected:
01406 };
01407
01408
01409
01410
01411
01412 class CCommRadio : public CRadio {
01413 public:
01414 CCommRadio (void);
01415
01416
01417
01418
01419
01420
01421 protected:
01422 float stby;
01423 };
01424
01425
01426
01427
01428
01429 class CHFCommRadio : public CCommRadio {
01430 public:
01431 CHFCommRadio (void);
01432
01433
01434
01435
01436
01437
01438 protected:
01439 };
01440
01441
01442
01443
01444
01445 typedef enum {
01446 XPDR_OFF = 0,
01447 XPDR_STARTUPA1 = 1,
01448 XPDR_STARTUPA2 = 2,
01449 XPDR_STANDBY = 3,
01450 XPDR_TEST = 4,
01451 XPDR_ON = 5,
01452 XPDR_ALT = 6
01453 } ETransponderMode;
01454
01455 typedef enum {
01456 XPDR_SWITCH_OFF = 0,
01457 XPDR_SWITCH_STANDBY = 3,
01458 XPDR_SWITCH_TEST = 4,
01459 XPDR_SWITCH_ON = 5,
01460 XPDR_SWITCH_ALT = 6
01461 } ETransponderSwitchMode;
01462
01463 class CTransponderRadio : public CRadio {
01464 public:
01465 CTransponderRadio (void);
01466
01467
01468 virtual int Read (SStream *stream, Tag tag);
01469
01470
01471 virtual EMessageResult ReceiveMessage (SMessage *msg);
01472 virtual void TimeSlice (float dT);
01473
01474 protected:
01475 ETransponderMode mode;
01476 ETransponderSwitchMode smod;
01477 char airc[16];
01478 int lspd;
01479 int uspd;
01480 SMessage mAlt;
01481
01482 bool prevActive;
01483 float startupTimer;
01484
01485 int code;
01486 bool reply;
01487 float replyTimer;
01488 };
01489
01490
01491
01492
01493
01494 class CADFRadio : public CNavRadio {
01495 public:
01496 CADFRadio (void);
01497
01498
01499 virtual int Read (SStream *stream, Tag tag);
01500
01501
01502 virtual EMessageResult ReceiveMessage (SMessage *msg);
01503 virtual void TimeSlice (float dT);
01504
01505
01506 void ChangeADFFrequency (float &freq, int digit, int change);
01507
01508 protected:
01509
01510 bool adf;
01511 bool frq;
01512 bool bfo;
01513 bool flt;
01514 bool et;
01515
01516
01517 bool etst;
01518 bool fltStored;
01519 bool etStored;
01520 float ftime;
01521 float etime;
01522
01523
01524 bool frct;
01525 bool tone;
01526 float volu;
01527 };
01528
01529
01530
01531
01532
01533 typedef enum {
01534 COM_MODE_NORMAL,
01535 COM_MODE_SELECT,
01536 COM_MODE_PROGRAM
01537 } EBKKX155ComMode;
01538
01539 typedef enum {
01540 NAV_MODE_STANDBY,
01541 NAV_MODE_CDI,
01542 NAV_MODE_BEARING,
01543 NAV_MODE_RADIAL,
01544 NAV_MODE_TIMER
01545 } EBKKX155NavMode;
01546
01547 class CBKKX155Radio : public CRadio {
01548 public:
01549 CBKKX155Radio (void);
01550 virtual ~CBKKX155Radio (void);
01551
01552
01553
01554
01555 virtual EMessageResult ReceiveMessage (SMessage *msg);
01556 virtual void TimeSlice (float dT);
01557
01558
01559 void RescanNavaids (void);
01560
01561 protected:
01562
01563 float comA, comS;
01564 float navA, navS;
01565 float temp;
01566
01567
01568 float comfractstep;
01569
01570
01571 float obs;
01572
01573
01574 float navd;
01575
01576
01577 EBKKX155ComMode comMode;
01578 EBKKX155NavMode navMode;
01579
01580 SNavaid *navaidList;
01581 float navaidTimer;
01582 SNavaid *navaidTuned;
01583 };
01584
01585
01586
01587
01588
01589 class CBKKT76Radio : public CTransponderRadio {
01590 public:
01591 CBKKT76Radio (void);
01592
01593
01594 virtual int Read (SStream *stream, Tag tag);
01595
01596
01597 virtual EMessageResult ReceiveMessage (SMessage *msg);
01598 virtual void TimeSlice (float dT);
01599
01600 protected:
01601 char tempCode[5];
01602 int entryDigit;
01603 bool entryMode;
01604 float entryTimer;
01605 };
01606
01607
01608
01609
01610
01611 class CBKKLN89GPSRadio : public CRadio {
01612 public:
01613 CBKKLN89GPSRadio (void);
01614
01615
01616 virtual int Read (SStream *stream, Tag tag);
01617 virtual void ReadFinished (void);
01618
01619
01620
01621
01622 protected:
01623 SMessage mFMS;
01624 SMessage mSpd;
01625 };
01626
01627
01628
01629
01630
01631 class CAudioPanelRadio : public CDependent {
01632 public:
01633 CAudioPanelRadio (void);
01634
01635
01636
01637
01638
01639
01640 protected:
01641 };
01642
01643
01644
01645
01646
01647 class CBKKAP140Radio : public CDependent {
01648 public:
01649 CBKKAP140Radio (void);
01650
01651
01652
01653
01654
01655
01656
01657
01658 protected:
01659 };
01660
01661
01662
01663
01664
01665
01666
01667
01668
01669
01670
01671
01672 class CFuelSubsystem : public CDependent {
01673 public:
01674
01675 CFuelSubsystem (void);
01676 virtual ~CFuelSubsystem (void);
01677
01678
01679 virtual int Read (SStream *stream, Tag tag);
01680
01681
01682 protected:
01683 char name[64];
01684 std::vector<Tag> pipe;
01685 };
01686
01687
01688
01689
01690 class CFuelTap : public CFuelSubsystem {
01691 public:
01692
01693 CFuelTap (void);
01694
01695
01696 virtual int Read (SStream *stream, Tag tag);
01697 virtual void ReadFinished (void);
01698
01699
01700 virtual EMessageResult ReceiveMessage (SMessage *msg);
01701
01702
01703 protected:
01704 float stff;
01705 unsigned int eNum;
01706
01707 float gph;
01708 };
01709
01710
01711
01712
01713 class CFuelCell : public CFuelSubsystem {
01714 public:
01715
01716 CFuelCell (void);
01717
01718
01719 virtual int Read (SStream *stream, Tag tag);
01720 virtual void ReadFinished (void);
01721
01722
01723 virtual EMessageResult ReceiveMessage (SMessage *msg);
01724
01725
01726 protected:
01727 float cap;
01728 float qty;
01729 SVector bPos;
01730 float basP;
01731
01732 float gals;
01733 };
01734
01735
01736
01737
01738
01739 class CFuelHeater : public CFuelSubsystem {
01740 public:
01741
01742 CFuelHeater (void);
01743
01744
01745 virtual int Read (SStream *stream, Tag tag);
01746
01747
01748 protected:
01749 };
01750
01751
01752
01753
01754
01755 class CFuelMath : public CFuelSubsystem {
01756 public:
01757
01758 CFuelMath (void);
01759
01760
01761 virtual int Read (SStream *stream, Tag tag);
01762
01763
01764 protected:
01765 };
01766
01767
01768
01769
01770
01771 class CFuelPump : public CFuelSubsystem {
01772 public:
01773
01774 CFuelPump (void);
01775
01776
01777 virtual int Read (SStream *stream, Tag tag);
01778
01779
01780 protected:
01781 float setP;
01782 bool pass;
01783 };
01784
01785
01786
01787
01788
01789 class CFuelSource : public CFuelSubsystem {
01790 public:
01791
01792 CFuelSource (void);
01793
01794
01795 virtual int Read (SStream *stream, Tag tag);
01796
01797
01798 protected:
01799 };
01800
01801
01802
01803
01804
01805 class CFuelTank : public CFuelSubsystem {
01806 public:
01807
01808 CFuelTank (void);
01809
01810
01811 virtual int Read (SStream *stream, Tag tag);
01812
01813
01814 protected:
01815 };
01816
01817
01818
01819
01820
01821 class CEngineFuelPump : public CFuelSubsystem {
01822 public:
01823
01824 CEngineFuelPump (void);
01825
01826
01827 virtual int Read (SStream *stream, Tag tag);
01828
01829
01830 protected:
01831 };
01832
01833
01834
01835
01836
01837 class CFuelManagement : public CFuelSubsystem {
01838 public:
01839
01840 CFuelManagement (void);
01841
01842
01843 virtual int Read (SStream *stream, Tag tag);
01844
01845
01846 protected:
01847 };
01848
01849
01850
01851
01852
01853 class CAPUFuelSource : public CFuelSubsystem {
01854 public:
01855
01856 CAPUFuelSource (void);
01857
01858
01859 virtual int Read (SStream *stream, Tag tag);
01860
01861
01862 protected:
01863 };
01864
01865
01866
01867
01868
01869
01870
01871
01872
01873
01874
01875
01876
01877
01878
01879
01880
01881
01882
01883
01884
01885
01886
01887
01888
01889
01890
01891
01892
01893
01894
01895
01896
01897
01898
01899
01900
01901
01902
01903
01904
01905
01906
01907
01908
01909
01910
01911
01912
01913
01914
01915
01916
01917
01918
01919
01920
01921
01922
01923
01924
01925
01926
01927
01928
01929
01930
01931
01932
01933
01934
01935
01936
01937
01938
01939
01940
01941
01942
01943
01944
01945
01946
01947
01948
01949
01950
01951
01952
01953
01954
01955
01956
01957
01958
01959
01960
01961
01962
01963
01964
01965
01966
01967
01968
01969
01970
01971
01972
01973
01974
01975
01976
01977
01978
01979
01980
01981
01982
01983
01984
01985
01986
01987
01988
01989
01990
01991
01992
01993
01994
01995
01996
01997
01998
01999
02000
02001
02002
02003
02004
02005
02006
02007
02008
02009
02010
02011
02012
02013
02014
02015
02016
02017
02018
02019
02020
02021
02022
02023
02024
02025
02026
02027
02028
02029
02030
02031
02032
02033
02034
02035
02036
02037
02038
02039
02040
02041
02042
02043
02044
02045
02046
02047
02048
02049
02050
02051
02052
02053
02054
02055
02056
02057
02058
02059
02060
02061
02062
02063
02064
02065
02066
02067
02068
02069
02070
02071
02072
02073
02074
02075
02076
02077
02078
02079
02080
02081
02082
02083
02084
02085
02086
02087
02088
02089
02090
02091
02092
02093
02094
02095
02096
02097
02098
02099
02100
02101
02102
02103
02104
02105
02106
02107
02108
02109
02110
02111
02112
02113
02114
02115
02116
02117
02118
02119
02120
02121
02122
02123
02124
02125
02126
02127
02128
02129
02130
02131
02132
02133
02134
02135
02136
02137
02138
02139
02140
02141
02142
02143
02144
02145
02146
02147
02148
02149
02150
02151
02152
02153
02154
02155
02156
02157
02158
02159
02160
02161
02162
02163
02164
02165
02166
02167
02168
02169
02170
02171
02172
02173
02174
02175
02176
02177
02178
02179 class CPitotStaticPort : public CDependent {
02180 public:
02181 CPitotStaticPort (void);
02182
02183
02184 virtual int Read (SStream *stream, Tag tag);
02185 virtual void ReadFinished (void);
02186 virtual void Write (SStream *stream);
02187
02188 protected:
02189 EPortType type;
02190 SVector bPos;
02191 int grup;
02192 EPortFace face;
02193 bool inie;
02194 bool wont;
02195 };
02196
02197 #endif // SUBSYSTEMS_H