| #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; |
| } |