About Popoto Pshell
This topic describes the advantages of using the Popoto pshell interface.
Access Every Modem Command
The pshell interface provides direct access to the modem's command interface. Because it communicates using the same JSON commands as the Popoto API, it can execute nearly every function available in the modem firmware.
This allows users to:
- Configure modem parameters
- Query modem status
- Enable or disable features
- Start and stop recordings
- Play recorded signals
- Configure streaming modes
- Execute diagnostic commands
New firmware features are often available through the pshell immediately, while the Web UI may require updates before those features appear graphically.
Ideal for Development
The pshell interfaceis the preferred interface during software development because it allows engineers to test commands interactively before incorporating them into an application.
A typical development workflow is:
- Experiment with commands in the pshell interface.
- Verify the modem response.
- Incorporate the same command into a Python or MATLAB application.
- Automate the workflow.
Since the Popoto API generates the same underlying JSON commands, successful pshell interface commands can usually be translated directly into application code.
Supports Automation
Unlike the Web UI, the pshell interface can be scripted.
Engineers commonly use scripts to:
- Configure multiple modems
- Perform production tests
- Execute repetitive validation procedures
- Automate laboratory experiments
- Run overnight endurance tests
- Collect diagnostic information
Because commands can be issued from shell scripts or Python programs, the pshell interface is well suited for automated testing and manufacturing.
Easier Remote Operation
The pshell interface requires very little network bandwidth and can be accessed over a simple serial or TCP connection.
This makes it practical when:
- Working over slow links
- Connecting through remote terminals
- Accessing headless systems
- Troubleshooting systems without a graphical desktop
The Web UI requires a browser and transfers considerably more graphical data.
Better for Diagnostics
Many diagnostic functions are easier to perform from the pshell interface.
Examples include:
- Viewing detailed command responses
- Capturing command logs
- Enabling debug logging
- Recording PCM data
- Running engineering test commands
- Accessing features intended primarily for development
Because every response is displayed directly, engineers can see exactly how the modem reacts to each command.
Reproducible Test Procedures
Commands entered into the pshell interface can be saved into scripts or documentation.
For example, a field test procedure can specify:
setvaluef TxPowerWatts 4
setvaluei PayloadMode 1
transmit Hello
Another engineer can execute the exact same sequence, ensuring consistent testing.
A graphical interface generally requires describing menu selections, button clicks, and dialog settings, which are more difficult to document precisely.
Faster Configuration
Experienced users often find the pshell interface faster than navigating multiple Web UI pages.
For example, changing transmit power requires only a single command:
setvaluef TxPowerWatts 4
Similarly, reading the current transmit power is simply:
getvaluef TxPowerWatts
Power users can configure an entire modem in seconds using a sequence of commands.
Foundation of the API
The Popoto Python and MATLAB APIs are built on the same command interface used by the pshell interface.
This means users can:
- Prototype commands manually in the pshell interface.
- Observe the modem's responses.
- Convert those commands directly into API calls.