module CTdsIbopLedNotificationVariables use CVoidEventHandlerCollection implicit none logical :: IbopLed = .false. public type(VoidEventHandlerCollection) :: OnIbopLedChange private :: IbopLed contains subroutine Set_IbopLed(v) use CTopDrivePanelVariables, only: TopDriveIbopLed use CManifolds, Only: OpenTopDriveIBop, CloseTopDriveIBop !use CLatchLedNotification implicit none logical , intent(in) :: v #ifdef ExcludeExtraChanges if(IbopLed == v) return #endif IbopLed = v if(IbopLed) then TopDriveIbopLed = 1 call CloseTopDriveIBop() else TopDriveIbopLed = 0 call OpenTopDriveIBop() endif call OnIbopLedChange%RunAll() end subroutine logical function Get_IbopLed() implicit none Get_IbopLed = IbopLed end function subroutine Set_IbopLed_WN(v) !DEC$ ATTRIBUTES DLLEXPORT :: Set_IbopLed_WN !DEC$ ATTRIBUTES ALIAS: 'Set_IbopLed_WN' :: Set_IbopLed_WN implicit none logical , intent(in) :: v call Set_IbopLed(v) end subroutine logical function Get_IbopLed_WN() !DEC$ ATTRIBUTES DLLEXPORT :: Get_IbopLed_WN !DEC$ ATTRIBUTES ALIAS: 'Get_IbopLed_WN' :: Get_IbopLed_WN implicit none Get_IbopLed_WN = IbopLed end function end module CTdsIbopLedNotificationVariables