blob: 0d8a9ce98286ebedbae343aecd56a108a0037e3d [file] [log] [blame]
#include <log/log.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include "liblog/lynq_deflog.h"
#include <log/log.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <poll.h>
#include <signal.h>
#include <unistd.h>
//#include <gio/gio.h>
extern "C" {
#include "liblog/lynq_deflog.h"
}
#include "driver/driver_service.h"
#include "other/other_service.h"
#include "broadcast/broadcast_service.h"
#define LOG_TAG_SERVER "SYSTEM_SERVICE"
int fp = -1;
void my_signal_fun(int signum){
unsigned char key_val;
// char str[100]=;
char str[100] = { 0 };
int scanf_ret=0;
int gpio_num;
int trigger;
int trigger2;
int err1;
RLOGD("my_signal_fun,signum:%d\n",signum);
err1 = read(fp,str,sizeof(str));
if(err1 == -1){
RLOGD("start4444 err1,read faild!!!\n");
}
else{
RLOGD("read %s \n",str);
gpio_num = atoi(&str[0]);
trigger =atoi(&str[2]);
trigger2 =atoi(&str[4]);
//for(int i =0 ;i <10 ;i++)
// RLOGD("read zhouqunchao :%d \n",atoi(&str[i*2]));
//RLOGD("read %d \n",atoi(str));
//scanf_ret = sscanf(str, "%d %x %x",&gpio_num, &trigger,&trigger2);
trigger_interrupt(gpio_num,trigger2);
}
}
void register_trigger(){
int Oflags;
char a [ ] = "1 8 4";
char *s =a;
int error;
RLOGD("register_trigger\n");
signal(SIGIO, my_signal_fun);
fp = open("/dev/buttons1", O_RDWR);
if (fp < 0) {
LYDBGLOG("open /proc/buttons1 error\n");
return ;
} else {
LYDBGLOG("open /proc/buttons1 success!\n");
}
error = write(fp, s, sizeof(a));
if(error == -1)
{
LYDBGLOG("error,read faild!!!\n");
return ;
}
//set_trigger_write();
fcntl(fp, F_SETOWN, getpid());
Oflags = fcntl(fp, F_GETFL);
LYDBGLOG("Oflags=%d!!!\n",Oflags);
fcntl(fp, F_SETFL, Oflags | FASYNC);
// close(fp);
}
int main(int agrc, char** argv)
{
LYLOGEINIT(LOG_TAG_SERVER);
LYDBGLOG("initGDBus\n");
register_driver_service();
register_other_service();
register_broadcast_service();
register_trigger();
while (true) {
sleep(UINT32_MAX);
}
return 0;
}