All mesh devices should be provisioned and configured first to start communicating. You can use Cypress provisioners (Windows (MeshClientControl, MeshClient), Android, IOS) to do provisioning and configuring.
Please follow below instructions to use vendor specific application and to send HCI commands.
- Download mesh_provision_client and mesh_vendor_server apps into two separate boards.
- Open MeshClientControl (LightControl tab) and open COMport of mesh_provision_client device.
- Create a network, Open it and then Scan and Provision the mesh_vendor_server app. (Please use Helper application guide: https://www.cypress.com/file/462491/download if you have doubt in the usage of helper application)
- Select the required provisioned device (mesh_vendor_server) from the drop down menu in MeshClientControl and use Vendor Data field to send required data to the server.
- You will be able to see sent messages and received the status message on the ClientControl log itself (Bottom).
NOTE: Instead of using mesh_provision_client and MeshClientControl, you can use MeshClient helper application (windows mesh standalone implementation) alone to provision and communicate with a vendor specific server app.
The callback function mesh_app_proc_rx_cmd() will be used when an HCI UART command is received from the external host. This function is relevant in the case of a hosted MCU implementation. Here MeshClientControl is the host and mesh_provision_client is the controller part. You can connect MeshClientControl with mesh_provision_client and provision your vendor specific app (mesh_vendor_server).
Also source code of all mesh helper application (MeshClientControl, MeshClient, Android, IOS) are also available along with the release (.\components\BT-SDK\common\apps\snip\mesh) so that you can customize the it.
I have used the helpers apps with great success. Now I want to work on how to get data from an external controller via the HCI Uart.
"The callback function mesh_app_proc_rx_cmd() will be used when an HCI UART command is received from the external host."
what is the command format when communicating with the module via the HCI Uart?
I have looked in the getting started document and if mentions that this is how to use an external controller to communicate with the module but no more info on how.
Is there another document that shows more?
I believe, we have discussed this in detail in BLE Mesh 2 way communication thread.
If you want to use WICED HCI UART you can use sample "MCU" application which is MeshClientControl (common\apps\snip\mesh\ClientControl). All the source code is there and release directory has the binary that you can use. There will be also a document (MeshClient and ClientControlMesh App User Guide) in the doc directory.
In the ModusToolbox click on the Documentation tab, the WICED API Reference then WICED HCI Control Protocol, and please search wiced_bt_mesh_app.h for getting mesh_app_proc_rx_cmd definition.