Skip to main content

Getting and Setting Modem Parameters

Use the Popoto Python API to read and change modem parameters such as payload mode and transmit power.

Connect to the Modem​

Import the popoto class and create a modem object using the modem IP address and command port:

from popoto import popoto

modem = popoto("10.0.0.242", 17000)

Replace 10.0.0.242 with the IP address of your modem.

Set a Parameter​

Use set() with the parameter name and new value:

modem.set("PayloadMode", 1)
modem.set("TxPowerWatts", 4.0)

You can also use a typed setter. Use setValueI() for an integer or setValueF() for a floating-point number:

modem.setValueI("PayloadMode", 1)
modem.setValueF("TxPowerWatts", 4.0)

Get a Parameter​

First, request the parameter:

modem.get("PayloadMode")

The modem returns the value asynchronously. Wait for a response containing the requested parameter:

reply = modem.waitForSpecificReply("PayloadMode", None, 3)

if "Timeout" in reply:
print("The modem did not respond.")
else:
print(reply["PayloadMode"])
note

get() and the typed getter methods send a request but do not return the parameter value directly. Read the value from the modem response returned by waitForSpecificReply().

Complete Example​

from popoto import popoto

modem = popoto("10.0.0.242", 17000)

modem.set("PayloadMode", 1)

modem.get("PayloadMode")
reply = modem.waitForSpecificReply("PayloadMode", None, 3)

if "Timeout" in reply:
print("The modem did not respond.")
else:
print(f"PayloadMode: {reply['PayloadMode']}")

modem.tearDownPopoto()
modem.close()