module CDataDisplayConsoleVariables
    use CIActionReference
    ! !**use CDoubleEventHandlerCollection
    implicit none    
    public    
    
    Type :: DataDisplayConsoleType
        !portable
        real(8) :: TripAlarmLow
        real(8) :: TripAlarmHigh
        real(8) :: RetFlowAlarmLow
        real(8) :: RetFlowAlarmHigh
        real(8) :: PitAlarmLow
        real(8) :: PitAlarmHigh
    
        real(8) :: PortWeightOnBit
        real(8) :: PortHookLoad
        real(8) :: PortCasingPressure
        real(8) :: PortPumpPressure

        ! Input vars
        real(8) :: TripTankSetAlarmLow
        real(8) :: TripTankSetAlarmHigh
        integer :: TripTankSetAlarmSwitch
        logical :: TripTankPowerSwitch
        logical :: TripTankPumpSwitch
        logical :: TripTankHornSwitch
        logical :: AcidGasDetectionHornSwitch
        logical :: TotalStrokeCounterResetSwitch
        logical :: DrillingTrippingSelectorSwitch
        real(8) :: MVTSetAlarmLowKnob
        real(8) :: MVTSetAlarmHighKnob
        integer :: MVTSetAlarmSwitch
        logical :: MudTank1Switch
        logical :: MudTank2Switch
        logical :: MudTank3Switch
        logical :: MudTank4Switch
        real(8) :: MVTFineKnob
        real(8) :: MVTCoarseKnob
        logical :: MVTHornSwitch
        logical :: MVTDeviationTripSelectionSwitch
        logical :: MVTPowerSwitch
        logical :: MFFIResetTotalStrokes
        logical :: MFFIResetFillCounter
        integer :: MFFIPumpSelectorSwitch
        logical :: MFFIFillSPMSelectorSwitch
        real(8) :: MFFISetAlarmLowKnob
        real(8) :: MFFISetAlarmHighKnob
        integer :: MFFISetAlarmSwitch
        logical :: MFFIPowerSwitch
        logical :: MFFIHornSwitch
    
        logical :: ResetWob
        logical :: Clutch

        ! Output vars
        real(8) :: WOBPointer
        real(8) :: HookLoadPointer
        real(8) :: TripTankGauge
        integer :: TripTankAlarmLED
        integer :: TripTankPumpLED
        real(8) :: StandPipePressureGauge
        real(8) :: CasingPressureGauge
        real(8) :: MP1SPMGauge
        real(8) :: MP2SPMGauge
        real(8) :: ReturnLineTempGauge
        real(8) :: RotaryTorqueGauge
        real(8) :: RotaryRPMGauge
        ! !**type(DoubleEventHandlerCollection) :: OnRotaryRpmChange
        integer :: AcidGasDetectionLED
        real(8) :: TotalStrokeCounter
        !real(8) :: TotalStrokeCounter_temp
        real(8) :: PitGainLossGauge
        real(8) :: MudTanksVolumeGauge
        integer :: MVTAlarmLED
        real(8) :: ReturnMudFlowGauge
        real(8) :: FillStrokeCounter
        real(8) :: MFFITotalStrokeCounter
        integer :: MFFIAlarmLED
        integer :: MFFIPumpLED
        real(8) :: TotalWellDepth
        real(8) :: BitDepth
        real(8) :: HookLoad
        real(8) :: StandPipePressure
        real(8) :: CasingPressure
        real(8) :: MP1SPM
        real(8) :: MP2SPM
        real(8) :: RTTorque
        real(8) :: RTRPM
        real(8) :: WOP
        real(8) :: ROP
        real(8) :: MudWeightIn
        real(8) :: MudWeightOut
        logical :: Buzzer1
        logical :: Buzzer2
        logical :: Buzzer3
        logical :: Buzzer4
    End Type DataDisplayConsoleType
    

    ! events
    ! procedure (ActionDualDouble), pointer :: PumpsSpmChanges => null()
    
    contains
    
end module CDataDisplayConsoleVariables