VE Lua Documentation

Press F to search!

getController

Definition


-- @/lua/vehicle/controller.lua:224

local function getController(name)
  return loadedControllers[name]
end

Callers

@/lua/vehicle/controller/esc.lua
              onSelect = function()
                controller.getController("esc").setESCMode(k)
                return {"reload"}
@/lua/ge/extensions/scenario/busdriver.lua
  --wpList = scenario_scenarios.getScenario().lapConfig
  --getObjectByID(vehicleId):queueLuaCommand("controller.getController('busNextStopDsp').onDepartedStop( "..dumps({unpack(wpList, 1,#wpList)}).." )")
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/signals/instance.lua
    self.pinOut.sequenceData.value = instance:getSequence() or {}
    self.pinOut.controllerData.value = instance:getController() or {}
  end
@/lua/vehicle/controller/pneumatics/liftAxleControl.lua
  local actuatorsControllerNameLift = jbeamData.actuatorsControllerNameLift
  actuatorsControllerLift = controller.getController(actuatorsControllerNameLift)
  if not actuatorsControllerLift then
  local actuatorsControllerNameMain = jbeamData.actuatorsControllerNameMain
  actuatorsControllerMain = controller.getController(actuatorsControllerNameMain)
  if not actuatorsControllerMain then
@/lua/vehicle/controller/braking/transbrake.lua
              onSelect = function()
                controller.getController("transbrake").toggleTransbrake()
                return {"reload"}
@/lua/vehicle/controller/advancedCouplerControl.lua
  for _, condition in ipairs(couplerGroup.openForceConditions) do
    local couplerController = controller.getController(condition.advancedCouplerControlName)
    if couplerController and couplerController.typeName == "advancedCouplerControl" then
    end
    local groupController = controller.getController(controllerName)
    if not groupController or groupController.typeName ~= "advancedCouplerControl" then
@/lua/ge/extensions/core/trafficSignals.lua
  -- or mySignal:getSequence():setStep(stepIndex)
  local ctrl = self:getController()
  if ctrl then
    else
      local ctrl = self:getController() or {}
      local seq = self:getSequence() or {}

function SignalInstance:getController()
  return elementsById[self.controllerId]
  -- isAbsolute uses the start of the sequence, ignoring the current time
  local controller = self:getController()
  local sequence = self:getSequence()
  if self.active then
    if self:getController() then
      local valid = true
        local sequence = self:getSequence()
        local controller = self:getController()
        if sequence.controllerStates and sequence.controllerStates[controller.name] then
      else
        self.priorityStateIndex = self:getController().defaultIndex or 1 -- priority state index is permanent, unless a sequence update resolves
      end

  if not self:getController() then
    if not self._invalid then
      if instance and instance._innerIdx then
        local stateData = instance:getController():getStateData(state)
        local stateAction = stateData and stateData.action or 'none'
@/lua/vehicle/controller/gauges/genericGauges.lua
  for k, v in pairs(mergedConfig) do
    local c = controller.getController(controllerPath .. k)
    if c and c.setupGaugeData and c.updateGaugeData then
@/lua/vehicle/controller/tech/cosimulationCoupling.lua
    while IMUs[i].ctrl == nil do
    IMUs[i].ctrl = controller.getController('advancedIMU' .. IMUs[i].id)
        IMUs[i].ctrl = controller.getController('advancedIMU' .. (IMUs[i].id + idOffset))
    IMUs[i].ctrl = controller.getController('advancedIMU' .. IMUs[i].id)
        IMUs[i].ctrl = controller.getController('advancedIMU' .. (IMUs[i].id + idOffset))
        if IMUs[i].ctrl == nil then
  for i = 1, #GPSs do
    GPSs[i].ctrl = controller.getController('GPS' .. GPSs[i].id)
  end
  for i = 1, #idealRADARs do
    idealRADARs[i].ctrl = controller.getController('idealRADARSensor' .. idealRADARs[i].id)
  end
  for i = 1, #roads do
    roads[i].ctrl = controller.getController('roadsSensor' .. roads[i].id)
  end
@/lua/vehicle/controller/loggerTemplate.lua
-- If this controller code is active (ie. specified in jbeam) you can call this method like this:
-- controller.getController("loggerTemplate").saveLogToCSV()
-- External name   Internal name
@/lua/vehicle/controller/drivingDynamics/supervisors/components/diffControl.lua
  local rearDiffName = jbeamData.rearDiffName or "lockRear"
  relevantFrontDiff = controller.getController(frontDiffName)
  relevantRearDiff = controller.getController(rearDiffName)
  relevantFrontDiff = controller.getController(frontDiffName)
  relevantRearDiff = controller.getController(rearDiffName)
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/aiParams.lua
      veh:queueLuaCommand('if electrics.values.jatoInput then electrics.values.jatoInput = 1 end')
      veh:queueLuaCommand([[local nc = controller.getController("nitrousOxideInjection")
      if nc then
      veh:queueLuaCommand('if electrics.values.jatoInput then electrics.values.jatoInput = 0 end')
      veh:queueLuaCommand([[local nc = controller.getController("nitrousOxideInjection")
      if nc then
@/lua/vehicle/controller/pneumatics/autoLevelSuspension.lua

  actuator = controller.getController(actuatorName)
@/lua/vehicle/extensions/tech/vehicleSystemsCoupling.lua

  if controller.getController('vehicleSystemsCoupling') == nil then
    controller.loadControllerExternal('tech/vehicleSystemsCoupling', 'vehicleSystemsCoupling', {loadedByExtension = true})

  couplingController = controller.getController('vehicleSystemsCoupling')
  couplingController.initialSetup(config)
  if couplingController == 'coupling' then
    couplingController = controller.getController('vehicleSystemsCoupling')
  end
@/ui/modules/apps/SimplePowertrainControl/app.js
          //  }).on('mousedown', function () {
          //    bngApi.activeObjectLua("if controller.getController('driveModes') then controller.getController('driveModes').nextDriveMode() else controller.getControllerSafe('esc').toggleESCMode() end")
          //  }))
          //  }).on('mousedown', function () {
          //    bngApi.activeObjectLua("if controller.getController('driveModes') then controller.getController('driveModes').nextDriveMode() else controller.getControllerSafe('esc').toggleESCMode() end")
          //  }))
          //  }).on('mousedown', function () {
          //    bngApi.activeObjectLua("controller.getController('nitrousOxideInjection').toggleActive()")
          //  }))
@/lua/ge/extensions/freeroam/dragRace.lua
  opponentVehicle:queueLuaCommand('if electrics.values.jatoInput then electrics.values.jatoInput = 1 end')
  opponentVehicle:queueLuaCommand([[local nc = controller.getController("nitrousOxideInjection")
  if nc then
  opponentVehicle:queueLuaCommand('if electrics.values.jatoInput then electrics.values.jatoInput = 0 end')
  opponentVehicle:queueLuaCommand([[local nc = controller.getController("nitrousOxideInjection")
  if nc then
@/lua/vehicle/controller/dragTimer.lua
      state = "measuring"
      controller.getController("transbrake").setTransbrake(false)
      countdownTimer = 0
@/lua/vehicle/controller/controlModes.lua
        generator = function(entries)
          if controller.getController("controlModes") then
            table.insert(entries, {title = "Modes", priority = 40, ["goto"] = "/root/playerVehicle/general/controlmodes/", icon = "settings", uniqueID = "controlModes"})
@/lua/ge/extensions/editor/cosimulationSignalEditor.lua
local function triggerStartLogging()
  be:queueObjectLua(vehicles[selectedVehicleIdx].vid, "controller.getController('cosimulationCoupling').StartLogging()")
-- Stops executing the coupling.
local function stopExecute()
  be:queueObjectLua(vehicles[selectedVehicleIdx].vid, "controller.getController('cosimulationCoupling').stop()")
  be:queueObjectLua(vehicles[selectedVehicleIdx].vid, "controller.unloadControllerExternal('cosimulationCoupling')")
@/lua/vehicle/extensions/dynamicVehicleData.lua
  controller.mainController.setGearboxMode("arcade")
  local esc = controller.getController("esc")
  if esc then
@/lua/vehicle/wheels.lua
  local airspeed = absBehavior == "arcade" and electrics.values.airspeed or virtualAirspeed
  --local airspeed = controller.getController("CMU").virtualSensors.virtual.speed or 0
  local invAirspeed = 1 / (airspeed + 1e-30)
@/lua/vehicle/extensions/escCalibration.lua
  log("D", "ESC", "Starting skew stiffness test")
  esc = controller.getController("esc")
  if not esc then
@/lua/vehicle/controller.lua
  --Here we create a bit of special magic to deal with fire and forget controller access
  --for example: controller.getController("abc").doSomething()
  --in this case an error is thrown if "abc" is not a valid controller.
local function publishStateEvent(controllerName, ...)
  local c = getController(controllerName)
  if not c then
@/lua/vehicle/controller/drivingDynamics/CMU.lua
  if updateActiveColor or updateOffColor or updateDoUpdate then
    local driveModesController = controller.getController("driveModes")
    if driveModesController then
@/lua/vehicle/controller/nitrousOxideInjection.lua

  extensions.ui_simplePowertrainControl.setButton(M.name, "N2O", "powertrain_n2o", color, n2oData.tankRatio, string.format("controller.getController(%q).toggleActive()", M.name))
end
              onSelect = function()
                controller.getController(name).toggleActive()
                return {"reload"}
@/ui/ui-vue/mockdata/inputBindings.js
                "title": "ui.inputActions.vehicle.nextESCMode.title",
                "onDown": "if controller.getController('driveModes') then controller.getController('driveModes').nextDriveMode() else controller.getControllerSafe('esc').nextESCMode() end",
                "order": 21.1,
                "title": "ui.inputActions.vehicle.nextESCMode.title",
                "onDown": "if controller.getController('driveModes') then controller.getController('driveModes').nextDriveMode() else controller.getControllerSafe('esc').nextESCMode() end",
                "order": 21.1,
                "title": "ui.inputActions.vehicle.previousESCMode.title",
                "onDown": "if controller.getController('driveModes') then controller.getController('driveModes').previousDriveMode() else controller.getControllerSafe('esc').previousESCMode() end",
                "order": 21.2,
                "title": "ui.inputActions.vehicle.previousESCMode.title",
                "onDown": "if controller.getController('driveModes') then controller.getController('driveModes').previousDriveMode() else controller.getControllerSafe('esc').previousESCMode() end",
                "order": 21.2,
                "title": "ui.inputActions.vehicle.toggleESCMode.title",
                "onDown": "if controller.getController('driveModes') then controller.getController('driveModes').nextDriveMode() else controller.getControllerSafe('esc').toggleESCMode() end",
                "order": 21,
                "title": "ui.inputActions.vehicle.toggleESCMode.title",
                "onDown": "if controller.getController('driveModes') then controller.getController('driveModes').nextDriveMode() else controller.getControllerSafe('esc').toggleESCMode() end",
                "order": 21,
@/lua/vehicle/controller/lineLock.lua
            onSelect = function()
              controller.getController(name).toggleLineLock()
              return {"reload"}
@/lua/vehicle/controller/driveModes.lua
    simpleControlButtons[id].offColorElectric = offColorElectric
    simpleControlButtons[id].onClick = onClick or string.format("controller.getController(%q).nextDriveMode()", M.name)
    updateSimpleControlButton(simpleControlButtons[id])
    elseif setting.type == "controller" then
      local controller = controller.getController(setting.controllerName)
      if controller and controller.setParameters then
@/lua/ge/extensions/gameplay/drag/utils.lua
        racer.vehObj:queueLuaCommand([[
          local nc = controller.getController("nitrousOxideInjection")
          if nc then
        racer.vehObj:queueLuaCommand([[
          local ts = controller.getController("twoStep")
          if ts then ts.toggleTwoStep() end
        racer.vehObj:queueLuaCommand([[
          local tb = controller.getController("transbrake")
          if tb then
        racer.vehObj:queueLuaCommand([[
          local tb = controller.getController("transbrake")
          if tb then
        racer.vehObj:queueLuaCommand([[
          local nc = controller.getController("nitrousOxideInjection")
          if nc then
        racer.vehObj:queueLuaCommand([[
          local nc = controller.getController("nitrousOxideInjection")
          if nc then
@/lua/vehicle/controller/twoStepLaunch.lua
              onSelect = function()
                controller.getController("twoStepLaunch").toggleTwoStep()
                return {"reload"}
              onSelect = function()
                controller.getController("twoStepLaunch").changeTwoStepRPM(100)
                return {"reload"}
              onSelect = function()
                controller.getController("twoStepLaunch").changeTwoStepRPM(-100)
                return {"reload"}
@/lua/vehicle/controller/4wd.lua
                if shaft.mode == "disconnected" then
                  controller.getController(M.name).set4WDMode("connected")
                else
                else
                  controller.getController(M.name).set4WDMode("disconnected")
                end
                if rangeBox.mode == "low" then
                  controller.getController(M.name).setRangeMode("high")
                else
                else
                  controller.getController(M.name).setRangeMode("low")
                end
  for _, name in ipairs(driveModesDifferentialNames) do
    local c = controller.getController(name)
    if c then
  for _, name in ipairs(driveModesTransfercaseNames) do
    local c = controller.getController(name)
    if c then
  for _, name in ipairs(driveModesRangeNames) do
    local c = controller.getController(name)
    if c then
@/lua/vehicle/extensions/tech/techCore.lua
M.handleCycleESCMode = function(request)
  if controller.getController("driveModes") then
    controller.getController("driveModes").nextDriveMode()
  if controller.getController("driveModes") then
    controller.getController("driveModes").nextDriveMode()
  else
M.handleSetESCMode = function(request)
  if controller.getController("driveModes") then
    controller.getController("driveModes").setDriveMode(request["mode"])
  if controller.getController("driveModes") then
    controller.getController("driveModes").setDriveMode(request["mode"])
  end
  local data
  if controller.getController("driveModes") then
    data = controller.getController("driveModes").getCurrentDriveModeKey()
  if controller.getController("driveModes") then
    data = controller.getController("driveModes").getCurrentDriveModeKey()
  else
M.handleStopCosimulation = function(request)
  controller.getController('cosimulationCoupling').stop()
  controller.unloadControllerExternal('cosimulationCoupling')
@/lua/vehicle/controller/inputOutputDemo.lua
--If this controller code is active (ie. specified in jbeam) you can call this method like this:
--controller.getController("loggerTemplate").saveLogToCSV()
-- External name   Internal name