sbp.piksi module

System health, configuration, and diagnostic messages specific to the Piksi L1 receiver, including a variety of legacy messages that may no longer be used.

class sbp.piksi.Latency(payload=None, **kwargs)[source]

Bases: object

Latency.

Statistics on the latency of observations received from the base

station. As observation packets are received their GPS time is compared to the current GPS time calculated locally by the receiver to give a precise measurement of the end-to-end communication latency in the system.

avg
: int
Average latency
lmin
: int
Minimum latency
lmax
: int
Maximum latency
current
: int
Smoothed estimate of the current latency
avg
current
from_binary(d)[source]
lmax
lmin
to_binary()[source]
class sbp.piksi.MsgAlmanac(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_ALMANAC (0x0069).

You can have MSG_ALMANAC inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

This is a legacy message for sending and loading a satellite

alamanac onto the Piksi’s flash memory from the host.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
class sbp.piksi.MsgCellModemStatus(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_CELL_MODEM_STATUS (0x00BE).

You can have MSG_CELL_MODEM_STATUS inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

If a cell modem is present on a piksi device, this message

will be send periodically to update the host on the status of the modem and its various parameters.

sbp
: SBP
SBP parent object to inherit from.
signal_strength
: int
Received cell signal strength in dBm, zero translates to unknown
signal_error_rate
: float
BER as reported by the modem, zero translates to unknown
reserved
: array
Unspecified data TBD for this schema
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
reserved
signal_error_rate
signal_strength
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
class sbp.piksi.MsgCommandOutput(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_COMMAND_OUTPUT (0x00BC).

You can have MSG_COMMAND_OUTPUT inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

Returns the standard output and standard error of the

command requested by MSG_COMMAND_REQ. The sequence number can be used to filter for filtering the correct command.

sbp
: SBP
SBP parent object to inherit from.
sequence
: int
Sequence number
line
: string
Line of standard output or standard error
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
line
sequence
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
class sbp.piksi.MsgCommandReq(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_COMMAND_REQ (0x00B8).

You can have MSG_COMMAND_REQ inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

Request the recipient to execute an command.

Output will be sent in MSG_LOG messages, and the exit code will be returned with MSG_COMMAND_RESP.

sbp
: SBP
SBP parent object to inherit from.
sequence
: int
Sequence number
command
: string
Command line to execute
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
command
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
sequence
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
class sbp.piksi.MsgCommandResp(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_COMMAND_RESP (0x00B9).

You can have MSG_COMMAND_RESP inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

The response to MSG_COMMAND_REQ with the return code of

the command. A return code of zero indicates success.

sbp
: SBP
SBP parent object to inherit from.
sequence
: int
Sequence number
code
: int
Exit code
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
code
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
sequence
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
class sbp.piksi.MsgCwResults(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_CW_RESULTS (0x00C0).

You can have MSG_CW_RESULTS inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

This is an unused legacy message for result reporting from the

CW interference channel on the SwiftNAP. This message will be removed in a future release.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
class sbp.piksi.MsgCwStart(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_CW_START (0x00C1).

You can have MSG_CW_START inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

This is an unused legacy message from the host for starting

the CW interference channel on the SwiftNAP. This message will be removed in a future release.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
class sbp.piksi.MsgDeviceMonitor(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_DEVICE_MONITOR (0x00B5).

You can have MSG_DEVICE_MONITOR inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

This message contains temperature and voltage level measurements from the

processor’s monitoring system and the RF frontend die temperature if available.

sbp
: SBP
SBP parent object to inherit from.
dev_vin
: int
Device V_in
cpu_vint
: int
Processor V_int
cpu_vaux
: int
Processor V_aux
cpu_temperature
: int
Processor temperature
fe_temperature
: int
Frontend temperature (if available)
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
cpu_temperature
cpu_vaux
cpu_vint
dev_vin
fe_temperature
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
class sbp.piksi.MsgIarState(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_IAR_STATE (0x0019).

You can have MSG_IAR_STATE inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

This message reports the state of the Integer Ambiguity

Resolution (IAR) process, which resolves unknown integer ambiguities from double-differenced carrier-phase measurements from satellite observations.

sbp
: SBP
SBP parent object to inherit from.
num_hyps
: int
Number of integer ambiguity hypotheses remaining
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
num_hyps
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
class sbp.piksi.MsgInitBase(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_INIT_BASE (0x0023).

You can have MSG_INIT_BASE inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

This message initializes the integer ambiguity resolution (IAR)

process on the Piksi to use an assumed baseline position between the base station and rover receivers. Warns via MSG_PRINT if there aren’t a shared minimum number (4) of satellite observations between the two.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
class sbp.piksi.MsgMaskSatellite(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_MASK_SATELLITE (0x002B).

You can have MSG_MASK_SATELLITE inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

This message allows setting a mask to prevent a particular satellite

from being used in various Piksi subsystems.

sbp
: SBP
SBP parent object to inherit from.
mask
: int
Mask of systems that should ignore this satellite.
sid
: GnssSignal
GNSS signal for which the mask is applied
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
mask
sid
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
class sbp.piksi.MsgMaskSatelliteDep(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_MASK_SATELLITE_DEP (0x001B).

You can have MSG_MASK_SATELLITE_DEP inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

Deprecated.

sbp
: SBP
SBP parent object to inherit from.
mask
: int
Mask of systems that should ignore this satellite.
sid
: GnssSignalDep
GNSS signal for which the mask is applied
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
mask
sid
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
class sbp.piksi.MsgNetworkBandwidthUsage(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_NETWORK_BANDWIDTH_USAGE (0x00BD).

You can have MSG_NETWORK_BANDWIDTH_USAGE inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

The bandwidth usage, a list of usage by interface.

sbp
: SBP
SBP parent object to inherit from.
interfaces
: array
Usage measurement array
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
interfaces
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
class sbp.piksi.MsgNetworkStateReq(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_NETWORK_STATE_REQ (0x00BA).

You can have MSG_NETWORK_STATE_REQ inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

Request state of Piksi network interfaces.

Output will be sent in MSG_NETWORK_STATE_RESP messages

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
class sbp.piksi.MsgNetworkStateResp(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_NETWORK_STATE_RESP (0x00BB).

You can have MSG_NETWORK_STATE_RESP inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

The state of a network interface on the Piksi.

Data is made to reflect output of ifaddrs struct returned by getifaddrs in c.

sbp
: SBP
SBP parent object to inherit from.
ipv4_address
: array
IPv4 address (all zero when unavailable)
ipv4_mask_size
: int
IPv4 netmask CIDR notation
ipv6_address
: array
IPv6 address (all zero when unavailable)
ipv6_mask_size
: int
IPv6 netmask CIDR notation
rx_bytes
: int
Number of Rx bytes
tx_bytes
: int
Number of Tx bytes
interface_name
: string
Interface Name
flags
: int
Interface flags from SIOCGIFFLAGS
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
flags
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
interface_name
ipv4_address
ipv4_mask_size
ipv6_address
ipv6_mask_size
rx_bytes
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
tx_bytes
class sbp.piksi.MsgReset(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_RESET (0x00B6).

You can have MSG_RESET inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

This message from the host resets the Piksi back into the

bootloader.

sbp
: SBP
SBP parent object to inherit from.
flags
: int
Reset flags
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
flags
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
class sbp.piksi.MsgResetDep(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_RESET_DEP (0x00B2).

You can have MSG_RESET_DEP inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

This message from the host resets the Piksi back into the

bootloader.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
class sbp.piksi.MsgResetFilters(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_RESET_FILTERS (0x0022).

You can have MSG_RESET_FILTERS inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

This message resets either the DGNSS Kalman filters or Integer

Ambiguity Resolution (IAR) process.

sbp
: SBP
SBP parent object to inherit from.
filter
: int
Filter flags
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
filter
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
class sbp.piksi.MsgSetTime(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_SET_TIME (0x0068).

You can have MSG_SET_TIME inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

This message sets up timing functionality using a coarse GPS

time estimate sent by the host.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
class sbp.piksi.MsgSpecan(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_SPECAN (0x0051).

You can have MSG_SPECAN inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

Spectrum analyzer packet.

sbp
: SBP
SBP parent object to inherit from.
channel_tag
: int
Channel ID
t
: GPSTime
Receiver time of this observation
freq_ref
: float
Reference frequency of this packet
freq_step
: float
Frequency step of points in this packet
amplitude_ref
: float
Reference amplitude of this packet
amplitude_unit
: float
Amplitude unit value of points in this packet
amplitude_value
: array
Amplitude values (in the above units) of points in this packet
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
amplitude_ref
amplitude_unit
amplitude_value
channel_tag
freq_ref
freq_step
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
t
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
class sbp.piksi.MsgSpecanDep(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_SPECAN_DEP (0x0050).

You can have MSG_SPECAN_DEP inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

Deprecated.

sbp
: SBP
SBP parent object to inherit from.
channel_tag
: int
Channel ID
t
: GPSTimeDep
Receiver time of this observation
freq_ref
: float
Reference frequency of this packet
freq_step
: float
Frequency step of points in this packet
amplitude_ref
: float
Reference amplitude of this packet
amplitude_unit
: float
Amplitude unit value of points in this packet
amplitude_value
: array
Amplitude values (in the above units) of points in this packet
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
amplitude_ref
amplitude_unit
amplitude_value
channel_tag
freq_ref
freq_step
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
t
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
class sbp.piksi.MsgThreadState(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_THREAD_STATE (0x0017).

You can have MSG_THREAD_STATE inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

The thread usage message from the device reports real-time

operating system (RTOS) thread usage statistics for the named thread. The reported percentage values must be normalized.

sbp
: SBP
SBP parent object to inherit from.
name
: string
Thread name (NULL terminated)
cpu
: int
Percentage cpu use for this thread. Values range from 0
  • 1000 and needs to be renormalized to 100

    stack_free
    : int

    Free stack space for this thread

    sender
    : int

    Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).

cpu
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
name
stack_free
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
class sbp.piksi.MsgUartState(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_UART_STATE (0x001D).

You can have MSG_UART_STATE inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

The UART message reports data latency and throughput of the UART

channels providing SBP I/O. On the default Piksi configuration, UARTs A and B are used for telemetry radios, but can also be host access ports for embedded hosts, or other interfaces in future. The reported percentage values must be normalized. Observations latency and period can be used to assess the health of the differential corrections link. Latency provides the timeliness of received base observations while the period indicates their likelihood of transmission.

sbp
: SBP
SBP parent object to inherit from.
uart_a
: UARTChannel
State of UART A
uart_b
: UARTChannel
State of UART B
uart_ftdi
: UARTChannel
State of UART FTDI (USB logger)
latency
: Latency
UART communication latency
obs_period
: Period
Observation receipt period
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
latency
obs_period
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
uart_a
uart_b
uart_ftdi
class sbp.piksi.MsgUartStateDepa(sbp=None, **kwargs)[source]

Bases: sbp.msg.SBP

SBP class for message MSG_UART_STATE_DEPA (0x0018).

You can have MSG_UART_STATE_DEPA inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields.

Deprecated

sbp
: SBP
SBP parent object to inherit from.
uart_a
: UARTChannel
State of UART A
uart_b
: UARTChannel
State of UART B
uart_ftdi
: UARTChannel
State of UART FTDI (USB logger)
latency
: Latency
UART communication latency
sender
: int
Optional sender ID, defaults to SENDER_ID (see sbp/msg.py).
from_binary(d)[source]

Given a binary payload d, update the appropriate payload fields of the message.

static from_json(s)[source]

Given a JSON-encoded string s, build a message object.

static from_json_dict(d)[source]
latency
to_binary()[source]

Produce a framed/packed SBP message.

to_json_dict()[source]
uart_a
uart_b
uart_ftdi
class sbp.piksi.NetworkUsage(payload=None, **kwargs)[source]

Bases: object

NetworkUsage.

The bandwidth usage for each interface can be reported

within this struct and utilize multiple fields to fully specify the type of traffic that is being tracked. As either the interval of collection or the collection time may vary, both a timestamp and period field is provided, though may not necessarily be populated with a value.

duration
: int
Duration over which the measurement was collected
total_bytes
: int
Number of bytes handled in total within period
rx_bytes
: int
Number of bytes transmitted within period
tx_bytes
: int
Number of bytes received within period
interface_name
: string
Interface Name
duration
from_binary(d)[source]
interface_name
rx_bytes
to_binary()[source]
total_bytes
tx_bytes
class sbp.piksi.Period(payload=None, **kwargs)[source]

Bases: object

Period.

Statistics on the period of observations received from the base

station. As complete observation sets are received, their time of reception is compared with the prior set’’s time of reception. This measurement provides a proxy for link quality as incomplete or missing sets will increase the period. Long periods can cause momentary RTK solution outages.

avg
: int
Average period
pmin
: int
Minimum period
pmax
: int
Maximum period
current
: int
Smoothed estimate of the current period
avg
current
from_binary(d)[source]
pmax
pmin
to_binary()[source]
class sbp.piksi.UARTChannel(payload=None, **kwargs)[source]

Bases: object

UARTChannel.

Throughput, utilization, and error counts on the RX/TX buffers

of this UART channel. The reported percentage values must be normalized.

tx_throughput
: float
UART transmit throughput
rx_throughput
: float
UART receive throughput
crc_error_count
: int
UART CRC error count
io_error_count
: int
UART IO error count
tx_buffer_level
: int
UART transmit buffer percentage utilization (ranges from

0 to 255)

rx_buffer_level
: int
UART receive buffer percentage utilization (ranges from

0 to 255)

crc_error_count
from_binary(d)[source]
io_error_count
rx_buffer_level
rx_throughput
to_binary()[source]
tx_buffer_level
tx_throughput