ラズベリーパイのshでsleep0.5が効くことを確認
$ while :; do date; sleep 0.5; done
2013年 9月 12日 木曜日 23:03:36 JST
2013年 9月 12日 木曜日 23:03:36 JST
2013年 9月 12日 木曜日 23:03:37 JST
2013年 9月 12日 木曜日 23:03:37 JST
2013年 9月 12日 木曜日 23:03:38 JST
2013年 9月 12日 木曜日 23:03:38 JST
2013年 9月 12日 木曜日 23:03:39 JST
2013年 9月 12日 木曜日 23:03:40 JST
2013年 9月 12日 木曜日 23:03:40 JST
2013年 9月 12日 木曜日 23:03:41 JST
2013年 9月 12日 木曜日 23:03:41 JST
2013年 9月 12日 木曜日 23:03:42 JST
writekeyevent.c
# include <stdio.h>
# include <stdlib.h>
# include <linux/input.h>
# include <sys/time.h>
void write_key_event(int code, int value, int fd)
{
struct input_event key_event;
gettimeofday(&key_event.time, NULL);
key_event.type = EV_KEY;
key_event.code = code;
key_event.value = value;
write(fd, &key_event, sizeof(key_event));
}
main( int argc, char **argv ) {
int code ;
code = atoi( argv[1] ) ;
write_key_event(code, 1, 1);
write_key_event(code, 0, 1);
printf( "%d\n", code ) ;
exit(EXIT_SUCCESS);
}
$ ./writekeyevent 30 >/dev/input/event1
dartsboard2key.sh
- 本当はCで全部書きたいところだが、スキルが足らんのでしかたなくshで
いろいろと試行誤したコード
#SEGMENT=`hexdump -C -n 16 /dev/input/event1 | head -n 1 | cut -d\ -f16`
#echo cat /dev/input/event0 | od -tx1 -w32 -An -v
#SEGMENT=$(cat /dev/input/event0 | od -tx1 | cut -d\ -f14)
まだまだ途中
#!/bin/sh
while :
do
SEGMENT=`hexdump -d -n 16 /dev/input/event0 | head -n 1 | cut -d\ -f22-23`
VALUE=`expr $SEGMENT / 1`;
case $VALUE in
91) echo "z" ;;
90) echo "x" ;;
89) echo "c" ;;
*) echo $SEGMENT ;;
esac
done