I need to send and receive messages with the Mesh Vendor_specific_app and mesh_provision_client app, please help me

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
jama_4535901
Level 3
Level 3
10 sign-ins 5 sign-ins 25 replies posted

in the board with code Mesh_Snip_213043MESH.mesh_vendor_specific_app I can print in WICED Peripheral UART the message sent by provision_client app as shown in the image

I added the line: WICED_BT_TRACE ("Dato:% B \ n", p_data);

pastedImage_6.png

pastedImage_9.png

pastedImage_7.png

but

I want to print the reply message in WICED Peripheral UART on the card with the code provision_client app

I added the line: WICED_BT_TRACE ("Reply message:% B \ n", p_data);

in the function: wiced_bool_t mesh_vendor_client_message_handler (wiced_bt_mesh_event_t * p_event, uint8_t * p_data, uint16_t data_len)

but the reply message does not print correctly: ("123456789101")

the image shows the code and the message in the terminal

in the terminal it shows the message ( "00 04 20 00 c1 03"):

Reply message: 00 04 20 00 c1 03

mesh_vendor_client_message_handler: company_id: 0131 opcode: 2 model_id: ffff

ignored

pastedImage_10.png

pastedImage_11.png

You can check, the reply massage does not enter the function: void mesh_vendor_client_process_data in the board with the code provision_client app

please

help me

in my work we want to buy 3000 CYBT-213043-MESH but because we cannot solve this problem we cannot buy

0 Likes
1 Solution

Hi,

Currently, vendor model handler is not enabled by the ClientControl in the mesh_provision_client app. Our software team will be releasing a fix for this in the next BTSDK release. You can try below workaround to solve this problem and proceed with your development work.

Also, please find the attached Clientcontrol.exe with the below fix.

Workaround

MeshClientControl source code is available in the BTSDK.

  1. Please open BTSDKClientControl.sln in Visual studio, make below changes and rebuild the code.
  2. Go to BT-SDK\wiced_btsdk\tools\btsdk-host-apps-mesh\VS_ClientControl\LightControl.cpp.
  3. Search for the function "void network_opened(uint8_t status)"
  4. Change the line    if (pSheet->m_active_page == 1 && theApp.bMeshPerfMode)      to     if (pSheet->m_active_page == 1 )
  5. Rebuild the code for debug.

"

void network_opened(uint8_t status)

{

    Log(L"Network opened");

    CClientDialog* pSheet = (CClientDialog*)theApp.m_pMainWnd;

#ifndef NO_LIGHT_CONTROL

    if (pSheet->m_active_page == 1)   //modified

    {

        CLightControl* pDlg = &pSheet->pageLight;

        if (pDlg)

            pDlg->PostMessage(WM_MESH_ADD_VENDOR_MODEL, (WPARAM)0, (LPARAM)0);

    }

#endif

}

"

Thanks,

-Dheeraj

View solution in original post

4 Replies
DheerajPK_41
Moderator
Moderator
Moderator
750 replies posted 500 likes received 500 replies posted

Hi,

I doubt, the mesh_provision_client does not receives any data from the reply message.

Let me do some experiments to figure out the actual issue. I will get back to you soon.

Thanks,

-Dheeraj

Hi,

Currently, vendor model handler is not enabled by the ClientControl in the mesh_provision_client app. Our software team will be releasing a fix for this in the next BTSDK release. You can try below workaround to solve this problem and proceed with your development work.

Also, please find the attached Clientcontrol.exe with the below fix.

Workaround

MeshClientControl source code is available in the BTSDK.

  1. Please open BTSDKClientControl.sln in Visual studio, make below changes and rebuild the code.
  2. Go to BT-SDK\wiced_btsdk\tools\btsdk-host-apps-mesh\VS_ClientControl\LightControl.cpp.
  3. Search for the function "void network_opened(uint8_t status)"
  4. Change the line    if (pSheet->m_active_page == 1 && theApp.bMeshPerfMode)      to     if (pSheet->m_active_page == 1 )
  5. Rebuild the code for debug.

"

void network_opened(uint8_t status)

{

    Log(L"Network opened");

    CClientDialog* pSheet = (CClientDialog*)theApp.m_pMainWnd;

#ifndef NO_LIGHT_CONTROL

    if (pSheet->m_active_page == 1)   //modified

    {

        CLightControl* pDlg = &pSheet->pageLight;

        if (pDlg)

            pDlg->PostMessage(WM_MESH_ADD_VENDOR_MODEL, (WPARAM)0, (LPARAM)0);

    }

#endif

}

"

Thanks,

-Dheeraj

Thank you very much, you are very helpful

I can print in UART the reply massage ("0x670x650x740x730x740x6c" or any message) with the card with code Mesh_Snip_213043MESH.mesh_provision_client / mesh_vendor_client.c

Thank you very much

ccld.PNG

the next thing i want to do

i want the board that has the code: Mesh_Snip_213043MESH.mesh_provision_client / mesh_vendor_client.c, send the data: "0x670x650x740x730x740x6c" to the board with the code Mesh_Snip_213043MESH.mesh_vendor_

but now without using the windows Mesh Control Client app

I want to know if another microcontroller can send the same data frame sent by the Mesh Control Client app to the WICED HCI port? or

Is the other option possible? : modify the Mesh_Snip_213043MESH.mesh_provision_client / mesh_vendor_client.c code so that it sends this data (0x670x650x740x730x740x6c) without using the Mesh Control Client app

Please

Can you tell me how can I do this?

0 Likes

HI,

Please refer WICED-HCI-Control-Protocol.pdf  if you want to use external host MCU to communicate with Cypress WICED device via HCI UART. Cypress MeshClientControl is a sample helper application which uses WICED HCI Control Protocol.

Please refer hci_control_api.h to get list of HCI commands.

Otherwise you can also hard code the data to be send in the application, and publish it by detecting interrupts. But I don't think you wanted to send some hard coded value always.

Since you have created another thread for this issue, lets discuss it over there. I need to send and receive messages with the BLE MESH, but without using the app Client Control Mesh

Thanks,

-Dheeraj

0 Likes