Simple Python module that read data
from SIM7600
and share them on the local DBus.
This repository is part of
the Smart Van Project.
FW Name: FW SIM7600
FW Group: com.robypomper.smartvan.fw.sim7600
FW Version: 1.0.1
README | CHANGELOG | TODOs | LICENCE
Once ran, this script sends AT commands and reads their responses using the
serial specified port then notify the DBus with updated values. The DBus
service and his properties depends on the model get from the device (using the
AT+CGMM
command). More info on Supported devices and value mapping.
This is a Python script, so python
is required to run it.
$ python --version
# if not installed, then run
$ sudo apt-get install python3 python3-pip
In addition, some other package must be installed in order to configure
python's dependencies like PyGObject
or pydbus
. If you are using a
debian/ubuntu based distribution, then you can run:
$ sudo apt-get install libcairo2-dev libgirepository1.0-dev dbus-x11
Once Python was installed on your machine, you can install the script's
requirements globally or create a dedicated venv
.
# Init venv (Optional)
$ python -m venv venev
$ source venv/bin/activate
# Install script's requirements
$ pip install -r requirements.txt
Now, you are ready to run the script with the command:
$ python run.py
or alternative options
$ python run.py --quiet
$ python run.py --debug --simulate
$ python run.py --dbus-name com.custom.bus --dbus-obj-path /custom/path --dbus-iface com.custom.IFace
For script's remote usage please see the dedicated page.
Defaults DBus params are:
- DBus Name:
com.waveshare.sim7600
- DBus Obj Path:
DEV_TYPE_*
as device code (eg:SIM7600
become/sim7600
, see Supported devices for the full list ofDEV_TYPE_*
values) - DBus Interface:
DEV_IFACE_*
(eg:com.waveshare.sim7600
, see Supported devices for the full list ofDEV_IFACE_*
values)
The run.py
script accept following arguments:
-h
,--help
: show this help message and exit-v
,--version
: show version and exit--port PORT
: Serial port name (default:/dev/ttyAMA0
)--speed SPEED
: Serial port speed (default:115200
)--simulate
: Simulate a UPS Pack V3 Device (default:False
)--dbus-name DBUS_NAME
: DBus name to connect to (Default:com.waveshare.sim7600
)--dbus-obj-path DBUS_OBJ_PATH
: DBus object path to use for object publication (Default: thedevice_type_code
string)--dbus-iface DBUS_IFACE
: DBus object's interface (Default: current device'sdbus_iface
)--dev
: enable development mode, increase log messages--debug
: Set log level to debug--quiet
: Set log level to error and
The main goal for this script is to link the Device's protocol to the DBus. So, in addition to the main script, all other files are related to the Device or to the DBus protocols.
Module's files can be grouped in 2 categories:
Definitions:
- sim7600/mappings.py:
definition of
PID
,PROPS_CODES
andCALC_PROPS_CODES
tables - sim7600/_definitions.py: definitions of supported devices, DUbus ifaces and custom properties types
- sim7600/_parsers.py: custom properties parsers
- sim7600/_calculated.py: custom properties calculators and data generator methods for simulator
- sim7600/_dbus_descs.py: definition of DBus iface's descriptors
Operations:
- run.py: main firmware script
- sim7600/device.py: class that represent the device
- sim7600/simulator.py: class that represent the simulated device
- dbus/obj.py: class that represent aDBus object to publish
- dbus/daemon.py: methods to handle the DBus daemon
- base/commons.py: commons properties parsers and simulator methods
- base/device.py: base class for devices
- base/device_serial.py: base implementation for serial devices