Introduction
SimpleIPMgr and SimpleIPMote are console (non-graphical) applications which show how to interact programmatically with the API of the respective devices. They are meant to serve as sample code.
Running
This sample application is a collection of different scripts:
SimpleIPMgr
which exercises the API of the SmartMesh IP ManagerSimpleIPMote
which exercises the API of the SmartMesh IP Mote
You can run those scripts in two ways:
- by double-clicking on the corresponding Windows executable at
/win/
- by double-clicking on its source files at
/src/
bin/Simple/
Description
These scripts take you step by step through exploring the capabilities of the SmartMesh SDK. One example output is:
Simple Application which interacts with the IP mote - (c) Dust Networks ================== Step 1. API exploration ======================== ===== Load the API definition of the IP mote done. ===== List all the defined command IDs: [1, 2, 6, 7, 8, 9, 12, 16, 17, 18, 21, 22, 23, 24, 36, 40] ===== List all the defined command names: ['setParameter', 'getParameter', 'join', 'disconnect', 'reset', 'lowPowerSleep', 'testRadioRx', 'clearNV', 'requestService', 'getServiceInfo', 'openSocket', 'cl oseSocket', 'bindSocket', 'sendTo', 'search', 'testRadioTxExt'] ===== Get the command name of command ID 2: getParameter ===== Get the command ID of command name 'getParameter': 2 ===== List the subcommand of command 'getParameter': ['macAddress', 'networkId', 'txPower', 'joinDutyCycle', 'eventMask', 'moteInfo', 'netInfo', 'moteStatus', 'time', 'charge', 'testRadioRxStats', 'OTAPLockout', ' moteId', 'ipv6Address', 'routingMode', 'appInfo', 'powerSrcInfo', 'powerCostInfo ', 'mobilityType', 'advKey', 'sizeInfo', 'autoJoin'] ===== Get a description of the getParameter.moteStatus command: The getParameter<moteStatus> command is used to retrieve current mote state ando ther dynamic information. ===== List the name of the fields in the getParameter.moteStatus request: [] ===== List the name of the fields in the getParameter.moteStatus response: ['state', 'reserved_0', 'reserved_1', 'numParents', 'alarms', 'reserved_2'] ===== Print the format of the getParameter.moteStatus 'state' response field: int ===== Print the length of the getParameter.moteStatus 'state' response field: 1 ===== Print the valid options of the getParameter.moteStatus 'state' response field: [0, 1, 2, 3, 4, 5, 6, 7, 8] ===== Print the description of each valid options of the getParameter.moteStatus 'stat e' response field: ['init', 'idle', 'searching', 'negotiating', 'connected', 'operational', 'discon nected', 'radiotest', 'promiscuous listen'] ================== Step 2. Connecting to a device ================= Do you want to connect to a device? [y/n] y Enter the serial port of the IP mote's API (e.g. COM30) COM6 ===== Creating connector done. ===== Connecting to IP mote done. ================== Step 3. Getting information from the device ==== ===== Retrieve the moteStatus, through 'raw' API access: {'numParents': 0, 'reserved_1': 0, 'reserved_0': 0, 'reserved_2': 0, 'state': 1, 'RC': 0, 'alarms': 0} ===== Retrieve the moteStatus, through function-based API access: Tuple_dn_getParameter_moteStatus(RC=0, state=1, reserved_0=0, reserved_1=0, numP arents=0, alarms=0, reserved_2=0) ================== Step 4. Disconnecting from the device ========== ===== Disconnecting from IP mote done. Script ended. Press Enter to exit.