@startuml

class TilePowerManager {
  -_callback
  -_logger
  -_power_mode
  -_subrack
  -_subrack_bay
  -_subrack_fqdn  
  +subrack_event_handler
  +__init__()
  +connect()
  +power_mode()
  +off()
  +on()
  -_read_power_mode()
  -_subrack_power_changed()
  -_update_power_mode()
}

class MccsTile {
  
  -_antenna_ids
  -_csp_destination_ip
  -_csp_destination_mac
  -_csp_destination_port
  -_health_state
  -_subarray_id
  +hardware_manager
  +AntennasPerTile
  +SubrackBay
  +SubrackFQDN
  +TestGeneratorActive
  +TileId
  +TpmCpldPort
  +TpmIp
  +TpmVersion
  +CalculateDelay()
  +GetArpTable()
  +ComputeCalibrationCoefficients()
  +Configure40GCore()
  +ConfigureIntegratedBeamData()
  +ConfigureIntegratedChannelData()
  +ConfigureStationBeamformer()
  +ConfigureTestGenerator()
  +DownloadFirmware()
  +Get40GCoreConfiguration()
  +GetFirmwareAvailable()
  +GetRegisterList()
  +Initialise()
  +LoadAntennaTapering()
  +LoadBeamAngle()
  +LoadCalibrationCoefficients()
  +LoadCalibrationCurve()
  +LoadPointingDelay()
  +On()
  +PostSynchronisation()
  +ProgramCPLD()
  +ReadAddress()
  +ReadRegister()
  +SendBeamData()
  +SendChannelisedData()
  +SendChannelisedDataContinuous()
  +SendChannelisedDataNarrowband()
  +SendRawData()
  +SendRawDataSynchronised()
  +SetBeamFormerRegions()
  +SetChanneliserTruncation()
  +SetCspRounding()
  +SetLmcDownload()
  +SetLmcIntegratedDownload()
  +SetPointingDelay()
  +SetTimeDelays()
  +StartAcquisition()
  +StartBeamformer()
  +StopBeamformer()
  +StopDataTransmission()
  +StopIntegratedBeamData()
  +StopIntegratedChannelData()
  +StopIntegratedData()
  +SwitchCalibrationBank()
  +SyncFpgas()
  +TestGeneratorActive()
  +TweakTransceivers()
  +WriteAddress()
  +WriteRegister()
  -_update_admin_mode()
  +adcPower()
  +always_executed_hook()
  +antennaIds()
  +board_temperature()
  +checkPendingDataRequests()
  +cspDestinationIp()
  +cspDestinationMac()
  +cspDestinationPort()
  +current()
  +currentTileBeamformerFrame()
  +delete_device()
  +firmwareName()
  +firmwareVersion()
  +fortyGbDestinationIps()
  +fortyGbDestinationPorts()
  +fpga1_temperature()
  +fpga1_time()
  +fpga2_temperature()
  +fpga2_time()
  +health_changed()
  +init_command_objects()
  +init_device()
  +isBeamformerRunning()
  +isProgrammed()
  +logicalTileId()
  +phaseTerminalCount()
  +power_changed()
  +ppsDelay()
  +simulationMode()
  +stationId()
  +subarrayId()
  +testMode()
  +voltage()
}

class SKABaseDevice {
}

 SKABaseDevice <|-- MccsTile

@enduml
