#include <stdio.h> | |
#include <string.h> | |
#include <stdlib.h> | |
#include <dlfcn.h> | |
#include <stdint.h> | |
typedef void(*AT_CALLBACK)(char input[],char output[],int out_max_size); | |
int32_t (*gsw_reg_atcmd)(const char *atcmd,AT_CALLBACK); | |
void *dlHandle_at; | |
char *lynqLib_at = "/lib/libgsw_lib.so"; | |
void lynq_test_example(char input[], char output[], int out_max_size) | |
{ | |
if(!strcmp(input, "AT+TEST1")) | |
{ | |
memcpy(output, input, strlen(input)); | |
} | |
else if(!strcmp(input, "AT+TEST2")) | |
{ | |
memcpy(output, input, strlen(input)); | |
} | |
else if(!strcmp(input, "AT+TEST3")) | |
{ | |
memcpy(output, input, strlen(input)); | |
} | |
else if(!strcmp(input, "AT+TEST4")) | |
{ | |
memcpy(output, input, strlen(input)); | |
} | |
else if(!strcmp(input, "AT+TEST5")) | |
{ | |
memcpy(output, input, strlen(input)); | |
} | |
return; | |
} | |
int main(void) | |
{ | |
int ret; | |
dlHandle_at = dlopen(lynqLib_at, RTLD_NOW); | |
gsw_reg_atcmd=(int32_t(*)(const char *atcmd,AT_CALLBACK))dlsym(dlHandle_at, "gsw_reg_atcmd"); | |
ret = gsw_reg_atcmd("AT+TEST1;AT+TEST2;AT+TEST3;AT+TEST4;AT+TEST5",lynq_test_example); | |
if (ret == 0) | |
printf("at add ok\n"); | |
else | |
printf("at add fail\n"); | |
while (1) | |
{ | |
getchar(); | |
} | |
dlclose(dlHandle_at); | |
dlHandle_at = NULL; | |
return 0; | |
} |