Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions doc/connectivity/bluetooth/bluetooth-shell.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ For specific Bluetooth functionality see also the following shell documentation
shell/audio/tmap.rst
shell/audio/pbp.rst
shell/classic/a2dp.rst
shell/classic/goep.rst
shell/classic/hfp.rst
shell/classic/l2cap.rst
shell/classic/rfcomm.rst
shell/host/gap.rst
shell/host/gatt.rst
shell/host/iso.rst
Expand Down
280 changes: 280 additions & 0 deletions doc/connectivity/bluetooth/shell/classic/goep.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,280 @@
Bluetooth: Classic: GOEP Shell
################################

This document describes how to run the Bluetooth Classic GOEP functionality.
The :code:`goep` command exposes the Bluetooth Classic GOEP Shell commands.

Commands
********

The :code:`goep` commands:

.. code-block:: console

uart:~$ goep
goep - Bluetooth GOEP shell commands
Subcommands:
register-rfcomm : <channel>
connect-rfcomm : <channel>
disconnect-rfcomm :
register-l2cap : <psm>
connect-l2cap : <psm>
disconnect-l2cap :
alloc-buf : Alloc tx buffer
release-buf : Free allocated tx buffer
add-header : Adding header sets
client : Client sets
server : Server sets

The :code:`goep client` commands:

.. code-block:: console

uart:~$ goep client
client - Client sets
Subcommands:
conn : <mopl>
disconn :
put : <final: true, false>
get : <final: true, false>
abort :
setpath : [parent] [create]
action : <final: true, false>

The :code:`goep server` commands:

.. code-block:: console

uart:~$ goep server
server - Server sets
Subcommands:
reg : [UUID 128]
unreg :
conn : <rsp: continue, success, error> <mopl> [rsp_code]
disconn : <rsp: continue, success, error> [rsp_code]
put : <rsp: continue, success, error> [rsp_code]
get : <rsp: continue, success, error> [rsp_code]
abort : <rsp: continue, success, error> [rsp_code]
setpath : <rsp: continue, success, error> [rsp_code]
action : <rsp: continue, success, error> [rsp_code]


Connect GOEP Transport
**********************

The ACL connection should be established before creating the GOEP transport connection.

The transport is based on L2CAP Channel:

.. tabs::

.. group-tab:: L2CAP Server

.. code-block:: console

uart:~$ goep register-l2cap 0
L2CAP server (psm 1001) is registered
Security changed: XX:XX:XX:XX:XX:XX level 2
GOEP 0x20005600 transport connected on 0x20004dc8
uart:~$

.. group-tab:: L2CAP Client

.. code-block:: console

uart:~$ goep connect-l2cap 1001
GOEP L2CAP connection pending
Security changed: XX:XX:XX:XX:XX:XX level 2
GOEP 0x20005600 transport connected on 0x20004dc8
uart:~$


The transport is based on RFCOMM Channel:

.. tabs::

.. group-tab:: RFCOMM Server

.. code-block:: console

uart:~$ goep register-rfcomm 0
RFCOMM server (channel 06) is registered
Security changed: XX:XX:XX:XX:XX:XX level 2
GOEP 0x20005600 transport connected on 0x20004dc8
uart:~$

.. group-tab:: RFCOMM Client

.. code-block:: console

uart:~$ goep connect-rfcomm 6
GOEP RFCOMM connection pending
Security changed: XX:XX:XX:XX:XX:XX level 2
GOEP 0x20005600 transport connected on 0x20004dc8
uart:~$


Disconnect GOEP transport
*************************

The transport is based on L2CAP Channel:

.. tabs::

.. group-tab:: One Side

.. code-block:: console

GOEP 0x20005600 transport disconnected
uart:~$

.. group-tab:: Another Side

.. code-block:: console

uart:~$ goep disconnect-l2cap
GOEP L2CAP disconnection pending
GOEP 0x20005600 transport disconnected
uart:~$


The transport is based on RFCOMM Channel:

.. tabs::

.. group-tab:: One Side

.. code-block:: console

GOEP 0x20005600 transport disconnected
uart:~$

.. group-tab:: Another Side

.. code-block:: console

uart:~$ goep disconnect-rfcomm
GOEP RFCOMM disconnection pending
GOEP 0x20005600 transport disconnected
uart:~$


Connect to OBEX Server
**********************

.. tabs::

.. group-tab:: OBEX Server

.. code-block:: console

uart:~$ goep server reg
uart:~$
OBEX server 0x20005850 conn req, version 10, mopl 00ff
uart:~$ goep server conn success 255
uart:~$

.. group-tab:: OBEX Client

.. code-block:: console

uart:~$ goep client conn 255
OBEX client 0x20005818 conn rsp, rsp_code Success, version 10, mopl 00ff
uart:~$


Disconnect from OBEX Server
***************************

.. tabs::

.. group-tab:: OBEX Server

.. code-block:: console

OBEX server 0x20005850 disconn req
uart:~$ goep server disconn success
uart:~$

.. group-tab:: OBEX Client

.. code-block:: console

uart:~$ goep client disconn
OBEX client 0x20005818 disconn rsp, rsp_code Success
uart:~$


OBEX Put Operation
******************

.. tabs::

.. group-tab:: OBEX Server

.. code-block:: console

uart:~$
OBEX server 0x20005850 put req, final false, data len 12
HI c3 Len 4
00000000: 00 00 00 09 |.... |
HI 48 Len 4
00000000: 12 34 56 78 |.4Vx |
uart:~$ goep server put continue
OBEX server 0x20005850 put req, final true, data len 8
HI 49 Len 5
00000000: 12 34 56 78 90 |.4Vx. |
uart:~$ goep server put success
uart:~$

.. group-tab:: OBEX Client

.. code-block:: console

uart:~$ goep alloc-buf
uart:~$ goep add-header len 9
uart:~$ goep add-header body 12345678
uart:~$ goep client put false
OBEX client 0x20005818 put rsp, rsp_code Continue, data len 0
uart:~$ goep alloc-buf
uart:~$ goep add-header end_body 1234567890
uart:~$ goep client put true
OBEX client 0x20005818 put rsp, rsp_code Success, data len 0
uart:~$


OBEX Get Operation
******************

.. tabs::

.. group-tab:: OBEX Server

.. code-block:: console

uart:~$ goep alloc-buf
uart:~$ goep add-header len 9
uart:~$ goep add-header body 12345678
uart:~$ goep server get continue
OBEX server 0x20005850 get req, final true, data len 0
uart:~$ goep alloc-buf
uart:~$ goep add-header end_body 1234567890
uart:~$
uart:~$ goep server get success
uart:~$

.. group-tab:: OBEX Client

.. code-block:: console

uart:~$ goep client get true
OBEX client 0x20005818 get rsp, rsp_code Continue, data len 12
HI c3 Len 4
00000000: 00 00 00 09 |.... |
HI 48 Len 4
00000000: 12 34 56 78 |.4Vx |
uart:~$ goep client get true
OBEX client 0x20005818 get rsp, rsp_code Success, data len 8
HI 49 Len 5
00000000: 12 34 56 78 90 |.4Vx. |
uart:~$
Loading