Links

Using the CLI

Identifying the modem's serial connection

First, you will need the path to your USB modem.
On Mac, to verify that the modem is available, run ls /dev/tty.usb*
You should see a usb modem entry similar to the below:
/dev/tty.usbmodemD9E8C0FB84611
On Windows, you should find the COM port in Device Manager, under Ports (COM & LPT).
Use this in place of /dev/tty.usbmodemXXXX below.
$ blecon-cli
blecon 0.2.2
The Blecon CLI
USAGE:
blecon-cli [OPTIONS] --port <PORT> <SUBCOMMAND>
OPTIONS:
-d, --debug Show requests and responses exchanged with the modem
-h, --help Print help information
-p, --port <PORT> Set the serial port to use
-V, --version Print version information
SUBCOMMANDS:
command Raw Command
get-device-url Get device URL
get-identity Get device identity
get-info Get Info
help Print this message or the help of the given subcommand(s)
identify Identify device
ping Ping modem
read-status Reads modem status
request Request
set-application-data Set Application Data
wait Wait for event

Structure

All commands require the --port (or -p) parameter to be set to the serial port the modem is connected to.
To get help about any sub-command, prefix the sub-command with help. For instance:
$ blecon-cli help request
blecon-cli-request
Request
USAGE:
blecon-cli --port <PORT> request [OPTIONS] <REQUEST_PAYLOAD>
ARGS:
<REQUEST_PAYLOAD> The payload to send in hex form
OPTIONS:
-h, --help Print help information
-t, --text Parse payload and response as text

High-level sub-commands

The Blecon CLI supports a range of high-level commands. The modem's output is parsed to human-readable format.
For instance, you can get the device's ID with the get-identity subcommand:
$ blecon-cli -p /dev/tty.usbmodemXXXX get-identity
Device Id: 4d9deae655254dd19b83ccddbc000c70
You can also issue a blecon request:
$ blecon-cli -p /dev/tty.usbmodemXXXX request --text "Hello Blecon\!"
Response: Hi there!

Tracing

The CLI is helpful to understand the Command Protocol. Use the --debug (or -d) flag to enable tracing. For instance with the command above:
$ blecon-cli -p /dev/tty.usbmodemED6E193171F31 -d get-identity
Request
Command Id Request
> 03000000
GetIdentity 0 bytes
Response
Error Code Response
< 0000 4D9DEAE655254DD19B83CCDDBC000C70
Ok(()) 16 bytes
Device Id: 4d9deae655254dd19b83ccddbc000c70

Low-level sub-commands

All commands listed in the List of Commands are available as a CLI sub-command:
$ blecon-cli command --help
blecon-cli-command
Raw Command
USAGE:
blecon-cli --port <PORT> command <ID> [PAYLOAD]
ARGS:
<ID> The command id to send [possible values: read-status, ping, get-identity,
get-device-url, request-connection, close-connection, send-request,
get-response, get-error, get-info]
<PAYLOAD> A hex-encoded payload to send
OPTIONS:
-h, --help Print help information
Additionally, the wait sub-command can be used to wait for an event as described in the Command Format section.
$ blecon-cli wait --help
blecon-cli-wait
Wait for event
USAGE:
blecon-cli --port <PORT> wait [OPTIONS]
OPTIONS:
-h, --help Print help information
-t, --timeout <TIMEOUT> Time to wait for in milliseconds [default: 10000]