Files
mkrtos-real/mkrtos_user/server/shell/test/rpc_test.c

147 lines
5.6 KiB
C
Raw Normal View History

2023-09-22 00:14:27 +08:00
#include "u_rpc.h"
2023-09-22 21:56:15 +08:00
#include <string.h>
#include <stdio.h>
2023-09-22 00:14:27 +08:00
typedef struct test_svr
{
} test_svr_t;
2023-09-22 21:56:15 +08:00
static test_svr_t test;
2023-09-23 13:15:09 +08:00
#if 0
RPC_GENERATION_OP1(test_svr_t, 0, register, rpc_int_t, rpc_int_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var0)
2023-09-22 21:56:15 +08:00
{
printf("var0 val is %d\n", var0->data);
2023-09-23 13:15:09 +08:00
var0->data = 0x112233;
2023-09-22 21:56:15 +08:00
return 1;
}
2023-09-23 13:15:09 +08:00
RPC_GENERATION_DISPATCH1(test_svr_t, 0, register, rpc_int_t, rpc_int_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var0)
RPC_GENERATION_CALL1(test_svr_t, 0, register, rpc_int_t, rpc_int_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var0)
#endif
#if 0
RPC_GENERATION_OP2(test_svr_t, 0, query,
rpc_int_t, rpc_int_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var0,
rpc_int_t, rpc_int_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var1)
2023-09-22 21:56:15 +08:00
{
2023-09-23 13:15:09 +08:00
printf("var0 val is %d\n", var0->data);
printf("var1 val is %d\n", var1->data);
var0->data = 0x112233;
var1->data = 0x123456;
return 2;
2023-09-22 21:56:15 +08:00
}
2023-09-23 13:15:09 +08:00
RPC_GENERATION_DISPATCH2(test_svr_t, 0, query,
rpc_int_t, rpc_int_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var0,
rpc_int_t, rpc_int_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var1)
RPC_GENERATION_CALL2(test_svr_t, 0, query,
rpc_int_t, rpc_int_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var0,
rpc_int_t, rpc_int_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var1)
msg_tag_t dispatch_test(msg_tag_t tag, ipc_msg_t *msg)
2023-09-22 21:56:15 +08:00
{
2023-09-23 13:15:09 +08:00
tag = test_svr_t_query_dispatch(&test, tag, msg);
}
#endif
2023-09-22 21:56:15 +08:00
2023-09-23 13:15:09 +08:00
#if 0
RPC_GENERATION_OP2(test_svr_t, 0, query,
rpc_ref_array_uint32_t_uint8_t_32_t, rpc_array_uint32_t_uint8_t_32_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var0,
rpc_ref_array_uint32_t_uint8_t_32_t, rpc_array_uint32_t_uint8_t_32_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var1)
{
printf("var0 val is %s\n", var0->data);
printf("var1 val is %s\n", var1->data);
strcpy(var0->data, "....");
var0->len = 5;
strcpy(var1->data, "____");
var1->len = 5;
return 2;
2023-09-22 21:56:15 +08:00
}
2023-09-23 13:15:09 +08:00
RPC_GENERATION_DISPATCH2(test_svr_t, 0, query,
rpc_ref_array_uint32_t_uint8_t_32_t, rpc_array_uint32_t_uint8_t_32_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var0,
rpc_ref_array_uint32_t_uint8_t_32_t, rpc_array_uint32_t_uint8_t_32_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var1)
2023-09-22 00:14:27 +08:00
2023-09-23 13:15:09 +08:00
RPC_GENERATION_CALL2(test_svr_t, 0, query,
rpc_ref_array_uint32_t_uint8_t_32_t, rpc_array_uint32_t_uint8_t_32_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var0,
rpc_ref_array_uint32_t_uint8_t_32_t, rpc_array_uint32_t_uint8_t_32_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var1)
msg_tag_t dispatch_test(msg_tag_t tag, ipc_msg_t *msg)
{
tag = test_svr_t_query_dispatch(&test, tag, msg);
}
#endif
#if 0
RPC_GENERATION_OP2(test_svr_t, 0, query,
rpc_ref_array_uint32_t_uint8_t_32_t, rpc_array_uint32_t_uint8_t_32_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var0,
rpc_obj_handler_t_t, rpc_obj_handler_t_t, RPC_DIR_IN, RPC_TYPE_BUF, var1)
2023-09-22 00:14:27 +08:00
{
2023-09-23 13:15:09 +08:00
printf("var0 val is %s\n", var0->data);
strcpy(var0->data, "....");
var0->len = 5;
return 2;
}
RPC_GENERATION_DISPATCH2(test_svr_t, 0, query,
rpc_ref_array_uint32_t_uint8_t_32_t, rpc_array_uint32_t_uint8_t_32_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var0,
rpc_obj_handler_t_t, rpc_obj_handler_t_t, RPC_DIR_IN, RPC_TYPE_BUF, var1)
2023-09-22 00:14:27 +08:00
2023-09-23 13:15:09 +08:00
RPC_GENERATION_CALL2(test_svr_t, 0, query,
rpc_ref_array_uint32_t_uint8_t_32_t, rpc_array_uint32_t_uint8_t_32_t, RPC_DIR_INOUT, RPC_TYPE_DATA, var0,
rpc_obj_handler_t_t, rpc_obj_handler_t_t, RPC_DIR_IN, RPC_TYPE_BUF, var1)
2023-09-22 00:14:27 +08:00
2023-09-23 13:15:09 +08:00
msg_tag_t dispatch_test(msg_tag_t tag, ipc_msg_t *msg)
{
tag = test_svr_t_query_dispatch(&test, tag, msg);
}
#endif
RPC_GENERATION_OP2(test_svr_t, 0, query,
rpc_obj_handler_t_t, rpc_obj_handler_t_t, RPC_DIR_OUT, RPC_TYPE_BUF, var0,
rpc_obj_handler_t_t, rpc_obj_handler_t_t, RPC_DIR_IN, RPC_TYPE_BUF, var1)
{
printf("dispath ok.\n");
var0->data = vpage_create_raw3(0, 0, 30).raw;
return 2;
}
RPC_GENERATION_DISPATCH2(test_svr_t, 0, query,
rpc_obj_handler_t_t, rpc_obj_handler_t_t, RPC_DIR_OUT, RPC_TYPE_BUF, var0,
rpc_obj_handler_t_t, rpc_obj_handler_t_t, RPC_DIR_IN, RPC_TYPE_BUF, var1)
RPC_GENERATION_CALL2(test_svr_t, 0, query,
rpc_obj_handler_t_t, rpc_obj_handler_t_t, RPC_DIR_OUT, RPC_TYPE_BUF, var0,
rpc_obj_handler_t_t, rpc_obj_handler_t_t, RPC_DIR_IN, RPC_TYPE_BUF, var1)
msg_tag_t dispatch_test(msg_tag_t tag, ipc_msg_t *msg)
{
tag = test_svr_t_query_dispatch(&test, tag, msg);
}
void rpc_test(void)
{
msg_tag_t tag;
#if 0
rpc_int_t var0 = {.data = 456};
tag = test_svr_t_register_call(15, &var0);
printf("ret:%d, val is 0x%x\n", msg_tag_get_val(tag), var0.data);
#endif
#if 0
rpc_int_t var1 = {.data = 123};
tag = test_svr_t_query_call(15, &var0, &var1);
printf("ret:%d, val is 0x%x, val is 0x%x\n", msg_tag_get_val(tag), var0.data, var1.data);
#endif
#if 0
uint8_t data_cache[10] = "test";
uint8_t data_cache1[10] = "tttt";
rpc_ref_array_uint32_t_uint8_t_32_t var0 = {
.data = data_cache,
.len = strlen(data_cache) + 1};
rpc_ref_array_uint32_t_uint8_t_32_t var1 = {
.data = data_cache1,
.len = strlen(data_cache1) + 1};
tag = test_svr_t_query_call(15, &var0, &var1);
printf("ret:%d, val is %s, val is %s.\n", msg_tag_get_val(tag), var0.data, var1.data);
#endif
rpc_obj_handler_t_t var0 = {.data = 0};
rpc_obj_handler_t_t var1 = {.data = 12};
tag = test_svr_t_query_call(15, &var0, &var1);
printf("ret:%d\n", msg_tag_get_val(tag));
2023-09-22 00:14:27 +08:00
}