蓝牙:MAP Shell

本文档介绍如何运行蓝牙经典 MAP(消息访问配置文件)shell 功能。 map 命令提供蓝牙经典 MAP shell 命令。

命令

主命令

map 命令:

uart:~$ map
map - Bluetooth MAP shell commands
Subcommands:
  add_header  : Adding header sets
  mce         : MCE commands
  mse         : MSE commands

MCE 命令

map mce 命令:

uart:~$ map mce
mce - MCE commands
Subcommands:
  mas  : MCE MAS commands
  mns  : MCE MNS commands

MCE MAS 命令

map mce mas 命令:

uart:~$ map mce mas
mas - MCE MAS commands
Subcommands:
  discover            : [none]
  select              : <instance_id>
  rfcomm_connect      : <channel> <instance_id> [supported_features]
  rfcomm_disconnect   : [none]
  l2cap_connect       : <psm> <instance_id> [supported_features]
  l2cap_disconnect    : [none]
  connect             : [none]
  disconnect          : [none]
  abort               : [none]
  set_folder          : <path: "/" | ".." | "../folder" | "folder">
  set_ntf_reg         : [none]
  get_folder_listing  : [srmp]
  get_msg_listing     : [name <folder_name>] [srmp]
  get_msg             : <msg_handle> [srmp]
  set_msg_status      : <msg_handle>
  push_msg            : [folder_name]
  update_inbox        : [none]
  get_mas_inst_info   : [srmp]
  set_owner_status    : [none]
  get_owner_status    : [srmp]
  get_convo_listing   : [srmp]
  set_ntf_filter      : [none]

MCE MNS 命令

map mce mns 命令:

uart:~$ map mce mns
mns - MCE MNS commands
Subcommands:
  register           : [none]
  rfcomm_register    : [none]
  rfcomm_disconnect  : [none]
  l2cap_register     : [none]
  l2cap_disconnect   : [none]
  connect            : <rsp: success, error> [rsp_code]
  disconnect         : <rsp: success, error> [rsp_code]
  abort              : <rsp: success, error> [rsp_code]
  send_event         : <rsp: noerror, error> [rsp_code] [srmp]

MSE 命令

map mse 命令:

uart:~$ map mse
mse - MSE commands
Subcommands:
  mas  : MSE MAS commands
  mns  : MSE MNS commands

MSE MAS 命令

map mse mas 命令:

uart:~$ map mse mas
mas - MSE MAS commands
Subcommands:
  select              : <instance_id>
  register            : [none]
  rfcomm_register     : [none]
  rfcomm_disconnect   : [none]
  l2cap_register      : [none]
  l2cap_disconnect    : [none]
  connect             : <rsp: success, error> [rsp_code]
  disconnect          : <rsp: success, error> [rsp_code]
  abort               : <rsp: success, error> [rsp_code]
  set_folder          : <rsp: success, error> [rsp_code]
  set_ntf_reg         : <rsp: noerror, error> [rsp_code]
  get_folder_listing  : <rsp: noerror, error> [rsp_code] [srmp]
  get_msg_listing     : <rsp: noerror, error> [rsp_code] [srmp]
  get_msg             : <rsp: noerror, error> [rsp_code] [srmp]
  set_msg_status      : <rsp: noerror, error> [rsp_code]
  push_msg            : <rsp: noerror, error> [rsp_code] [srmp]
  update_inbox        : <rsp: noerror, error> [rsp_code]
  get_mas_inst_info   : <rsp: noerror, error> [rsp_code] [srmp]
  set_owner_status    : <rsp: noerror, error> [rsp_code]
  get_owner_status    : <rsp: noerror, error> [rsp_code] [srmp]
  get_convo_listing   : <rsp: noerror, error> [rsp_code] [srmp]
  set_ntf_filter      : <rsp: noerror, error> [rsp_code]

MSE MNS 命令

map mse mns 命令:

uart:~$ map mse mns
mns - MSE MNS commands
Subcommands:
  discover            : [none]
  rfcomm_connect      : <channel> [supported_features]
  rfcomm_disconnect   : [none]
  l2cap_connect       : <psm> [supported_features]
  l2cap_disconnect    : [none]
  connect             : [none]
  disconnect          : [none]
  abort               : [none]
  send_event          : [none]

应用参数命令

map add_header app_param 命令:

uart:~$ map add_header app_param
app_param - Application parameter commands
Subcommands:
  list                          : List all added application parameters
  clear                         : Clear all application parameters
  max_list_count                : <count: 0-65535>
  list_start_offset             : <offset: 0-65535>
  filter_msg_type               : <type_mask: hex>
  filter_period_begin           : <time: YYYYMMDDTHHMMSS[+/-HHMM]>
  filter_period_end             : <time: YYYYMMDDTHHMMSS[+/-HHMM]>
  filter_read_status            : <no_filter/unread/read>
  filter_recipient              : <recipient_address>
  filter_originator             : <originator_address>
  filter_priority               : <no_filter/high/non_high>
  attachment                    : <on/off>
  transparent                   : <on/off>
  retry                         : <on/off>
  new_message                   : <on/off>
  notification_status           : <on/off>
  mas_instance_id               : <id: 0-255>
  parameter_mask                : <mask: hex>
  folder_listing_size           : <size: 0-65535>
  listing_size                  : <size: 0-65535>
  subject_length                : <length: 0-255>
  charset                       : <native/utf8>
  fraction_request              : <first/next>
  fraction_deliver              : <more/last>
  status_indicator              : <read/deleted/extended>
  status_value                  : <yes/no>
  mse_time                      : <time: YYYYMMDDTHHMMSS[+/-HHMM]>
  database_id                   : <id_string: max 32 chars>
  convo_listing_ver             : <version_string: max 32 chars>
  presence_availability         : <unknown/offline/online/away/dnd/busy/meeting>
  presence_text                 : <text>
  last_activity                 : <time: YYYYMMDDTHHMMSS[+/-HHMM]>
  filter_last_activity_begin    : <time: YYYYMMDDTHHMMSS[+/-HHMM]>
  filter_last_activity_end      : <time: YYYYMMDDTHHMMSS[+/-HHMM]>
  chat_state                    : <unknown/inactive/active/composing/paused/gone>
  conversation_id               : <id_string: max 32 chars>
  folder_ver                    : <version_string: max 32 chars>
  filter_msg_handle             : <handle_string: max 16 chars>
  notification_filter_mask      : <mask: hex>
  convo_parameter_mask          : <mask: hex>
  owner_uci                     : <uci_string>
  extended_data                 : <data_string>
  map_supported_features        : [none]
  message_handle                : <handle_string: max 16 chars>
  modify_text                   : <prepend/replace>

用法示例

SDP 发现

MCE 发现 MSE

MCE 可以发现远端设备上的 MSE 服务:

uart:~$ map mce mas discover
Found RFCOMM channel 0x06
Found GOEP L2CAP PSM 0x1003
Found MAP profile version 0x0104
Found MAP features 0x007fffff
Found service name: MAP MAS 0
Found MAP instance ID 0
Found MAP MSG type 0x1f
uart:~$

MSE 发现 MCE

MSE 可以发现远端设备上的 MCE 服务:

uart:~$ map mse mns discover
Found RFCOMM channel 0x06
Found GOEP L2CAP PSM 0x1003
Found MAP profile version 0x0104
Found MAP features 0x0077ffff
Found service name: MAP MNS
uart:~$

连接 MAP 传输

在创建 MAP 传输连接之前,应先建立 ACL 连接。

MAS 传输连接

RFCOMM 传输
uart:~$ map mce mas rfcomm_connect 6 0 7fffff
Security changed: XX:XX:XX:XX:XX:XX level 2
MCE MAS RFCOMM connected: 0x20005a00, addr: XX:XX:XX:XX:XX:XX, instance_id: 0
Selected MCE MAS instance_id 0 as default
uart:~$
L2CAP 传输
uart:~$ map mce mas l2cap_connect 1003 0 7fffff
Security changed: XX:XX:XX:XX:XX:XX level 2
MCE MAS L2CAP connected: 0x20005a00, addr: XX:XX:XX:XX:XX:XX, instance_id: 0
Selected MCE MAS instance_id 0 as default
uart:~$

MNS 传输连接

RFCOMM Transport
uart:~$ map mce mns register
MCE MNS server(s) registered
uart:~$ map mce mns rfcomm_register
RFCOMM server (channel 06, map_supported_features 0077ffff) is registered
MCE MNS SDP record registered
MCE MNS RFCOMM connected: 0x20005b00, addr: XX:XX:XX:XX:XX:XX
uart:~$
L2CAP Transport
uart:~$ map mce mns register
MCE MNS server(s) registered
uart:~$ map mce mns l2cap_register
L2CAP server (psm 1003, map_supported_features 0077ffff) is registered
MCE MNS SDP record registered
MCE MNS L2CAP connected: 0x20005b00, addr: XX:XX:XX:XX:XX:XX
uart:~$

断开 MAP 传输

MAS 传输断开

RFCOMM 传输(MCE 发起)
uart:~$ map mce mas rfcomm_disconnect
MCE MAS RFCOMM disconnected: 0x20005a00
No connected MCE MAS instance available for conn XX:XX:XX:XX:XX:XX
uart:~$
RFCOMM 传输(MSE 发起)
MCE MAS RFCOMM disconnected: 0x20005a00
No connected MCE MAS instance available for conn XX:XX:XX:XX:XX:XX
uart:~$
L2CAP 传输(MCE 发起)
uart:~$ map mce mas l2cap_disconnect
MCE MAS L2CAP disconnected: 0x20005a00
No connected MCE MAS instance available for conn XX:XX:XX:XX:XX:XX
uart:~$
L2CAP 传输(MSE 发起)
MCE MAS L2CAP disconnected: 0x20005a00
No connected MCE MAS instance available for conn XX:XX:XX:XX:XX:XX
uart:~$

MNS 传输断开

RFCOMM Transport (MSE initiates)
MCE MNS RFCOMM disconnected: 0x20005b00
uart:~$
RFCOMM Transport (MCE initiates)
uart:~$ map mce mns rfcomm_disconnect
MCE MNS RFCOMM disconnected: 0x20005b00
uart:~$
L2CAP Transport (MSE initiates)
MCE MNS L2CAP disconnected: 0x20005b00
uart:~$
L2CAP Transport (MCE initiates)
uart:~$ map mce mns l2cap_disconnect
MCE MNS L2CAP disconnected: 0x20005b00
uart:~$

连接到 MAP 服务器

MCE MAS 连接到 MSE MAS

uart:~$ map mce mas connect
MCE MAS 0x20005a00 conn rsp, rsp_code Success, version 10, mopl 0fff
HI 4a Len 16
00000000: bb 58 2b 40 42 0c 11 db  b0 de 08 00 20 0c 9a 66 |.X+@B... .... ..f|
HI cb Len 4
Conn ID: 00000001
uart:~$

MSE MNS 连接到 MCE MNS

uart:~$ map mse mns connect
MSE MNS 0x20005d00 conn rsp, rsp_code Success, version 10, mopl 0fff
HI 4a Len 16
00000000: bb 58 2b 41 42 0c 11 db  b0 de 08 00 20 0c 9a 66 |.X+AB... .... ..f|
HI cb Len 4
Conn ID: 00000001
uart:~$

断开与 MAP 服务器的连接

MCE MAS 断开与 MSE MAS 的连接

uart:~$ map mce mas disconnect
MCE MAS 0x20005a00 disconn rsp, rsp_code Success
uart:~$

MSE MNS 断开与 MCE MNS 的连接

uart:~$ map mse mns disconnect
MSE MNS 0x20005d00 disconn rsp, rsp_code Success
uart:~$

MAP 操作

设置通知注册

uart:~$ map mce mas set_ntf_reg
Adding default application parameters:
  Notification status: 0x01
MCE MAS 0x20005a00 set_ntf_reg rsp, rsp_code Success
uart:~$

设置文件夹

uart:~$ map mce mas set_folder /
MCE MAS 0x20005a00 set_folder rsp, rsp_code Success
uart:~$ map mce mas set_folder telecom
MCE MAS 0x20005a00 set_folder rsp, rsp_code Success
uart:~$ map mce mas set_folder ..
MCE MAS 0x20005a00 set_folder rsp, rsp_code Success
uart:~$

获取文件夹列表

RFCOMM Transport

使用 RFCOMM 传输时,可以多次调用同一个 shell 命令,直到完整消息被传送完毕。

uart:~$ map mce mas get_folder_listing
MCE MAS 0x20005a00 get_folder_listing rsp, rsp_code Continue, data len 252
HI 48 Len 249
00000000: 3c 3f 78 6d 6c 20 76 65  72 73 69 6f 6e 3d 27 31 |<?xml ve rsion='1|
00000010: 2e 30 27 20 65 6e 63 6f  64 69 6e 67 3d 27 75 74 |.0' enco ding='ut|
...
uart:~$ map mce mas get_folder_listing
MCE MAS 0x20005a00 get_folder_listing rsp, rsp_code Success, data len 4
HI 49 Len 1
00000000: 00                                               |.                |
uart:~$
启用 SRM 的 L2CAP 传输

当使用默认启用 SRM 的 L2CAP 传输时,无需再次发送 GET 请求。

uart:~$ map mce mas get_folder_listing
MCE MAS 0x20005c98 get_folder_listing rsp, rsp_code Continue, data len 252
HI 97 Len 1
OBEX SRM: 01
HI 48 Len 247
00000000: 3c 3f 78 6d 6c 20 76 65  72 73 69 6f 6e 3d 27 31 |<?xml ve rsion='1|
00000010: 2e 30 27 20 65 6e 63 6f  64 69 6e 67 3d 27 75 74 |.0' enco ding='ut|
...
MCE MAS 0x20005a00 get_folder_listing rsp, rsp_code Success, data len 6
HI 49 Len 3
00000000: 67 3e 00                                         |g>.              |
...
uart:~$
启用 SRM 和 SRMP 的 L2CAP 传输

当使用已启用 SRM 和 SRMP 的 L2CAP 传输时,需要继续发送 GET 请求,直到 SRMP 被禁用。

uart:~$ map mce mas get_folder_listing srmp
MCE MAS 0x20005a00 get_folder_listing rsp, rsp_code Continue, data len 252
HI 97 Len 1
OBEX SRM: 01
HI 48 Len 247
00000000: 3c 3f 78 6d 6c 20 76 65  72 73 69 6f 6e 3d 27 31 |<?xml ve rsion='1|
00000010: 2e 30 27 20 65 6e 63 6f  64 69 6e 67 3d 27 75 74 |.0' enco ding='ut|
...
MCE MAS 0x20005a00 get_folder_listing rsp, rsp_code Success, data len 6
HI 49 Len 3
00000000: 67 3e 00                                         |g>.              |
...
uart:~$

获取消息列表

RFCOMM Transport
uart:~$ map mce mas get_msg_listing
MCE MAS 0x20005a00 get_msg_listing rsp, rsp_code Continue, data len 252
HI 4c Len 29
T 0d L 1
00000000: 00                                               |.                |
T 19 L 20
00000000: 32 30 32 35 30 31 30 31  54 31 32 30 30 30 30 2b |20250101 T120000+|
00000010: 30 30 30 30                                      |0000             |
T 12 L 2
00000000: 00 02                                            |..               |
HI 48 Len 217
00000000: 3c 3f 78 6d 6c 20 76 65  72 73 69 6f 6e 3d 27 31 |<?xml ve rsion='1|
00000010: 2e 30 27 20 65 6e 63 6f  64 69 6e 67 3d 27 75 74 |.0' enco ding='ut|
...
uart:~$ map mce mas get_msg_listing
MCE MAS 0x20005a00 get_msg_listing rsp, rsp_code Success, data len 52
HI 49 Len 49
00000000: 22 20 73 65 6e 74 3d 22  6e 6f 22 20 70 72 6f 74 |" sent=" no" prot|
...
uart:~$
L2CAP Transport with SRM
uart:~$ map mce mas get_msg_listing
MCE MAS 0x20005a00 get_msg_listing rsp, rsp_code Continue, data len 252
HI 97 Len 1
OBEX SRM: 01
HI 4c Len 29
T 0d L 1
00000000: 00                                               |.                |
T 19 L 20
00000000: 32 30 32 35 30 31 30 31  54 31 32 30 30 30 30 2b |20250101 T120000+|
00000010: 30 30 30 30                                      |0000             |
T 12 L 2
00000000: 00 02                                            |..               |
HI 48 Len 215
00000000: 3c 3f 78 6d 6c 20 76 65  72 73 69 6f 6e 3d 27 31 |<?xml ve rsion='1|
...
MCE MAS 0x20005a00 get_msg_listing rsp, rsp_code Continue, data len 252
HI 48 Len 249
00000000: 2e 63 6f 6d 22 20 72 65  63 69 70 69 65 6e 74 5f |.com" re cipient_|
...
MCE MAS 0x20005c98 get_msg_listing rsp, rsp_code Success, data len 54
HI 49 Len 51
00000000: 65 73 22 20 73 65 6e 74  3d 22 6e 6f 22 20 70 72 |es" sent ="no" pr|
00000010: 6f 74 65 63 74 65 64 3d  22 6e 6f 22 2f 3e 0d 0a |otected= "no"/>..|
...
uart:~$
L2CAP Transport with SRM and SRMP
uart:~$ map mce mas get_msg_listing srmp
MCE MAS 0x20005a00 get_msg_listing rsp, rsp_code Continue, data len 252
HI 97 Len 1
OBEX SRM: 01
HI 4c Len 29
T 0d L 1
00000000: 00                                               |.                |
T 19 L 20
00000000: 32 30 32 35 30 31 30 31  54 31 32 30 30 30 30 2b |20250101 T120000+|
00000010: 30 30 30 30                                      |0000             |
T 12 L 2
00000000: 00 02                                            |..               |
HI 48 Len 215
00000000: 3c 3f 78 6d 6c 20 76 65  72 73 69 6f 6e 3d 27 31 |<?xml ve rsion='1|
...
uart:~$ map mce mas get_msg_listing
MCE MAS 0x20005a00 get_msg_listing rsp, rsp_code Continue, data len 252
HI 48 Len 249
00000000: 2e 63 6f 6d 22 20 72 65  63 69 70 69 65 6e 74 5f |.com" re cipient_|
00000010: 6e 61 6d 65 3d 22 42 6f  62 22 20 72 65 63 69 70 |name="Bo b" recip|
...
MCE MAS 0x20005a00 get_msg_listing rsp, rsp_code Success, data len 54
HI 49 Len 51
00000000: 65 73 22 20 73 65 6e 74  3d 22 6e 6f 22 20 70 72 |es" sent ="no" pr|
00000010: 6f 74 65 63 74 65 64 3d  22 6e 6f 22 2f 3e 0d 0a |otected= "no"/>..|
...
uart:~$

获取消息

RFCOMM Transport
uart:~$ map mce mas get_msg 0000000000000001
Adding default application parameters:
  Attachment: OFF (0x00)
  Charset: UTF-8 (0x01)
MCE MAS 0x20005a00 get_msg rsp, rsp_code Continue, data len 252
HI 48 Len 249
00000000: 42 45 47 49 4e 3a 42 4d  53 47 0d 0a 56 45 52 53 |BEGIN:BM SG..VERS|
00000010: 49 4f 4e 3a 31 2e 30 0d  0a 53 54 41 54 55 53 3a |ION:1.0. .STATUS:|
...
uart:~$ map mce mas get_msg 0000000000000001
MCE MAS 0x20005a00 get_msg rsp, rsp_code Success, data len 87
HI 49 Len 84
00000000: 3c 3e 3f 2f 0a 2d 20 4e  75 6d 62 65 72 73 3a 20 |<>?/.- N umbers: |
00000010: 30 31 32 33 34 35 36 37  38 39 0a 0a 45 6e 64 20 |01234567 89..End |
...
uart:~$
L2CAP Transport with SRM
uart:~$ map mce mas get_msg 0000000000000001
Adding default application parameters:
  Attachment: OFF (0x00)
  Charset: UTF-8 (0x01)
MCE MAS 0x20005a00 get_msg rsp, rsp_code Continue, data len 252
HI 97 Len 1
OBEX SRM: 01
HI 48 Len 247
00000000: 42 45 47 49 4e 3a 42 4d  53 47 0d 0a 56 45 52 53 |BEGIN:BM SG..VERS|
00000010: 49 4f 4e 3a 31 2e 30 0d  0a 53 54 41 54 55 53 3a |ION:1.0. .STATUS:|
...
MCE MAS 0x20005a00 get_msg rsp, rsp_code Success, data len 89
HI 49 Len 86
00000000: 2c 2e 3c 3e 3f 2f 0a 2d  20 4e 75 6d 62 65 72 73 |,.<>?/.-  Numbers|
uart:~$
L2CAP Transport with SRM and SRMP
uart:~$ map mce mas get_msg 0000000000000001 srmp
Adding default application parameters:
  Attachment: OFF (0x00)
  Charset: UTF-8 (0x01)
MCE MAS 0x20005a00 get_msg rsp, rsp_code Continue, data len 252
HI 97 Len 1
OBEX SRM: 01
HI 48 Len 247
00000000: 42 45 47 49 4e 3a 42 4d  53 47 0d 0a 56 45 52 53 |BEGIN:BM SG..VERS|
...
uart:~$ map mce mas get_msg 0000000000000001
MCE MAS 0x20005a00 get_msg rsp, rsp_code Continue, data len 252
HI 48 Len 249
00000000: 37 38 39 0d 0a 45 4e 44  3a 56 43 41 52 44 0d 0a |789..END :VCARD..|
00000010: 42 45 47 49 4e 3a 42 42  4f 44 59 0d 0a 43 48 41 |BEGIN:BB ODY..CHA|
...
MCE MAS 0x20005a00 get_msg rsp, rsp_code Success, data len 89
HI 49 Len 86
00000000: 2c 2e 3c 3e 3f 2f 0a 2d  20 4e 75 6d 62 65 72 73 |,.<>?/.-  Numbers|
...
uart:~$

设置消息状态

uart:~$ map mce mas set_msg_status 0000000000000001
Adding default application parameters:
  Status indicator: 0x00
  Status value: 0x00
MCE MAS 0x20005a00 set_msg_status rsp, rsp_code Success
uart:~$

推送消息

RFCOMM Transport
uart:~$ map mce mas push_msg
Adding default application parameters:
  Charset: UTF-8 (0x01)
MCE MAS 0x20005a00 push_msg rsp, rsp_code Continue, data len 0
...
uart:~$ map mce mas push_msg
MCE MAS 0x20005a00 push_msg rsp, rsp_code Success, data len 37
HI 01 Len 34
00000000: 00 30 00 30 00 30 00 30  00 30 00 30 00 30 00 30 |.0.0.0.0 .0.0.0.0|
00000010: 00 30 00 30 00 30 00 30  00 30 00 30 00 30 00 31 |.0.0.0.0 .0.0.0.1|
00000020: 00 00                                            |..               |
...
uart:~$
L2CAP Transport with SRM
uart:~$ map mce mas push_msg
Adding default application parameters:
  Charset: UTF-8 (0x01)
MCE MAS 0x20005a00 push_msg rsp, rsp_code Continue, data len 2
HI 97 Len 1
OBEX SRM: 01
...
uart:~$ map mce mas push_msg
uart:~$ map mce mas push_msg
MCE MAS 0x20005a00 push_msg rsp, rsp_code Success, data len 37
HI 01 Len 34
00000000: 00 30 00 30 00 30 00 30  00 30 00 30 00 30 00 30 |.0.0.0.0 .0.0.0.0|
00000010: 00 30 00 30 00 30 00 30  00 30 00 30 00 30 00 31 |.0.0.0.0 .0.0.0.1|
00000020: 00 00                                            |..               |
...
uart:~$
L2CAP Transport with SRM and SRMP
uart:~$ map mce mas push_msg
Adding default application parameters:
  Charset: UTF-8 (0x01)
MCE MAS 0x20005a00 push_msg rsp, rsp_code Continue, data len 4
HI 97 Len 1
OBEX SRM: 01
HI 98 Len 1
OBEX SRMP: 01
...
uart:~$ map mce mas push_msg
MCE MAS 0x20005c98 push_msg rsp, rsp_code Continue, data len 0
uart:~$ map mce mas push_msg
MCE MAS 0x20005a00 push_msg rsp, rsp_code Success, data len 37
HI 01 Len 34
00000000: 00 30 00 30 00 30 00 30  00 30 00 30 00 30 00 30 |.0.0.0.0 .0.0.0.0|
00000010: 00 30 00 30 00 30 00 30  00 30 00 30 00 30 00 31 |.0.0.0.0 .0.0.0.1|
00000020: 00 00                                            |..               |
...
uart:~$

更新收件箱

uart:~$ map mce mas update_inbox
MCE MAS 0x20005a00 update_inbox rsp, rsp_code Success
uart:~$

获取 MAS 实例信息

RFCOMM Transport
uart:~$ map mce mas get_mas_inst_info
Adding default application parameters:
  Instance ID: 0
MCE MAS 0x20005a00 get_mas_inst_info rsp, rsp_code Success, data len 21
HI 49 Len 18
00000000: 4d 41 53 20 49 6e 73 74  61 6e 63 65 20 49 6e 66 |MAS Inst ance Inf|
00000010: 6f 00                                            |o.               |
uart:~$
L2CAP Transport with SRM
uart:~$ map mce mas get_mas_inst_info
Adding default application parameters:
  Instance ID: 0
MCE MAS 0x20005a00 get_mas_inst_info rsp, rsp_code Success, data len 23
HI 97 Len 1
OBEX SRM: 01
HI 49 Len 18
00000000: 4d 41 53 20 49 6e 73 74  61 6e 63 65 20 49 6e 66 |MAS Inst ance Inf|
00000010: 6f 00                                            |o.               |
uart:~$
L2CAP Transport with SRM and SRMP
uart:~$ map mce mas get_mas_inst_info srmp
Adding default application parameters:
  Instance ID: 0
MCE MAS 0x20005a00 get_mas_inst_info rsp, rsp_code Success, data len 23
HI 97 Len 1
OBEX SRM: 01
HI 49 Len 18
00000000: 4d 41 53 20 49 6e 73 74  61 6e 63 65 20 49 6e 66 |MAS Inst ance Inf|
00000010: 6f 00                                            |o.               |
uart:~$

设置所有者状态

uart:~$ map mce mas set_owner_status
Adding default application parameters:
  Chat state: 0x00
MCE MAS 0x20005a00 set_owner_status rsp, rsp_code Success
uart:~$

获取所有者状态

RFCOMM Transport
uart:~$ map mce mas get_owner_status
MCE MAS 0x20005a00 get_owner_status rsp, rsp_code Success, data len 18
HI 4c Len 12
T 1c L 1
00000000: 00                                               |.                |
T 1d L 7
00000000: 55 6e 6b 6e 6f 77 6e                             |Unknown          |
uart:~$
L2CAP Transport with SRM
uart:~$ map mce mas get_owner_status
MCE MAS 0x20005a00 get_owner_status rsp, rsp_code Success, data len 20
HI 97 Len 1
OBEX SRM: 01
HI 4c Len 12
T 1c L 1
00000000: 00                                               |.                |
T 1d L 7
00000000: 55 6e 6b 6e 6f 77 6e                             |Unknown          |
HI 49 Len 0
uart:~$
L2CAP Transport with SRM and SRMP
uart:~$ map mce mas get_owner_status srmp
MCE MAS 0x20005a00 get_owner_status rsp, rsp_code Success, data len 20
HI 97 Len 1
OBEX SRM: 01
HI 4c Len 12
T 1c L 1
00000000: 00                                               |.                |
T 1d L 7
00000000: 55 6e 6b 6e 6f 77 6e                             |Unknown          |
HI 49 Len 0
uart:~$

获取会话列表

RFCOMM Transport
uart:~$ map mce mas get_convo_listing
MCE MAS 0x20005a00 get_convo_listing rsp, rsp_code Continue, data len 252
HI 4c Len 72
T 12 L 2
00000000: 00 02                                            |..               |
T 1a L 32
00000000: 30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 31 |00000000 00000001|
00000010: 30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 31 |00000000 00000001|
T 1b L 32
00000000: 30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 31 |00000000 00000001|
00000010: 30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 31 |00000000 00000001|
HI 48 Len 174
00000000: 3c 3f 78 6d 6c 20 76 65  72 73 69 6f 6e 3d 27 31 |<?xml ve rsion='1|
00000010: 2e 30 27 20 65 6e 63 6f  64 69 6e 67 3d 27 75 74 |.0' enco ding='ut|
...
uart:~$ map mce mas get_convo_listing
MCE MAS 0x20005a00 get_convo_listing rsp, rsp_code Success, data len 117
HI 49 Len 114
00000000: 22 20 6e 61 6d 65 3d 22  42 6f 62 22 20 70 72 65 |" name=" Bob" pre|
...
uart:~$
L2CAP Transport with SRM
uart:~$ map mce mas get_convo_listing
MCE MAS 0x20005a00 get_convo_listing rsp, rsp_code Continue, data len 252
HI 97 Len 1
OBEX SRM: 01
HI 4c Len 72
T 12 L 2
00000000: 00 02                                            |..               |
T 1a L 32
00000000: 30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 31 |00000000 00000001|
00000010: 30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 31 |00000000 00000001|
T 1b L 32
00000000: 30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 31 |00000000 00000001|
00000010: 30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 31 |00000000 00000001|
HI 48 Len 172
00000000: 3c 3f 78 6d 6c 20 76 65  72 73 69 6f 6e 3d 27 31 |<?xml ve rsion='1|
00000010: 2e 30 27 20 65 6e 63 6f  64 69 6e 67 3d 27 75 74 |.0' enco ding='ut|
...
MCE MAS 0x20005a00 get_convo_listing rsp, rsp_code Success, data len 119
HI 49 Len 116
00000000: 32 31 22 20 6e 61 6d 65  3d 22 42 6f 62 22 20 70 |21" name ="Bob" p|
...
uart:~$
L2CAP Transport with SRM and SRMP
uart:~$ map mce mas get_convo_listing srmp
MCE MAS 0x20005a00 get_convo_listing rsp, rsp_code Continue, data len 252
HI 97 Len 1
OBEX SRM: 01
HI 4c Len 72
T 12 L 2
00000000: 00 02                                            |..               |
T 1a L 32
00000000: 30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 31 |00000000 00000001|
00000010: 30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 31 |00000000 00000001|
T 1b L 32
00000000: 30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 31 |00000000 00000001|
00000010: 30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 31 |00000000 00000001|
HI 48 Len 172
00000000: 3c 3f 78 6d 6c 20 76 65  72 73 69 6f 6e 3d 27 31 |<?xml ve rsion='1|
00000010: 2e 30 27 20 65 6e 63 6f  64 69 6e 67 3d 27 75 74 |.0' enco ding='ut|
...
uart:~$ map mce mas get_convo_listing
MCE MAS 0x20005a00 get_convo_listing rsp, rsp_code Continue, data len 252
HI 48 Len 249
00000000: 79 65 73 22 20 76 65 72  73 69 6f 6e 5f 63 6f 75 |yes" ver sion_cou|
...
MCE MAS 0x20005a00 get_convo_listing rsp, rsp_code Success, data len 119
HI 49 Len 116
00000000: 32 31 22 20 6e 61 6d 65  3d 22 42 6f 62 22 20 70 |21" name ="Bob" p|
...
uart:~$

设置通知过滤器

uart:~$ map mce mas set_ntf_filter
Adding default application parameters:
  Notification filter mask: 0x00007fff
MCE MAS 0x20005a00 set_ntf_filter rsp, rsp_code Success
uart:~$

发送事件

RFCOMM Transport
uart:~$ map mse mns send_event
Adding default application parameters:
  Instance ID: 0
MSE MNS 0x20005d00 send_event rsp, rsp_code Continue, data len 0
uart:~$ map mse mns send_event
MSE MNS 0x20005d00 send_event rsp, rsp_code Success, data len 0
uart:~$
L2CAP Transport with SRM
uart:~$ map mse mns send_event
Adding default application parameters:
  Instance ID: 0
MSE MNS 0x20005d00 send_event rsp, rsp_code Continue, data len 2
HI 97 Len 1
OBEX SRM: 01
uart:~$ map mse mns send_event
MSE MNS 0x20005d00 send_event rsp, rsp_code Success, data len 0
uart:~$
L2CAP Transport with SRM and SRMP
uart:~$ map mse mns send_event
Adding default application parameters:
  Instance ID: 0
MSE MNS 0x20005d00 send_event rsp, rsp_code Continue, data len 4
HI 97 Len 1
OBEX SRM: 01
HI 98 Len 1
OBEX SRMP: 01
uart:~$ map mse mns send_event
MSE MNS 0x20005d00 send_event rsp, rsp_code Success, data len 0
uart:~$

应用参数

MAP shell 提供用于向请求添加应用参数的命令。必须先添加这些参数,然后再发送相应的操作命令。

添加应用参数

可以使用 map add_header app_param 命令添加应用参数:

uart:~$ map add_header app_param max_list_count 10
Added MaxListCount: 10
uart:~$ map add_header app_param list_start_offset 0
Added ListStartOffset: 0
uart:~$ map add_header app_param charset utf8
Added Charset: utf8 (1)
uart:~$

列出应用参数

查看所有已添加的应用参数:

uart:~$ map add_header app_param list
Added application parameters (3):
  [0] Tag=0x01, Len=2
00000000: 00 0a                                            |..               |
  [1] Tag=0x02, Len=2
00000000: 00 00                                            |..               |
  [2] Tag=0x14, Len=1
00000000: 01                                               |.                |
uart:~$

清除应用参数

清除所有已添加的应用参数:

uart:~$ map add_header app_param clear
Cleared all application parameters
uart:~$

示例:带过滤器获取消息列表

uart:~$ map add_header app_param max_list_count 10
Added MaxListCount: 10
uart:~$ map add_header app_param filter_msg_type 1f
Added FilterMessageType: 0x1f
  EMAIL=Y, SMS_GSM=Y, SMS_CDMA=Y, MMS=Y, IM=Y
uart:~$ map add_header app_param filter_read_status unread
Added FilterReadStatus: unread (1)
uart:~$ map mce mas get_msg_listing
MCE MAS 0x20005a00 get_msg_listing rsp, rsp_code Continue, data len 252
...
uart:~$ map add_header app_param clear
Cleared all application parameters
uart:~$

附加信息

RFCOMM 与 L2CAP 传输

RFCOMM Transport

对于 GET 或 PUT 操作,必须多次调用同一个 shell 命令,直到完整消息被传送完毕。

L2CAP Transport with SRM

启用 SRM(单响应模式)后,GET 请求无需重复发送,服务器会发送所有响应数据包。对于 PUT 操作,客户端发送所有请求数据包,无需等待中间响应;服务器在收到最后一个 PUT 请求后发送单个响应。

L2CAP Transport with SRM and SRMP

同时启用 SRM 和 SRMP(单响应模式参数)后,需要继续发送 GET 请求和 PUT 响应,直到 SRMP 被禁用。

SRM(单响应模式)

在 L2CAP 传输(GOEP v2.0)上会自动启用 SRM。

GET 操作

当为 GET 操作启用 SRM 时:

  • 客户端发送单个 GET 请求。

  • 服务器发送多个响应数据包,无需等待其他请求。

  • 可以使用 srmp 参数控制流(等待下一个请求)。

PUT 操作

当为 PUT 操作启用 SRM 时:

  • 客户端发送多个 PUT 请求,无需等待其他响应。

  • 服务器在收到最后一个 PUT 请求时发送单个 PUT 响应。

  • 可以使用 srmp 参数控制流(等待下一个响应)。

多实例支持

MAP shell 支持多个 MAS 实例:

  • MCE 可以同时连接到多个 MSE MAS 实例

  • MSE 可以注册多个具有不同实例 ID 的 MAS 实例

  • 使用 select 命令在实例之间切换

uart:~$ map mce mas select 0
Selected MCE MAS instance_id 0 as default
uart:~$