DIO
DIO Functions
This category contains functions that enable pulse devices to use DIO (digital input/output).
| API Name | Brief Description |
|---|---|
| api.AnalogReadPin(pin) | Reads analog value on defined pin. |
| api.DIOwaitForEvent(pin, event, sync, timeout) | Waits for specified event on defined pin. |
| api.DIOreadPin(pin) | Reads DIO pin state. |
| api.DIOwritePin(pin, state) | Writes DIO pin state. |
api.AnalogReadPin(pin)
api.AnalogReadPin(1)
Reads analog value on defined pin.
Warning: Disabled by default, requires firmware and hardware changes.
Arguments
- pin (integer): Defined analog pin.
Return
- voltage (integer): Measured voltage value.
Example
-- Read analog value on pin 1
mV = api.AnalogReadPin(1)
print("Raw value: " .. tostring(mV) .. " mV")
api.DIOwaitForEvent(pin, event, sync, timeout)
api.DIOwaitForEvent(1, 1)
Waits for specified event on defined pin.
Info: If event occurs, device wakes up and calls onWake() function.
Arguments
- pin (integer): Pin number,
1to4. - event (integer): Event to wait for:
0- unregister.1- rising.2- falling.3- both.
Optional
-
sync (integer, optional):
1synchronous event is requested.0asynchronous (default).
-
timeout (integer, optional): Time in milliseconds to wait, only used if sync is
1.
Return
-
status (integer):
-
1-4- success, the value is the pin number that was (registered or) triggered.-
in async mode: returned immediately after registration.
-
in sync mode: returned when the event occurs.
-
-
0- success; the event was unregistered/disabled for the pin (event = 0). -
-1- invalid pin (must be 1-4). -
-2- invalid event (must be 0-3). -
-3- timeout (only possible when sync = 1 and timeout > 0).
-
Example
-- Wait for rising edge on pin 1
api.DIOwaitForEvent(1, 1)
--------------------------------
function onStartup()
print("Starting up Lua VM...")
print("Float Gauge script ver. " .. version)
api.nbAT("APN=" .. APN)
api.nbAT("PLMNID="..PLMNID)
api.exec("setSwWdogNoComReloadValue", noComWdg)
print(
"Set input " ..
tostring(directInput) .. " and " .. tostring(invertedInput) .. " to rising/falling edge event source"
)
api.DIOwaitForEvent(directInput, 3)
api.DIOwaitForEvent(invertedInput, 3)
api.DIOreadPin(pin)
api.DIOreadPin(1)
Reads DIO pin state.
Arguments
- pin (integer): Pin number,
1to4.
Return
- state (integer):
1pin is set.0pin is not set.
Example
-- Read state of pin 1
state = api.DIOreadPin(1)
api.DIOwritePin(pin, state)
api.DIOwritePin(1, 1)
Writes DIO pin state.
Arguments
- pin (integer): Pin number,
1to4.
Optional
- state (integer, optional): Pin state:
-2- analog.-1- high impedance.0- low.1- high.-2- default.
Return
- status (integer):
0for success.-1for failure.
Example
-- Set logical 1 to pins 2 and 3, and logical 0 to pins 1 and 4
api.DIOwritePin(1, 0)
api.DIOwritePin(2, 1)
api.DIOwritePin(3, 1)
api.DIOwritePin(4, 0)
-- Read state of pins 1 to 4
print("pin 1 set to:", api.DIOreadPin(1))
print("pin 2 set to:", api.DIOreadPin(2))
print("pin 3 set to:", api.DIOreadPin(3))
print("pin 4 set to:", api.DIOreadPin(4))