Update LYNQ test
Change-Id: I9e434803f0cce9f24048f2fbc5eed2d26fa33503
diff --git a/mbtk/test/liblynq_lib/poweralarm-demo.cpp b/mbtk/test/liblynq_lib/poweralarm-demo.cpp
new file mode 100755
index 0000000..0bca3bb
--- /dev/null
+++ b/mbtk/test/liblynq_lib/poweralarm-demo.cpp
@@ -0,0 +1,304 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <dlfcn.h>
+#include <stdint.h>
+
+
+#define INIT_SUCCESS 0
+#define RTC_DEINIT -1
+typedef struct
+{
+ int cmdIdx;
+ char *funcName;
+} st_api_test_case;
+
+
+//for server test
+st_api_test_case at_api_testcases[] =
+{
+ {0, "print_help"},
+ {1, "lynq_rtc_service_init"},
+ {2, "poweralarm"},
+ {3, "wakealarm"},
+ {4, "cancel_wakealarm"},
+ {5, "lynq_set_poweralarm"},
+ {6, "lynq_set_wakealarm"},
+ {7, "lynq_rtc_service_deinit"},
+ {-1, NULL}
+};
+
+ int init_flag = -1;
+ int src_id = -1;
+ void *dlHandle_poweralarm = NULL;
+
+typedef int (*lynq_wakealarm_add_cb)(unsigned int src_id, int rtc_id);
+
+int (*lynq_rtc_service_init)(void);
+int (*lynq_rtc_service_deinit)(void);
+int (*poweralarm)(char *buffer,int src_id);
+int (*wakealarm)(char *buffer,int srcid,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify);
+int (*cancel_wakealarm)(int src_id,int rtc_id);
+int (*lynq_set_poweralarm)(unsigned long time_sec,int src_id);
+int (*lynq_set_wakealarm)(unsigned long time_sec,int srcid,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify);
+
+
+
+void print_help(void)
+{
+ int i;
+ printf("Supported test cases:\n");
+ for(i = 0; ; i++)
+ {
+ if(at_api_testcases[i].cmdIdx == -1)
+ {
+ break;
+ }
+ printf("%d:\t%s\n", at_api_testcases[i].cmdIdx, at_api_testcases[i].funcName);
+ }
+}
+
+int lynq_wakealarm_add_callback(unsigned int src_id, int rtc_id)
+{
+ printf("wake alarm callback test \n");
+ return 0;
+}
+
+
+int main(int argc,char *argv[])
+{
+
+ int cmdIdx = 0;
+ printf("Enter main function\n");
+
+ const char *dlHandle_Path_poweralarm = "/lib/libpoweralarm.so";
+ dlHandle_poweralarm = dlopen(dlHandle_Path_poweralarm, RTLD_NOW);
+ if (dlHandle_poweralarm == NULL)
+ {
+ printf("dlopen dlHandle_fota failed: %s\n", dlerror());
+ return -1;
+ }
+
+ poweralarm = (int (*)(char *buffer,int src_ids))dlsym(dlHandle_poweralarm, "poweralarm");
+ if(poweralarm == NULL)
+ {
+ printf("poweralarm is null\n");
+ return -1;
+ }
+
+ wakealarm = (int (*)(char *buffer,int srcid,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify))dlsym(dlHandle_poweralarm, "wakealarm");
+ if(wakealarm == NULL)
+ {
+ printf("wakealarm is null\n");
+ return -1;
+ }
+ lynq_set_poweralarm = (int (*)(unsigned long,int src_id))dlsym(dlHandle_poweralarm,"lynq_set_poweralarm");
+ if(lynq_set_poweralarm == NULL)
+ {
+ printf("lynq_set_poweralarm is null\n");
+ return -1;
+ }
+ lynq_set_wakealarm = (int (*)(unsigned long,int srcid,int rtc_id,lynq_wakealarm_add_cb wakealarm_notify))dlsym(dlHandle_poweralarm,"lynq_set_wakealarm");
+ if(lynq_set_wakealarm == NULL)
+ {
+ printf("lynq_set_wakealarm is null\n");
+ return -1;
+ }
+
+ cancel_wakealarm = (int (*)(int src_id,int rtc_id))dlsym(dlHandle_poweralarm, "cancel_wakealarm");
+ if(cancel_wakealarm == NULL)
+ {
+ printf("cancel_wakealarm is null\n");
+ return -1;
+ }
+
+ lynq_rtc_service_init = (int(*)())dlsym(dlHandle_poweralarm,"lynq_rtc_service_init");
+ if(lynq_rtc_service_init == NULL)
+ {
+ printf("lynq_rtc_service_init is null\n");
+ return -1;
+ }
+
+ lynq_rtc_service_deinit = (int (*)())dlsym(dlHandle_poweralarm,"lynq_rtc_service_deinit");
+ if(lynq_rtc_service_deinit == NULL)
+ {
+ printf("lynq_rtc_service_deinit is null \n");
+ return -1;
+ }
+
+ print_help();
+ while(1)
+ {
+
+ printf("\nplease input cmd index(-1 exit): ");
+ scanf("%d", &cmdIdx);
+ if(cmdIdx == -1)
+ {
+ break;
+ }
+ switch(cmdIdx)
+ {
+ case 0:
+ print_help();
+ break;
+ case 1:
+ {
+ src_id = lynq_rtc_service_init();
+ if(src_id <= 0)
+ {
+
+ printf("RTC service init failed ");
+ return -1;
+ }
+ else
+ {
+ init_flag = INIT_SUCCESS;
+ }
+
+ break;
+ }
+ case 2:
+ {
+
+ if(init_flag != INIT_SUCCESS)
+ {
+ printf("*****ERROR must init rtc service ,Please reselect *******\n ");
+ }
+ else
+ {
+ int ret = 0;
+ char tmp_time[32] = {0};
+ printf("Set poweralarm time,e.g: 60 (seconds)\n");
+ scanf("%s",tmp_time);
+ ret = poweralarm(tmp_time,src_id);
+ if(ret != 0)
+ {
+ printf("set poweralarm failed\n");
+ return -1;
+ }
+ }
+ break;
+ }
+ case 3:
+ {
+ if(init_flag != INIT_SUCCESS)
+ {
+ printf("*****ERROR must init rtc service ,Please reselect *******\n ");
+ }
+ else
+ {
+ int ret = 0;
+ char tmp_time[32]={0};
+ int rtc_id = 0;
+ printf("Set wakealarm time ,e.g: 60 1 (seconds)\n");
+ scanf("%s%d",tmp_time,&rtc_id);
+
+ ret = wakealarm(tmp_time,src_id,rtc_id,lynq_wakealarm_add_callback);
+ if(ret != 0)
+ {
+ printf("set wakealarm failed\n");
+ return -1;
+ }
+ }
+ break;
+ }
+ case 4:
+ {
+ if(init_flag != INIT_SUCCESS)
+ {
+ printf("*****ERROR must init rtc service ,Please reselect *******\n ");
+ }
+ else
+ {
+ int ret = 0;
+ int rtc_id = 0;
+ printf("Please input you want cancel rtc timer rtc id\n");
+ scanf("%d",&rtc_id);
+ ret = cancel_wakealarm(src_id,rtc_id);
+ if(ret != 0)
+ {
+ printf("Cancel_wakealarm failed!!!");
+ return -1;
+ }
+ }
+ break;
+ }
+ case 5:
+ {
+ if(init_flag != INIT_SUCCESS)
+ {
+ printf("*****ERROR must init rtc service ,Please reselect *******\n ");
+ }
+ else
+ {
+ int ret = 0;
+ unsigned long time_sec = 0;
+ printf("Input time_sec you want poweralarm,e.g: 60 (seconds)\n");
+ scanf("%lu",&time_sec);
+ ret =lynq_set_poweralarm(time_sec,src_id);
+ printf("ret is %d\n",ret);
+ if(ret != 0)
+ {
+ printf("lynq_set_poweralarm failed\n");
+ return -1;
+ }
+ }
+ break;
+ }
+ case 6:
+ {
+ if(init_flag != INIT_SUCCESS)
+ {
+ printf("*****ERROR must init rtc service ,Please reselect *******\n ");
+ }
+ else
+ {
+ int ret = 0;
+ unsigned long time_sec = 0;
+ int rtc_id;
+ printf("Input time_sec you want wakealarm,e.g:60 1(seconds)\n");
+ scanf("%lu%d",&time_sec,&rtc_id);
+ ret =lynq_set_wakealarm(time_sec,src_id,rtc_id,lynq_wakealarm_add_callback);
+ if(ret != 0)
+ {
+ printf("lynq_set_wakealarm failed\n");
+ return -1;
+ }
+ }
+ break;
+ }
+ case 7:
+ {
+ if(init_flag != INIT_SUCCESS)
+ {
+ printf("*****ERROR must init rtc service ,Please reselect *******\n ");
+ }
+ else
+ {
+ int ret = -1;
+ printf("rtc servce deinit !!!!!!!!!!!!");
+ ret = lynq_rtc_service_deinit();
+ if(ret != 0)
+ {
+ printf("lynq rtc service deinit failed \n");
+ return -1;
+ }
+ else
+ {
+ init_flag = RTC_DEINIT;
+ }
+ }
+ break;
+ }
+
+ default:
+ break;
+ }
+ }
+
+ return 0;
+
+}
+