@@ -28,12 +28,33 @@ typedef struct mock_nrf_rpc_tr_ctx {
2828 struct k_work response_work ;
2929} mock_nrf_rpc_tr_ctx_t ;
3030
31+ static void log_payload (const char * caption , const uint8_t * payload , size_t length )
32+ {
33+ char payload_str [32 ];
34+
35+ if (!bin2hex (payload , length , payload_str , sizeof (payload_str ))) {
36+ /*
37+ * If bin2hex() returns 0, this means that the payload converted to HEX is too
38+ * large to fit within 'payload_str'. In such a case, log as long prefix of the
39+ * payload as possible, followed by "...". The code below calculates the prefix
40+ * length.
41+ */
42+ length = (sizeof (payload_str ) - sizeof ("..." )) / 2 ;
43+ bin2hex (payload , length , payload_str , sizeof (payload_str ));
44+ strcat (payload_str , "..." );
45+ }
46+
47+ printk ("%s: %s of length %zu\n" , caption , payload_str , length );
48+ }
49+
3150/* Asynchronous task to simulate reception of a response packet. */
3251static void response_send (struct k_work * work )
3352{
3453 mock_nrf_rpc_tr_ctx_t * ctx = CONTAINER_OF (work , mock_nrf_rpc_tr_ctx_t , response_work );
3554 mock_nrf_rpc_pkt_t * response = ctx -> cur_response ;
3655
56+ log_payload ("Responding with nRF RPC packet" , response -> data , response -> len );
57+
3758 ctx -> receive_cb (ctx -> transport , response -> data , response -> len , ctx -> receive_ctx );
3859}
3960
@@ -51,25 +72,6 @@ static int init(const struct nrf_rpc_tr *transport, nrf_rpc_tr_receive_handler_t
5172 return 0 ;
5273}
5374
54- static void log_payload (const char * caption , const uint8_t * payload , size_t length )
55- {
56- char payload_str [32 ];
57-
58- if (!bin2hex (payload , length , payload_str , sizeof (payload_str ))) {
59- /*
60- * If bin2hex() returns 0, this means that the payload converted to HEX is too
61- * large to fit within 'payload_str'. In such a case, log as long prefix of the
62- * payload as possible, followed by "...". The code below calculates the prefix
63- * length.
64- */
65- length = (sizeof (payload_str ) - sizeof ("..." )) / 2 ;
66- bin2hex (payload , length , payload_str , sizeof (payload_str ));
67- strcat (payload_str , "..." );
68- }
69-
70- printk ("%s: %s of length %zu\n" , caption , payload_str , length );
71- }
72-
7375static int send (const struct nrf_rpc_tr * transport , const uint8_t * data , size_t length )
7476{
7577 mock_nrf_rpc_tr_ctx_t * ctx = transport -> ctx ;
@@ -158,3 +160,14 @@ void mock_nrf_rpc_tr_expect_reset(void)
158160 ctx -> num_expected = 0 ;
159161 ctx -> cur_expected = 0 ;
160162}
163+
164+ void mock_nrf_rpc_tr_receive (mock_nrf_rpc_pkt_t packet )
165+ {
166+ mock_nrf_rpc_tr_ctx_t * ctx = mock_nrf_rpc_tr .ctx ;
167+
168+ zassert_not_null (ctx -> receive_cb );
169+
170+ log_payload ("Received nRF RPC packet" , packet .data , packet .len );
171+
172+ ctx -> receive_cb (ctx -> transport , packet .data , packet .len , ctx -> receive_ctx );
173+ }
0 commit comments