Specifications
2. SNAP Overview
SNAP is a family of software technologies that together form an integrated, end-to-end solution for
wireless monitoring and control. The latest version is 2.4, which this document covers.
Key features of SNAP
• All devices are peers – any device can be a bridge for Portal, do mesh routing, sleep, etc. There are
no “coordinators” in SNAP.
• SNAP implements a full mesh topology. Any node can talk directly to any other node within radio
range, and can talk indirectly to any node within the SNAP network.
• Communication among devices can be unicast (reliable) or multicast (unacknowledged).
• Remote Procedure Call (RPC) among peers is the fundamental method of messaging.
• The PC based user interface (Portal) appears as a peer device on the SNAP network.
RPC
All SNAP devices implement a core set of built-in functions (procedures) to handle basic network
configuration, system services, and device hardware control. These functions may be invoked remotely
from Portal or from any other device on the SNAP network. Additional user-defined functions may be
uploaded to devices as well. This upload process can be over directly connected serial interfaces, or
over the air. Once uploaded, these functions are also callable locally or remotely, and may themselves
invoke local and remote functions. Functions are defined in an embedded subset of the Python
language, called SNAPpy.
Example HVAC System Showing RPC Call-flow (arrows)
SNAPpy Scripting
SNAPpy is a subset of the Python programming language, optimized for low-power embedded
devices. A SNAPpy “script” is a collection of functions and data which are processed by Portal and
Page 14 of 202 SNAP Reference Manual Document Number 600-0007K