`sensors.lua`
> This Source Code Form is subject to the terms of the bCDDL, v. 1.1.
This Source Code Form is subject to the terms of the bCDDL, v. 1.1. If a copy of the bCDDL was not distributed with this file, You can obtain one at http://beamng.com/bCDDL-1.1.txt
Module variable: M
Dependencies
buffer←string.buffer
Hooks
onSensorRemovedonUpdateonDeserializedonVehicleDestroyed
Exported Functions
M.updateLuaSensorConfiguration(sensorType, sensorId, conf, vid)
Line 54
Returns: Research.GpuRequestManager.isAdHocGpuRequestComplete(requestId) end
M.getSensorName(sensorType, sensorId)
Line 1389
Returns: activeSensors
M.getSensorConfiguration(sensorType, sensorId)
Line 1416
Returns: activeSensors
M.getActiveSensors()
Line 1430
Returns: end
M.onSensorRemoved(sensorType, sensorId)
Line 1515
Returns: end
M.doesSensorExist(sensorId)
Line 94
Public interface: General sensor functions.
Returns: Research.SensorManager.doesSensorExist(sensorId)
M.removeSensor(sensorId)
Line 98
M.removeAllSensorsFromVehicle(vid)
Line 108
M.getAverageUpdateTime(sensorId)
Line 115
GPU manager functions.
Returns: Research.GpuRequestManager.getAverageUpdateTime(sensorId)
M.getMaxLoadPerFrame()
Line 119
Returns: Research.GpuRequestManager.getMaxLoadPerFrame()
M.setMaxLoadPerFrame(maxLoadPerFrame)
Line 123
M.sendCameraRequest(sensorId)
Line 128
Ad-hoc polling functions.
M.sendLidarRequest(sensorId)
Line 129
M.sendUltrasonicRequest(sensorId)
Line 130
M.sendRadarRequest(sensorId)
Line 131
M.collectCameraRequest(requestId)
Line 133
M.collectLidarRequest(requestId)
Line 135
M.collectUltrasonicRequest(requestId)
Line 136
M.collectRadarRequest(requestId)
Line 137
M.isRequestComplete(requestId)
Line 139
M.sendAdvancedIMURequest(sensorId, vid)
Line 158
Ad-hoc sensor reading functions (for Lua sensors with a vlua controller).
Returns: requestId
M.collectAdvancedIMURequest(requestId)
Line 165
Returns: false
M.sendGPSRequest(sensorId, vid)
Line 174
Returns: requestId
M.collectGPSRequest(requestId)
Line 181
Returns: false
M.sendPowertrainRequest(sensorId, vid)
Line 190
Returns: requestId
M.collectPowertrainRequest(requestId)
Line 197
Returns: false
M.sendIdealRADARRequest(sensorId, vid)
Line 206
Returns: requestId
M.collectIdealRADARRequest(requestId)
Line 213
Returns: false
M.sendRoadsSensorRequest(sensorId, vid)
Line 222
Returns: requestId
M.collectRoadsSensorRequest(requestId)
Line 229
Returns: false
M.sendMeshRequest(sensorId, vid)
Line 238
Returns: requestId
M.collectMeshRequest(requestId)
Line 245
Returns: false
M.attachSensor(sensorId, pos, dir, up, vid, isSensorStatic, isSnappingDesired, forceInsideTriangle, isAllowWheelNodes, isDirWorldSpace)
Line 261
Sensor matrix manager functions.
M.getSensorMatrix(sensorId)
Line 265
Returns: Research.SensorMatrixManager.getSensorMatrixExternal(sensorId)
M.getWorldFrame(sensorId)
Line 269
Returns: Research.SensorMatrixManager.getWorldFrameVectors(sensorId)
M.getLocalFrame(sensorId)
Line 273
Returns: Research.SensorMatrixManager.getLocalFrameVectors(sensorId)
M.getBeamData(vid)
Line 277
Vehicle mesh functions (direct from gameengine).
Returns: beams
M.getFullTriangleData(vid)
Line 289
Returns: triangles
M.getWheelTriangleData(vid, wheelIndex)
Line 301
Returns: triangles
M.getNodePositions(vid, nodeId)
Line 313
Returns: Research.SensorMatrixManager.getNodePositions(vehicleId)
M.getClosestMeshPointToGivenPoint(vid, point)
Line 318
Returns: Research.SensorMatrixManager.getClosestMeshPointToGivenPoint(vehicleId, point)
M.getClosestTriangle(vid, point, includeWheelNodes)
Line 323
Returns: Research.SensorMatrixManager.getClosestTriangle(vehicleId, point, includeWheelNodes)
M.createCamera(vid, args)
Line 328
Camera-specific sensor functions.
Returns: sensorId
M.createCameraWithSharedMemory(vid, args)
Line 334
Returns: sensorId
M.getCameraImage(sensorId)
Line 340
Returns: cameraBufferColors[sensorId]
M.getCameraAnnotations(sensorId)
Line 346
Returns: cameraBufferAnnotations[sensorId]
M.getCameraDepth(sensorId)
Line 352
Returns: cameraBufferDepth[sensorId]
M.getCameraDataShmem(sensorId)
Line 365
Returns: Research.Camera.getLastCameraDataShmem(sensorId)
M.getCameraSensorName(sensorId)
Line 386
Returns: Research.Camera.getSensorName(sensorId)
M.getCameraSensorPosition(sensorId)
Line 390
Returns: Research.Camera.getSensorPosition(sensorId)
M.getCameraSensorDirection(sensorId)
Line 394
Returns: Research.Camera.getSensorDirection(sensorId)
M.getCameraMaxPendingGpuRequests(sensorId)
Line 398
Returns: Research.Camera.getMaxPendingGpuRequests(sensorId)
M.getCameraRequestedUpdateTime(sensorId)
Line 402
Returns: Research.Camera.getRequestedUpdateTime(sensorId)
M.getCameraUpdatePriority(sensorId)
Line 406
Returns: Research.Camera.getUpdatePriority(sensorId)
M.getCameraSize(sensorId)
Line 410
Returns: Research.Camera.getSize(sensorId)
M.getActiveCameraSensors()
Line 414
Returns: Research.Camera.getActiveCameraSensors()
M.setCameraSensorDirection(sensorId, dir)
Line 420
M.setCameraSensorUp(sensorId, dir)
Line 421
M.setCameraSensorResolution(sensorId, x, y)
Line 422
M.setCameraSensorFOVX(sensorId, x)
Line 423
M.setCameraSensorNearFarPlanes(sensorId, pNear, pFar)
Line 424
M.setCameraMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)
Line 426
M.setCameraRequestedUpdateTime(sensorId, requestedUpdateTime)
Line 430
M.setCameraUpdatePriority(sensorId, priority)
Line 434
M.convertWorldPointToPixel(sensorId, point)
Line 438
Returns: Research.Camera.convertWorldPointToPixel(sensorId, point)
M.createLidar(vid, args)
Line 504
LiDAR-specific sensor functions.
Returns: result
M.createLidarWithSharedMemory(vid, args)
Line 510
Returns: result
M.getLidarPointCloudShmem(sensorId)
Line 547
Returns: Research.Lidar.getLastPointCloudDataShmem(sensorId)
M.getLidarColourDataShmem(sensorId)
Line 551
Returns: Research.Lidar.getLastColourDataShmem(sensorId)
M.getActiveLidarSensors()
Line 555
Returns: Research.Lidar.getActiveLidarSensors()
M.getLidarSensorName(sensorId)
Line 559
Returns: Research.Lidar.getSensorName(sensorId)
M.getLidarSensorPosition(sensorId)
Line 563
Returns: Research.Lidar.getSensorPosition(sensorId)
M.getLidarSensorDirection(sensorId)
Line 567
Returns: Research.Lidar.getSensorDirection(sensorId)
M.getLidarVerticalResolution(sensorId)
Line 571
Returns: Research.Lidar.getVerticalRes(sensorId)
M.getLidarFrequency(sensorId)
Line 575
Returns: Research.Lidar.getFrequency(sensorId)
M.getLidarMaxDistance(sensorId)
Line 579
Returns: Research.Lidar.getMaxDistance(sensorId)
M.getLidarIsVisualised(sensorId)
Line 583
Returns: Research.Lidar.getIsVisualised(sensorId)
M.getLidarIsAnnotated(sensorId)
Line 587
Returns: Research.Lidar.getIsAnnotated(sensorId)
M.getLidarMaxPendingGpuRequests(sensorId)
Line 591
Returns: Research.Lidar.getMaxPendingGpuRequests(sensorId)
M.getLidarRequestedUpdateTime(sensorId)
Line 595
Returns: Research.Lidar.getRequestedUpdateTime(sensorId)
M.getLidarUpdatePriority(sensorId)
Line 599
Returns: Research.Lidar.getUpdatePriority(sensorId)
M.setLidarVerticalResolution(sensorId, verticalResolution)
Line 603
M.setLidarFrequency(sensorId, frequency)
Line 607
M.setLidarMaxDistance(sensorId, maxDistance)
Line 611
M.setLidarIsVisualised(sensorId, isVisualised)
Line 615
M.setLidarIsAnnotated(sensorId, isAnnotated)
Line 619
M.setLidarMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)
Line 623
M.setLidarRequestedUpdateTime(sensorId, requestedUpdateTime)
Line 627
M.setLidarUpdatePriority(sensorId, updatePriority)
Line 631
M.createUltrasonic(vid, args)
Line 635
Ultrasonic-specific sensor functions.
Returns: sensorId
M.getUltrasonicReadings(sensorId)
Line 644
Returns: Research.Ultrasonic.getLastReadings(sensorId)
M.getActiveUltrasonicSensors()
Line 648
Returns: Research.Ultrasonic.getActiveUltrasonicSensors()
M.getUltrasonicIsVisualised(sensorId)
Line 652
Returns: visualisedUltrasonicSensors[sensorId] ~= nil
M.getUltrasonicMaxPendingGpuRequests(sensorId)
Line 656
Returns: Research.Ultrasonic.getMaxPendingGpuRequests(sensorId)
M.getUltrasonicRequestedUpdateTime(sensorId)
Line 660
Returns: Research.Ultrasonic.getRequestedUpdateTime(sensorId)
M.getUltrasonicUpdatePriority(sensorId)
Line 664
Returns: Research.Ultrasonic.getUpdatePriority(sensorId)
M.setUltrasonicIsVisualised(sensorId, isVisualised)
Line 668
M.getUltrasonicSensorName(sensorId)
Line 676
Returns: Research.Ultrasonic.getSensorName(sensorId)
M.getUltrasonicSensorPosition(sensorId)
Line 680
Returns: Research.Ultrasonic.getSensorPosition(sensorId)
M.getUltrasonicSensorDirection(sensorId)
Line 684
Returns: Research.Ultrasonic.getSensorDirection(sensorId)
M.getUltrasonicSensorRadius(sensorId, distanceFromSensor)
Line 688
Returns: Research.Ultrasonic.getSensorRadius(sensorId, distanceFromSensor)
M.setUltrasonicMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)
Line 692
M.setUltrasonicRequestedUpdateTime(sensorId, requestedUpdateTime)
Line 696
M.setUltrasonicUpdatePriority(sensorId, updatePriority)
Line 700
M.createRadar(vid, args)
Line 788
RADAR-specific sensor functions.
Returns: sensorId
M.getRadarReadings(sensorId)
Line 794
Returns: radarBufferPoints[sensorId]
M.getRadarPPIData(sensorId)
Line 800
Returns: radarBufferPPI[sensorId]
M.getRadarRangeDopplerData(sensorId)
Line 806
Returns: radarBufferRangeDoppler[sensorId]
M.getActiveRadarSensors()
Line 812
Returns: Research.Radar.getActiveRadarSensors()
M.getRadarMaxPendingGpuRequests(sensorId)
Line 816
Returns: Research.Radar.getMaxPendingGpuRequests(sensorId)
M.getRadarRequestedUpdateTime(sensorId)
Line 820
Returns: Research.Radar.getRequestedUpdateTime(sensorId)
M.getRadarUpdatePriority(sensorId)
Line 824
Returns: Research.Radar.getUpdatePriority(sensorId)
M.getRadarSensorName(sensorId)
Line 828
Returns: Research.Radar.getSensorName(sensorId)
M.getRadarSensorPosition(sensorId)
Line 832
Returns: Research.Radar.getSensorPosition(sensorId)
M.getRadarSensorDirection(sensorId)
Line 836
Returns: Research.Radar.getSensorDirection(sensorId)
M.setRadarMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)
Line 840
M.setRadarRequestedUpdateTime(sensorId, requestedUpdateTime)
Line 844
M.setRadarUpdatePriority(sensorId, updatePriority)
Line 848
M.createAdvancedIMU(vid, args)
Line 852
Advanced IMU-specific sensor functions.
Returns: sensorId
M.removeAdvancedIMU(vid, sensorId)
Line 904
M.getAdvancedIMUReadings(sensorId)
Line 911
Returns: outData
M.updateAdvancedIMULastReadings(data)
Line 920
M.updateAdvancedIMUAdHocRequest(data)
Line 932
M.setAdvancedIMUUpdateTime(sensorId, vid, updateTime)
Line 937
M.setAdvancedIMUIsUsingGravity(sensorId, vid, isUsingGravity)
Line 942
M.setAdvancedIMUIsVisualised(sensorId, vid, isVisualised)
Line 948
M.createGPS(vid, args)
Line 954
GPS-specific sensor functions.
Returns: sensorId
M.removeGPS(vid, sensorId)
Line 1002
M.getGPSReadings(sensorId)
Line 1009
Returns: outData
M.updateGPSLastReadings(data)
Line 1018
M.updateGPSAdHocRequest(data)
Line 1030
M.setGPSUpdateTime(sensorId, vid, updateTime)
Line 1035
M.setGPSIsVisualised(sensorId, vid, isVisualised)
Line 1040
M.createPowertrainSensor(vid, args)
Line 1046
Powertrain-specific sensor functions.
Returns: sensorId
M.removePowertrainSensor(vid, sensorId)
Line 1066
M.getPowertrainReadings(sensorId)
Line 1073
Returns: outData
M.updatePowertrainLastReadings(data)
Line 1082
M.updatePowertrainAdHocRequest(data)
Line 1094
M.setPowertrainUpdateTime(sensorId, vid, updateTime)
Line 1099
M.createIdealRADARSensor(vid, args)
Line 1104
Ideal RADAR-specific sensor functions.
Returns: sensorId
M.removeIdealRADARSensor(vid, sensorId)
Line 1124
M.getIdealRADARReadings(sensorId)
Line 1131
Returns: outData
M.updateIdealRADARLastReadings(data)
Line 1140
M.updateIdealRADARAdHocRequest(data)
Line 1152
M.setIdealRADARUpdateTime(sensorId, vid, updateTime)
Line 1157
M.createRoadsSensor(vid, args)
Line 1162
Roads-specific sensor functions.
Returns: sensorId
M.removeRoadsSensor(vid, sensorId)
Line 1182
M.getRoadsSensorReadings(sensorId)
Line 1189
Returns: outData
M.updateRoadsSensorLastReadings(data)
Line 1198
M.updateRoadsSensorAdHocRequest(data)
Line 1210
M.setRoadsSensorUpdateTime(sensorId, vid, updateTime)
Line 1215
M.createMeshSensor(vid, args)
Line 1220
Mesh-sensor specific sensor functions.
Returns: sensorId
M.removeMeshSensor(vid, sensorId)
Line 1237
M.updateMeshAdHocRequest(data)
Line 1243
M.setMeshUpdateTime(sensorId, vid, updateTime)
Line 1248
M.getRoadGraph()
Line 1253
Universal sensor functions. These are exposed above already, list here is for API documentation reason. M.updateLuaSensorConfiguration = updateLuaSensorConfiguration M.getSensorName = getSensorName M.getSensorConfiguration = getSensorConfiguration M.getActiveSensors = getActiveSensors Road-related functions.
Returns: {
M.resetNavgraph()
Line 1272
M.createValidation(vid, testId)
Line 1276
Test/validation tools.
M.removeValidation(vid, sensorId)
Line 1319
M.markVehicleFeedingComplete()
Line 1328
M.isTimeEvolutionComplete(vid)
Line 1324
Returns: isVehicleFeedingComplete
M.createTyreBarrierTest(vid, IMUPos, IMUDir, IMUUp, smootherStrength, initialVel, startPos)
Line 1333
M.removeTyreBarrierTest(vid, sensorId)
Line 1376
M.onUpdate(dtReal, dtSim, dtRaw)
Line 1456
Functions triggered by hooks.
M.onDeserialized(data)
Line 1503
M.onVehicleDestroyed(vid)
Line 1509
Exported Variables
M.stype
Line 46 - { -- String identifiers for each sensor
M.getFullCameraRequest
Line 1533 - getFullCameraRequest -- TODO This hack should be replaced when GE-2...
Ad-hoc sensor reading functions (for C++ managed sensors).
M.isVluaRequestComplete
Line 1557 - isVluaRequestComplete -- this query is generic to any request from v...
M.getCameraData
Line 1579 - getCameraData -- returns a binary string.
M.processCameraData
Line 1581 - processCameraData -- returns processed data.
M.setCameraSensorPosition
Line 1590 - setCameraSensorPosition -- Camera property setters (for existing camer...
M.createRawLidar
Line 1602 - createRawLidar -- Create up a new Raw LiDAR sensor (to be man...
Raw LiDAR-specific sensor functions.
M.getLidarPointCloud
Line 1607 - getLidarPointCloud -- returns a binary string.
M.getLidarColourData
Line 1608 - getLidarColourData -- returns a binary string.
M.getLidarDataPositions
Line 1611 - getLidarDataPositions -- returns the LiDAR point cloud positions (pr...
M.getActiveAdvancedIMUs
Line 1669 - getActiveAdvancedIMUs
Internal Functions
Show internal functions
unpack_float(b4, b3, b2, b1)(line 63)rotateVecAroundAxis(v, k, theta)(line 78)Rotates vector v around unit axis k, by angle theta (in radians). [This function uses the standard Rodrigues formula].
angleBetweenVecsNorm(a, b)(line 84)Computes the (small) angle between two unit vectors, in radians.
angleBetweenVecs(a, b)(line 87)Computes the (small) angle between two vectors of arbitrary length, in radians.
getUniqueRequestId()(line 89)doesSensorExist(sensorId)(line 94)removeSensor(sensorId)(line 98)removeAllSensorsFromVehicle(vid)(line 108)getAverageUpdateTime(sensorId)(line 115)getMaxLoadPerFrame()(line 119)setMaxLoadPerFrame(maxLoadPerFrame)(line 123)sendCameraRequest(sensorId)(line 128)Ad-hoc polling functions.
sendLidarRequest(sensorId)(line 129)sendUltrasonicRequest(sensorId)(line 130)sendRadarRequest(sensorId)(line 131)collectCameraRequest(requestId)(line 133)collectLidarRequest(requestId)(line 135)collectUltrasonicRequest(requestId)(line 136)collectRadarRequest(requestId)(line 137)isRequestComplete(requestId)(line 139)getFullCameraRequest(sensorId)(line 142)TODO Should be replaced when GE-2170 is complete.
sendAdvancedIMURequest(sensorId, vid)(line 158)collectAdvancedIMURequest(requestId)(line 165)sendGPSRequest(sensorId, vid)(line 174)collectGPSRequest(requestId)(line 181)sendPowertrainRequest(sensorId, vid)(line 190)collectPowertrainRequest(requestId)(line 197)sendIdealRADARRequest(sensorId, vid)(line 206)collectIdealRADARRequest(requestId)(line 213)sendRoadsSensorRequest(sensorId, vid)(line 222)collectRoadsSensorRequest(requestId)(line 229)sendMeshRequest(sensorId, vid)(line 238)collectMeshRequest(requestId)(line 245)isVluaRequestComplete(requestId)(line 254)attachSensor(sensorId, pos, dir, up, vid, isSensorStatic, isSnappingDesired, forceInsideTriangle, isAllowWheelNodes, isDirWorldSpace)(line 261)getSensorMatrix(sensorId)(line 265)getWorldFrame(sensorId)(line 269)getLocalFrame(sensorId)(line 273)getBeamData(vid)(line 277)getFullTriangleData(vid)(line 289)getWheelTriangleData(vid, wheelIndex)(line 301)getNodePositions(vid, nodeId)(line 313)getClosestMeshPointToGivenPoint(vid, point)(line 318)getClosestTriangle(vid, point, includeWheelNodes)(line 323)createCamera(vid, args)(line 328)createCameraWithSharedMemory(vid, args)(line 334)getCameraImage(sensorId)(line 340)getCameraAnnotations(sensorId)(line 346)getCameraDepth(sensorId)(line 352)getCameraData(sensorId)(line 358)getCameraDataShmem(sensorId)(line 365)processCameraData(sensorId)(line 369)getCameraSensorName(sensorId)(line 386)getCameraSensorPosition(sensorId)(line 390)getCameraSensorDirection(sensorId)(line 394)getCameraMaxPendingGpuRequests(sensorId)(line 398)getCameraRequestedUpdateTime(sensorId)(line 402)getCameraUpdatePriority(sensorId)(line 406)getCameraSize(sensorId)(line 410)getActiveCameraSensors()(line 414)setCameraSensorPosition(sensorId, pos)(line 419)Functions to set the fustrum properties of an existing camera sensor.
setCameraSensorDirection(sensorId, dir)(line 420)setCameraSensorUp(sensorId, dir)(line 421)setCameraSensorResolution(sensorId, x, y)(line 422)setCameraSensorFOVX(sensorId, x)(line 423)setCameraSensorNearFarPlanes(sensorId, pNear, pFar)(line 424)setCameraMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)(line 426)setCameraRequestedUpdateTime(sensorId, requestedUpdateTime)(line 430)setCameraUpdatePriority(sensorId, priority)(line 434)convertWorldPointToPixel(sensorId, point)(line 438)createRawLidar(vid, filename, args)(line 444)Creates a new Raw LiDAR sensor. [Note: these are managed in a special way. We return only the sector of data, based on the position of the sensor due to its rotation, since the last frame, and poll it ad-hoc.]
createLidar(vid, args)(line 504)createLidarWithSharedMemory(vid, args)(line 510)getLidarPointCloud(sensorId)(line 516)getLidarColourData(sensorId)(line 522)getLidarDataPositions(sensorId)(line 528)getLidarPointCloudShmem(sensorId)(line 547)getLidarColourDataShmem(sensorId)(line 551)getActiveLidarSensors()(line 555)getLidarSensorName(sensorId)(line 559)getLidarSensorPosition(sensorId)(line 563)getLidarSensorDirection(sensorId)(line 567)getLidarVerticalResolution(sensorId)(line 571)getLidarFrequency(sensorId)(line 575)getLidarMaxDistance(sensorId)(line 579)getLidarIsVisualised(sensorId)(line 583)getLidarIsAnnotated(sensorId)(line 587)getLidarMaxPendingGpuRequests(sensorId)(line 591)getLidarRequestedUpdateTime(sensorId)(line 595)getLidarUpdatePriority(sensorId)(line 599)setLidarVerticalResolution(sensorId, verticalResolution)(line 603)setLidarFrequency(sensorId, frequency)(line 607)setLidarMaxDistance(sensorId, maxDistance)(line 611)setLidarIsVisualised(sensorId, isVisualised)(line 615)setLidarIsAnnotated(sensorId, isAnnotated)(line 619)setLidarMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)(line 623)setLidarRequestedUpdateTime(sensorId, requestedUpdateTime)(line 627)setLidarUpdatePriority(sensorId, updatePriority)(line 631)createUltrasonic(vid, args)(line 635)getUltrasonicReadings(sensorId)(line 644)getActiveUltrasonicSensors()(line 648)getUltrasonicIsVisualised(sensorId)(line 652)getUltrasonicMaxPendingGpuRequests(sensorId)(line 656)getUltrasonicRequestedUpdateTime(sensorId)(line 660)getUltrasonicUpdatePriority(sensorId)(line 664)setUltrasonicIsVisualised(sensorId, isVisualised)(line 668)getUltrasonicSensorName(sensorId)(line 676)getUltrasonicSensorPosition(sensorId)(line 680)getUltrasonicSensorDirection(sensorId)(line 684)getUltrasonicSensorRadius(sensorId, distanceFromSensor)(line 688)setUltrasonicMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)(line 692)setUltrasonicRequestedUpdateTime(sensorId, requestedUpdateTime)(line 696)setUltrasonicUpdatePriority(sensorId, updatePriority)(line 700)visualiseUltrasonicSensor(sensorId, dtSim)(line 704)createRadar(vid, args)(line 788)getRadarReadings(sensorId)(line 794)getRadarPPIData(sensorId)(line 800)getRadarRangeDopplerData(sensorId)(line 806)getActiveRadarSensors()(line 812)getRadarMaxPendingGpuRequests(sensorId)(line 816)getRadarRequestedUpdateTime(sensorId)(line 820)getRadarUpdatePriority(sensorId)(line 824)getRadarSensorName(sensorId)(line 828)getRadarSensorPosition(sensorId)(line 832)getRadarSensorDirection(sensorId)(line 836)setRadarMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)(line 840)setRadarRequestedUpdateTime(sensorId, requestedUpdateTime)(line 844)setRadarUpdatePriority(sensorId, updatePriority)(line 848)createAdvancedIMU(vid, args)(line 852)removeAdvancedIMU(vid, sensorId)(line 904)getAdvancedIMUReadings(sensorId)(line 911)updateAdvancedIMULastReadings(data)(line 920)updateAdvancedIMUAdHocRequest(data)(line 932)setAdvancedIMUUpdateTime(sensorId, vid, updateTime)(line 937)setAdvancedIMUIsUsingGravity(sensorId, vid, isUsingGravity)(line 942)setAdvancedIMUIsVisualised(sensorId, vid, isVisualised)(line 948)createGPS(vid, args)(line 954)removeGPS(vid, sensorId)(line 1002)getGPSReadings(sensorId)(line 1009)updateGPSLastReadings(data)(line 1018)updateGPSAdHocRequest(data)(line 1030)setGPSUpdateTime(sensorId, vid, updateTime)(line 1035)setGPSIsVisualised(sensorId, vid, isVisualised)(line 1040)createPowertrainSensor(vid, args)(line 1046)removePowertrainSensor(vid, sensorId)(line 1066)getPowertrainReadings(sensorId)(line 1073)updatePowertrainLastReadings(data)(line 1082)updatePowertrainAdHocRequest(data)(line 1094)setPowertrainUpdateTime(sensorId, vid, updateTime)(line 1099)createIdealRADARSensor(vid, args)(line 1104)removeIdealRADARSensor(vid, sensorId)(line 1124)getIdealRADARReadings(sensorId)(line 1131)updateIdealRADARLastReadings(data)(line 1140)updateIdealRADARAdHocRequest(data)(line 1152)setIdealRADARUpdateTime(sensorId, vid, updateTime)(line 1157)createRoadsSensor(vid, args)(line 1162)removeRoadsSensor(vid, sensorId)(line 1182)getRoadsSensorReadings(sensorId)(line 1189)updateRoadsSensorLastReadings(data)(line 1198)updateRoadsSensorAdHocRequest(data)(line 1210)setRoadsSensorUpdateTime(sensorId, vid, updateTime)(line 1215)createMeshSensor(vid, args)(line 1220)removeMeshSensor(vid, sensorId)(line 1237)updateMeshAdHocRequest(data)(line 1243)setMeshUpdateTime(sensorId, vid, updateTime)(line 1248)getRoadGraph()(line 1253)resetNavgraph()(line 1272)createValidation(vid, testId)(line 1276)removeValidation(vid, sensorId)(line 1319)isTimeEvolutionComplete(vid)(line 1324)markVehicleFeedingComplete()(line 1328)createTyreBarrierTest(vid, IMUPos, IMUDir, IMUUp, smootherStrength, initialVel, startPos)(line 1333)removeTyreBarrierTest(vid, sensorId)(line 1376)getLuaSensorName(sensorType, sensorId)(line 1381)getLuaSensorConfiguration(sensorType, sensorId)(line 1403)onUpdate(dtReal, dtSim, dtRaw)(line 1456)onDeserialized(data)(line 1503)onVehicleDestroyed(vid)(line 1509)