パスワードを忘れた? アカウント作成
386403 journal

g26a345の日記: USB-IO その1

日記 by g26a345
モルフィーのUSB-IOを、今更ながら使ってみた。
モルフィー自身はいろいろ問題があったけど、便利に使えるものは使おう。

買ったのはテクノキットのやつ。
製作は簡単。
念の為、自宅にあった20ピンのICソケットを使った。
もしIC壊したらICだけ買えばいいかな....と思ったけど、その心配もないみたい。

ICのピンにはLEDも何もつながず、とりあえずLinuxのUSBポートにつないでみた。
すると、
usb 1-2.1: new low speed USB device using ehci_hcd and address 3
usbcore: registered new driver hiddev
hiddev96: USB HID v1.00 Device [Morphy Planning generic USB IO ver.2] on usb-0000:00:10.3-2.1
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.0:USB HID core driver
てな感じでHIDで認識されている模様。

USB-IOでぐぐると、Linux用のドライバーとかあるみたいだけど、
とりあえず、標準のHIDデバイスをダイレクトに叩いてみた。
デバイスは /dev/usb/hiddev0 になっているらしい。

USB HID for Linux USB( http://www.frogmouth.net/hid-doco/linux-hid.html )を見て、
ここの HIDDEV Example をそのままやってみたり。
たしかに認識してはいるようだ。

少しプログラムを変えてみた。

#include <stdlib.h>
#include <stdio.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <asm/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/hiddev.h>

int main (int argc, char **argv) {

      int fd = -1;
      char name[1024];

      /* ioctl() requires a file descriptor, so we check we got one, and then open it */
      if (argc != 2) {
          fprintf(stderr, "usage: %s hiddevice - probably /dev/usb/hiddev0\n", argv[0]);
          exit(1);
      }
      if ((fd = open(argv[1], O_RDONLY)) < 0) {
          perror("hiddev open");
          exit(1);
      }

    /* ioctl() accesses the underlying driver */
    ioctl(fd, HIDIOCGNAME(1024), name);

    /* the HIDIOCGVERSION ioctl() returns an int */
    /* so we unpack it and display it */
    printf("hiddev device name is %s\n",name);

    close(fd);

    exit(0);
}

単にIOCTLをHIDIOCGNAMEにしてみただけだけど。
コンパイルして実行したら、
hiddev device name is Morphy Planning generic USB IO ver.2
と出た。
わーい。
typodupeerror

アレゲは一日にしてならず -- アレゲ研究家

読み込み中...