playNumber(value, unit [, attributes])

Play a numerical value (text to speech)

@status current Introduced in 2.0.0

OpenTX 2.0:

Unit

Sound

File (.wav)

Automatic conversion rules

0

---

--- (no unit played)

1

Volts

116

2

Amps

118

3

Meters per Second

120

4

missing file

122

5

Kilometers per Hour / Miles per Hour

124 / 142

Input value is KPH

6

Meters / Feet

126 / 140

Input value is meters

7

Degrees

128

Input value is celsius, converted to Fahrenheit for Imperial

8

Percent

130

9

Milliamps

132

10

Milliamp Hours

134

11

Watts

136

12

DB

138

13

Feet

140

14

Kilometers per Hour / Miles per Hour

124 / 142

Input value is in Knots, converted to KPH or MPH

15

Hours

144

16

Minutes

146

17

Seconds

148

18

RPM

150

19

Gee

152

20

Degrees

128

OpenTX 2.1:

2.1 Unit

Sound

Sound File (.wav)

0

---

--- (no unit played)

1

Volts

116

2

Amps

118

3

Milliamps

120

4

Knots

122

5

Meters per Second

124

6

Feet per Second

126

7

Kilometers per Hour

128

8

Miles per Hour

130

9

Meters

132

10

Feet

134

11

Degrees Celsius

136

12

Degrees Fahrenheit

138

13

Percent

140

14

Milliamp Hours

142

15

Watts

144

16

DB

146

17

RPM

148

18

Gee

150

19

Degrees

152

20

Milliliters

154

21

Fluid Ounces

156

22

Hours

158

23

Minutes

160

24

Seconds

162

Parameters

  • value (number) number to play. Value is interpreted as integer.

  • unit (number) unit identifier (see table todo)

  • attributes (unsigned number) possible values:

    • 0 or not present plays integral part of the number (for a number 123 it plays 123)

    • PREC1 plays a number with one decimal place (for a number 123 it plays 12.3)

    • PREC2 plays a number with two decimal places (for a number 123 it plays 1.23)

Return value

none

Notice

2.0 Only - automatic conversion of units for distance, speed, and temperature.

Examples

Example mix script

local nbr = 0
local unit = 0
local prec = 0
local lastnbr = 0
local lastunit = 0
local lastprec = 0
local lasttime = 0

local input =
    {
        { "innbr", SOURCE},
        { "inprec", SOURCE},
        { "toggle", SOURCE}
    }

local output = {"nbr", "prec", "unit"}

local function run(innbr, inprec, toggle)
  local change = false
  local advance = false
  local timenow = getTime()

  nbr = innbr -- will range from - 1024 thru + 1024
  prec = math.floor((inprec + 1024) * (2 / 2014)) -- force range to 0 thru 2

  if (toggle > 0) then
    change = true
    advance = true
  end

  if math.abs(lastnbr - nbr) > 10 then
    change = true
  end

  if not (lastprec == prec) then
    change = true
  end

  if change and ((timenow - lasttime) > 200) then
    lasttime = timenow
    lastnbr = nbr
    if advance then
      lastunit = (lastunit + 1) % 31
    end
    lastprec = prec
    if (lastprec == 0) then
      playNumber(lastnbr, lastunit, 0)
    elseif (lastprec == 1) then
      playNumber(lastnbr, lastunit, PREC1)
    else
      playNumber(lastnbr, lastunit, PREC2)
    end
  end
  return lastnbr * 10.24, lastprec * 10.24, lastunit * 10.24
end

return {run=run, input=input, output=output}

Last updated