module CDrillingConsoleVariables

    ! use CVoidEventHandlerCollection
    implicit none    
    public    
    
    TYPE, PUBLIC :: DrillingConsoleType
        ! Input vars
        integer :: AssignmentSwitch
        logical :: EmergencySwitch
        real(8) :: RTTorqueLimitKnob
        integer :: MP1CPSwitchI = 0 !for not turning on pump1 on simulation start
        integer :: MP1CPSwitchT !for not turning on pump1 on simulation start
        integer :: MP1CPSwitch 
        logical :: MP1ThrottleUpdate = .false.
        real(8) :: MP1Throttle = -1.0
        integer :: MP2SwitchI = 0  !for not turning on pump2 on simulation start
        logical :: MP2SwitchT  !for not turning on pump2 on simulation start
        logical :: MP2Switch 
        logical :: MP2ThrottleUpdate = .false.
        real(8) :: MP2Throttle = -1.0
        integer :: DWSwitch
        real(8) :: DWThrottle
        integer :: RTSwitch
        real(8) :: RTThrottle
    
        real(8) :: DWBreak
        real(8) :: PreviousDWBreak
        logical :: ForceBreak = .false.
    
        real(8) :: DWAcceleretor
        real(8) :: DWTransmisionLever
        real(8) :: DWPowerLever
    
        real(8) :: TongLever
        ! ! type(VoidEventHandlerCollection) :: OnBreakoutLeverPress
        ! ! type(VoidEventHandlerCollection) :: OnMakeupLeverPress
        ! ! type(VoidEventHandlerCollection) :: OnTongNeutralPress
    
        real(8) :: RTTransmissionLever
        real(8) :: DWClutchLever
        real(8) :: EddyBreakLever
        logical :: AutoDW
        logical :: GEN1
        logical :: GEN2
        logical :: GEN3
        logical :: GEN4
        logical :: Permission_OpenKellyCock = .false.
        logical :: OpenKellyCock
        ! ! type(VoidEventHandlerCollection) :: OnOpenKellyCockPress
    
        logical :: Permission_CloseKellyCock = .false.
        logical :: CloseKellyCock
        ! ! type(VoidEventHandlerCollection) :: OnCloseKellyCockPress
    
        logical :: Permission_OpenSafetyValve = .false.
        logical :: OpenSafetyValve
        ! typeVoidEventHandlerCollection) :: OnOpenSafetyValvePress
    
        logical :: Permission_CloseSafetyValve = .false.
        logical :: CloseSafetyValve
        ! typeVoidEventHandlerCollection) :: OnCloseSafetyValvePress
    
        logical :: Permission_IRSafetyValve = .false.
        logical :: IRSafetyValve
        ! typeVoidEventHandlerCollection) :: OnIRSafetyValvePress
    
        logical :: Permission_IRIBop = .false.
        logical :: IRIBop
        ! typeVoidEventHandlerCollection) :: OnIRIBopPress
    
        logical :: LatchPipe
        ! typeVoidEventHandlerCollection) :: OnLatchPipePress
    
        logical :: UnlatchPipe
        ! typeVoidEventHandlerCollection) :: OnUnlatchPipePress
    
        logical :: Swing
        ! typeVoidEventHandlerCollection) :: OnSwingPress
    
        logical :: FillMouseHole
        ! typeVoidEventHandlerCollection) :: OnFillMouseHolePress
    
        logical :: Slips
        ! typeVoidEventHandlerCollection) :: OnSlipsPress
    
        !logical :: TopDriveIBop
        !
        !logical :: TopDriveDrillTorque
        !integer :: TopDriveRevOffFwd
        !integer :: TopDriveDrillOffTilt

        real :: BrakeLeverCoefficient
        logical :: HideDrillingBrake

        logical :: ParkingBrakeBtn
    
        ! Output vars
        logical :: ParkingBrakeLed
        integer :: GEN1LED
        integer :: GEN2LED
        integer :: GEN3LED
        integer :: GEN4LED
        integer :: SCR1LED
        integer :: SCR2LED
        integer :: SCR3LED
        integer :: SCR4LED
        integer :: MP1BLWR
        integer :: MP2BLWR
        integer :: DWBLWR
        integer :: RTBLWR
        integer :: PWRLIM
        real(8) :: PWRLIMMTR
        real(8) :: RTTorqueLimitGauge
        integer :: AutoDWLED
        integer :: GEN1BTNLED
        integer :: GEN2BTNLED
        integer :: GEN3BTNLED
        integer :: GEN4BTNLED
        integer :: OpenKellyCockLed
        integer :: CloseKellyCockLed
        integer :: OpenSafetyValveLed
        integer :: CloseSafetyValveLed
        integer :: IRSafetyValveLed
        integer :: IRIBopLed

        integer :: LatchPipeLED
        integer :: UnlatchPipeLED
        integer :: SwingLed
        integer :: FillMouseHoleLed
    END TYPE DrillingConsoleType
    
end module CDrillingConsoleVariables