Central ESL subcommands

esl_c is the ESL Access Point client shell command and it supports the following subcommands.

ESL Client subcommands

ESL Client subcommands

Subcommand

Argument

Description

state

N/A

Show current AP state machine.

unassociated

connection index (0~CONFIG_BT_MAX_CONN)

Unassociate connected tag

force_un

connection index (0~CONFIG_BT_MAX_CONN)

ESL service 3.9.2.2.2 request tag to response with Basic State. This command allows AP to Unassociate connected tag without waiting for response.

bond_dump

N/A

Dump bonded ble address of ESL tags

unbond_all

N/A

Unbond all bonded ESL tags for debug.

unbond_ble

<address type> (0 = public, 1 = random, 2 = public_id, 3 = private_id)
<ble address> (xx:xx:xx:xx:xx:xx)

Unbond specific ESL tag by ble address.

ap_abs

[<abs value>] (optional)

Get or set (if input abs time value) local AP absolute time value.

update_abs

<conn_idx> (0 ~ CONFIG_BT_MAX_CONN)
<abs_value>

Update local AP and connected tag absolute time value.

factory

<esl_addr>

Send factory reset CP command to connected tag by esl address.

default_esl_addr

<esl_addr>

Set default esl address for Auto Onboarding and Auto PAST features .

update_complete

<conn_idx> (0 ~ CONFIG_BT_MAX_CONN)
[<esl_addr>] (optional)

Send update complete CP command to connected tag by connection index or esl address.

auto_ap

[<on/off>] (1/0) (optional)

Get or set auto AP mode.

Note

The following ESL tag database commands required CONFIG_BT_ESL_TAG_STORAGE enabled.

ESL Client subcommands (TAG_STORAGE)

Subcommand

Argument

Description

remove_all_tags

N/A

Remove all ESL tags from database, including ESL address / bond data / ESL response key.

list_tags_storage

N/A

List all ESL tags stored in database.

remove_tag

<esl_addr>

Remove tag from database by ESL address.

tags_per_group

<tag_count>

Set BT_ESL_AP_AUTO_TAG_PER_GROUP runtime.

groups_per_button

<group_count>

Set BT_ESL_AP_GROUP_PER_BUTTON runtime.

unbond_esl

<esl_addr>

Unbond tag from database by ESL address. This is used when the bonding data of the AP and the ESL are out of sync, i.e. the AP will have an LTK while the ESL may not. If the reconnection fails due to a missing LTK, the AP may clear and attempt to create a new bond.

OTS Client subcommands

esl_c obj_c is the Object Transfer client shell command and it supports the following subcommands.

Object Transfer client commands

Subcommand

Argument

Description

select

<idx> - (Min: 0, Max:Max image index of ESL tag)

Select Object on ESL tag with image index.

read_meta

<idx> - (Min: 0, Max:Max image index of ESL tag)

Read metadata of Object.

write

<connection index> (0 ~ CONFIG_BT_MAX_CONN)
<tag_img_idx> (0 ~ Max image index of ESL tag)
<AP Image idx> (0 ~ Max image stored in AP)

Write image with index on AP. The images stored in AP with filename pattern ots_image_XX. XX refers to hexdecimal index.

write_filename

<connection index> (0 ~ CONFIG_BT_MAX_CONN)
<tag_img_idx> (0 ~ Max image index of ESL tag)
<AP Image filename>

Write Image with filename on AP. The filename could be anything transferred from SMP.

ACL subcommands

esl_c acl shell command is related to the ESL Access Point ACL and it supports the following subcommands.

ACL commands

Subcommand

Argument

Description

disconnect

<connection index> (0 ~ CONFIG_BT_MAX_CONN)

Disconnect TAG

security

<connection index> (0 ~ CONFIG_BT_MAX_CONN)
<security level> (0 ~ 4)

Change ACL security level for development.

write_wo_rsp

<on/off> (0 = GATT use write procedure, 1 = GATT uses write without response)

Set write characteristics without response.

read_chrc

<connection index> (0 ~ CONFIG_BT_MAX_CONN)

Read information characteristics from connected ESL Tag.

scan

<on/off> (1/0)
<oneshot> (1 = scan for one device, 0 = scan continuously)

Scan ESL service.

list_scanned

N/A

Dump scanned BLE address of ESL device.

list_conn

N/A

Dump connected ESL device.

connect

<tag idx> (0 ~ Max scanned tag)

Connect ESL tag by scanned list.

connect_addr

<address type> (0 = public, 1 = random, 2 = public_id, 3 = private_id)
<ble address> (xx:xx:xx:xx:xx:xx)

Connect ESL tag by BLE address.(No need to be scanned).

bt_key_import

<ble address> (xx:xx:xx:xx:xx:xx)
<hex_string>

Import serialized BT bonding key runtime.

bt_key_export

N/A

Export serialized BT bonding key.

connect_esl

<esl_addr>

Connect ESL service tag with ESL address. This requires CONFIG_BT_ESL_TAG_STORAGE enabled.

load_bt_key_esl

<esl_addr>

Load bond data with ESL address from ESL . This requires CONFIG_BT_ESL_TAG_STORAGE enabled.

ap_key_update

<conn_idx>

Write AP sync key to connected ESL tag.

rsp_key_update

<conn_idx>

Write response key to connected ESL tag.

configure

<connection index> (0 ~ CONFIG_BT_MAX_CONN)
<esl_addr>

Configure connected tag manually.

discovery

<connection index> (0 ~ CONFIG_BT_MAX_CONN)

Discovery connected tag manually.

write_esl_addr

<connection index> (0 ~ CONFIG_BT_MAX_CONN)
<esl_addr>
<local only> (0 = only change esl addr on AP, 1 = change esl addr on AP and connecte ESL tag)

Write ESL address characteristic.

subscribe

<connection index> (0 ~ CONFIG_BT_MAX_CONN)

Subscribe ECP notifiy manually.

past

<connection index> (0 ~ CONFIG_BT_MAX_CONN)

Commence PAST(Periodic Advertising Sync Transfer) to connected ESL tag .

PAWR subcommands

esl_c pawr shell command is related to the ESL Access Point periodic advertising with respones (PAwR) and it supports the following subcommands.

PAWR commands

Subcommand

Argument

Description

sync_buf_status

<esl group index>(optional) (0 ~ CONFIG_ESL_CLIENT_MAX_GROUP)

Dump ESL sync packet buffer status.

push_sync_buf

<esl group index> (0 ~ CONFIG_ESL_CLIENT_MAX_GROUP)
<payload_hex_string>

Push ESL sync packet to buffer. AP will send packet in next subevent.

dump_sync_buf

<esl group index> (0 ~ CONFIG_ESL_CLIENT_MAX_GROUP)

Dump ESL sync buffer content.

dump_resp_buf

<esl group index> (0 ~ CONFIG_ESL_CLIENT_MAX_GROUP)

Dump ESL response buffer content.

start_pawr

N/A

Start pawr manually for development.

stop_pawr

N/A

Stop pawr manually for development.

update_pawr

<sync_packet type> (See predefined table)
<esl group index> (0 ~ CONFIG_ESL_CLIENT_MAX_GROUP)

Send predefined ESL packet.

Predefined ESL sync packet

This sample contains a few predefined ESL sync packets. The following table shows their content.

Note

Index of elements in ESL starts with 0 which means 0 is the first instance of elements (display/LED/sensor).

ESL Sync TLV commands

Sync packet type

Description

0x0

Broadcast Ping.

0x1

LED 0 flashing broadcast.

0x2

LED 1 flashing broadcast.

0x3

LED 1 on broadcast.

0x4

LED 0 off broadcast.

0x5

LED 1 on broadcast.

0x6

LED 0 off broadcast.

0x7

Display 0 image 0 broadcast.

0x8

Display 0 image 1 broadcast.

0x9

Read sensor 0 broadcast.

0xA

Ping default ESL_ID ~ ESL_ID + 4.

0xB

LED 0 flashing default ESL_ID ~ ESL_ID + 2.

0xC

LED 0 flashing default ESL_ID + 3, ESL_ID + 4. Fill first 2 slots with broadcast ping to make response slot begin with 2.

0xD

Led 1 flashing default ESL_ID ~ ESL_ID + 2.

0xE

LED 1 flashing default ESL_ID + 3, ESL_ID + 4. Fill first 2 slots with broadcast ping to make response slot begin with 2.

0xF

Read sensor 0 default ESL_ID ~ ESL_ID + 4.

0x10

ESLP/ESL/SYNC/BI-03-I [Response TLV Too Long]. Send 17 TLVs to default ESL_ID

0x11

Send 22 Pings to default ESL_ID + 1 and 1 for ESL_ID at TLVs slot 11.

0x12

Tag default ESL_ID ~ ESL_ID + 10 Display Img 0.

0x13

Tag default ESL_ID ~ ESL_ID + 10 Display img 1.

0x14

Tag default ESL_ID ~ ESL_ID + 10 Display img 2

0x15

Send Vendor-specific command 0x1F parameter 0x1 to tag default ESL_ID ~ ESL_ID + 10

0x16

Send Vendor-specific command 0x1F parameter 0x0 to tag default ESL_ID ~ ESL_ID + 10