// Copyright 2020 Fuzhou Rockchip Electronics Co., Ltd. All rights reserved.
|
// Use of this source code is governed by a BSD-style license that can be
|
// found in the LICENSE file.
|
|
#include <stdio.h>
|
#include <stdlib.h>
|
#include <string.h>
|
#include <errno.h>
|
#include <stdbool.h>
|
#include <sys/types.h>
|
#include <unistd.h>
|
#include <ctype.h>
|
#include <inttypes.h>
|
|
#include <glib.h>
|
|
#include <pthread.h>
|
#include <gdbus.h>
|
|
#include "json-c/json.h"
|
#include "call_fun_ipc.h"
|
#include "common.h"
|
|
static void main_exit(void)
|
{
|
printf("client %s\n", __func__);
|
call_fun_ipc_client_deinit();
|
}
|
|
void signal_crash_handler(int sig)
|
{
|
exit(-1);
|
}
|
|
void signal_exit_handler(int sig)
|
{
|
exit(0);
|
}
|
|
static void examples(void)
|
{
|
struct Examples_s para;
|
memset(¶, 0, sizeof(struct Examples_s));
|
para.r = 1;
|
para.g = 2;
|
para.b = 3;
|
para.ret = -1;
|
int ret = call_fun_ipc_call((char *)__func__, ¶, sizeof(struct Examples_s), 1);
|
printf("%s, ret = %d, para.ret = %d\n", __func__, ret, para.ret);
|
}
|
|
void help_printf(void)
|
{
|
printf("************************\n");
|
printf("0.exit\n");
|
printf("1.help\n");
|
printf("2.1000 examples\n");
|
printf("3.examples\n");
|
printf("************************\n");
|
}
|
|
int main( int argc , char ** argv)
|
{
|
atexit(main_exit);
|
signal(SIGTERM, signal_exit_handler);
|
signal(SIGINT, signal_exit_handler);
|
signal(SIGPIPE, SIG_IGN);
|
signal(SIGBUS, signal_crash_handler);
|
signal(SIGSEGV, signal_crash_handler);
|
signal(SIGFPE, signal_crash_handler);
|
signal(SIGABRT, signal_crash_handler);
|
|
call_fun_ipc_client_init(DBUS_NAME, DBUS_IF, DBUS_PATH, SHARE_PATH, 1);
|
help_printf();
|
while (1) {
|
char cmd = 0;
|
printf("please enter:");
|
again:
|
scanf("%c", &cmd);
|
switch(cmd) {
|
case '0':
|
return 0;
|
break;
|
case '1':
|
help_printf();
|
break;
|
case '2':
|
{
|
int i = 0;
|
while (i++ < 1000) {
|
examples();
|
usleep(1000);
|
}
|
}
|
break;
|
case '3':
|
examples();
|
break;
|
case '4':
|
break;
|
case '5':
|
break;
|
case '6':
|
break;
|
case 0xa:
|
continue;
|
break;
|
}
|
goto again;
|
}
|
|
printf("call_fun_ipc_demo_client exit\n");
|
|
return 0;
|
}
|