Hi,
Here I met a problem, please help.
I am using proxy.c to establish an data link with smartphone via mesh_GATT.
What I am doing is like this:
For TX ,
it is actually a service notification
1. I created a function to use proxy_connection, I understand, only one connection permited.
static void send_data_to_smartphone(proxy_connection_t * p_connection)
{
__LOG(LOG_SRC_BEARER, LOG_LEVEL_INFO, "START TX\n");
proxy_enable();
if (packet_alloc(p_connection, MESH_GATT_PDU_TYPE_NETWORK_PDU, SEAT_BELT_PACKET_SIZE, NRF_MESH_SERVICE_BORDER_TOKEN) ==
NRF_SUCCESS)
{
memcpy(p_connection->p_alloc_packet, seat_belt_data.tx_data, sizeof(seat_belt_data.tx_data));
// memset(seat_belt_data.tx_data,0xFF,SEAT_BELT_PACKET_SIZE);
}
packet_send(p_connection);
}
2. I called this function in
" static void gatt_evt_handler(const mesh_gatt_evt_t * p_evt, void * p_context)"
at position:
case MESH_GATT_EVT_TYPE_TX_READY:
__LOG(LOG_SRC_BEARER, LOG_LEVEL_INFO, "TX ready\n");
send_data_to_smartphone(p_connection);
beacon_cycle_send(p_connection);
break;
3. Smartphone side: start nRF Connect
Result: 1) from smartphone I can see data keep coming ,but it is not my data;
2) in debug process,
__LOG(LOG_SRC_BEARER, LOG_LEVEL_INFO, "START TX\n");
do not show up?
for RX
I follow rx_handle function ,
case MESH_GATT_EVT_TYPE_RX:
__LOG(LOG_SRC_BEARER, LOG_LEVEL_INFO, "RX\n");
rx_handle(p_connection,
p_evt->params.rx.pdu_type,
p_evt->params.rx.p_data,
p_evt->params.rx.length);
to file "network .c", inside
uint32_t network_packet_in(const uint8_t * p_packet, uint32_t net_packet_len, const nrf_mesh_rx_metadata_t * p_rx_metadata)
I put :
#if GATT_PROXY
if(p_rx_metadata->source==NRF_MESH_RX_SOURCE_GATT)
{
__LOG(LOG_SRC_BEARER, LOG_LEVEL_INFO, "RX2_Start\n");
memcpy(seat_belt_data.rx_data,&net_decrypted_packet,sizeof(net_decrypted_packet));
}
try to memcopy the pocket arrive from mesh GATT.
Result.
1. smartphone side: when I try to write data, the connection terminated immediately,.
2. in debug process, I can not see any reaction , even log info.
Please help how to move at this point.
Thanks a lot.
Brent