[Armadillo:06488] Re: Armadillo-420のSW1について。

TFC 小林 email@hidden
2011年 1月 7日 (金) 15:12:06 JST


お世話になります。小林です。
引き続き、Armadillo-420のSW1について教えてください。

下記、プログラムを作成したのですが、ボタンを押してもイベントが発生しないの
か、
「No Event」と、「Value = 00」が1秒ごとずっと表示され続けます。

Open時に、「|O_NONBLOCK」を指定しないと、
Readコマンドで止まってしまうのか、ボタンを押すたびに、
「On Event」と、「Value = 01」が表示されます。

希望としては、SW1の状態表示と、他の処理を行いたいのですが、
どのようにすればいいのか教えてください。

#define DEV_NAME_PSW1 "/dev/input/event0"

int fd,ret;
char val;
int data;
struct input_event event;

while(1){

  data = 0;

  fd = open(DEV_NAME_PSW1, O_RDONLY | O_NONBLOCK);
  ret = read(fd, &event, sizeof(event));
  if (ret != sizeof(event)) {
    printf("No Event\n");
  }else{
    printf("On Event\n");
  }

  if ((event.type == EV_KEY) && (event.code == KEY_ENTER) && (event.value !=
0)){
    data = 1;
  }

  close(fd);

  // シリアル受信など、別処理を行う。
  printf("Value = %02x\n", data);
  sleep(1);

}






armadillo メーリングリストの案内