b.liu | 68a94c9 | 2025-05-24 12:53:41 +0800 | [diff] [blame^] | 1 | #include <stdio.h>
|
| 2 | #include <string.h>
|
| 3 | #include <stdlib.h>
|
| 4 | #include <dlfcn.h>
|
| 5 | #include <stdint.h>
|
| 6 |
|
| 7 | typedef void(*AT_CALLBACK)(char input[],char output[],int out_max_size);
|
| 8 | int32_t (*gsw_reg_atcmd)(const char *atcmd,AT_CALLBACK);
|
| 9 | void *dlHandle_at;
|
| 10 | char *lynqLib_at = "/lib/libgsw_lib.so";
|
| 11 |
|
| 12 | void lynq_test_example(char input[], char output[], int out_max_size)
|
| 13 | {
|
| 14 | if(!strcmp(input, "AT+TEST1"))
|
| 15 | {
|
| 16 | memcpy(output, input, strlen(input));
|
| 17 | }
|
| 18 | else if(!strcmp(input, "AT+TEST2"))
|
| 19 | {
|
| 20 | memcpy(output, input, strlen(input));
|
| 21 | }
|
| 22 | else if(!strcmp(input, "AT+TEST3"))
|
| 23 | {
|
| 24 | memcpy(output, input, strlen(input));
|
| 25 | }
|
| 26 | else if(!strcmp(input, "AT+TEST4"))
|
| 27 | {
|
| 28 | memcpy(output, input, strlen(input));
|
| 29 | }
|
| 30 | else if(!strcmp(input, "AT+TEST5"))
|
| 31 | {
|
| 32 | memcpy(output, input, strlen(input));
|
| 33 | }
|
| 34 | return;
|
| 35 | }
|
| 36 |
|
| 37 |
|
| 38 | int main(void)
|
| 39 | {
|
| 40 | int ret;
|
| 41 | dlHandle_at = dlopen(lynqLib_at, RTLD_NOW);
|
| 42 | gsw_reg_atcmd=(int32_t(*)(const char *atcmd,AT_CALLBACK))dlsym(dlHandle_at, "gsw_reg_atcmd");
|
| 43 | ret = gsw_reg_atcmd("AT+TEST1;AT+TEST2;AT+TEST3;AT+TEST4;AT+TEST5",lynq_test_example);
|
| 44 | if (ret == 0)
|
| 45 | printf("at add ok\n");
|
| 46 | else
|
| 47 | printf("at add fail\n");
|
| 48 | while (1)
|
| 49 | {
|
| 50 | getchar();
|
| 51 | }
|
| 52 | dlclose(dlHandle_at);
|
| 53 | dlHandle_at = NULL;
|
| 54 | return 0;
|
| 55 |
|
| 56 | } |