RaceCapturePro Lua Scripting Examples: Difference between revisions

(added txCAN)
Line 95: Line 95:
  function onTick()
  function onTick()
   t = readAnalog(0)
   t = readAnalog(0)
   msg = {}
   msg = {t}
  msg[0] = t
   txCAN(1234, 0, msg)
   txCAN(1234, 0, msg)
  end
  end

Revision as of 20:36, 9 March 2014

API Reference

Complete API Reference

Automatically Start Logging based on GPS Speed

This script will automatically start logging to SD card when speed exceeds 10MPH and stop when it falls below.

function onTick()
  if getGpsSpeed() > 10 then
    startLogging()
  else
    stopLogging()
  end
end

Automatically start Logging upon Launch (AutoX / Rally / Hill Climb)

This script will start Logging when a dash mounted "ARM" switch is activated via an input and G-force exceeds a threshold Given:

  • GPIO 0 configured as input and connected to dash mounted "Arm" switch
  • Default RaceCapture/Pro mounting orientation (terminal block facing forward, mounted upright)
  • G-force launch threshold is -0.1 G
  • flipping the ARM switch to 'Off' will stop logging
setTickRate(30)

function onTick()
 arm = getGpio(0)
 g = getAccel(1)
 if arm == 0 then
   stopLogging()
 end
 if arm == 1 and g < 0.1 then
   startLogging()
 end
end

Activate a GPIO when start finish line is crossed

This script will pulse one of the GPIO outputs when the start/finish line is detected. First, the onTick rate is set to 10hz, then setGpio() is called with the result of the call to getAtStartFinish()

setTickRate(10)

function onTick()
  if getAtStartFinish() == 1 then
    setGpio(0, 1)
  else
    setGpio(0, 0)
  end
end

or

setTickRate(10)

function onTick()
  setGpio(0, getAtStartFinish())
end

Temperature Warning Indicator Light

This script will activate an output if an analog input exceeds a threshold. It's assumed a temperature sensor is connected to the Analog input channel 0 and is calibrated.

More information: Installation Guide, Sensor Guide, Operation Guide

function onTick()
 if getAnalog(0) > 212 then
   setGpio(0, 1)
 else
   setGpio(0, 0)
 end

3 stage Sequential Shift Light

Activates a 3 stage sequential shift light. Also see the Sequential Shift Light project

Given:

  • RPM sensor on timer input 0


setTickRate(15)

function onTick() 
	r = getTimerRpm(0) 
	if r > 5000 then setGpio(2,1) else setGpio(2,0) end 
	if r > 6000 then setGpio(1,1) else setGpio(1,0) end 
	if r > 7000 then setGpio(0,1) else setGpio(0,0) end
end

Send A CAN message with a temperature value

available in future Firmware version 2.0

Given:

  • Analog 0 reads a calibrated temperature value between 0 and 255
  • Destination CAN device is looking for a message with ID 1234
  • Standard (11 bit) CAN identifer
function onTick()
  t = readAnalog(0)
  msg = {t}
  txCAN(1234, 0, msg)
end