From owner-freebsd-users-jp@FreeBSD.ORG Wed Dec 11 01:18:19 2013 Return-Path: Delivered-To: freebsd-users-jp@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 18654DA8 for ; Wed, 11 Dec 2013 01:18:19 +0000 (UTC) Received: from meg.mogami.com (meg.mogami.com [219.166.57.5]) by mx1.freebsd.org (Postfix) with ESMTP id DA7B4124F for ; Wed, 11 Dec 2013 01:18:18 +0000 (UTC) Received: by meg.mogami.com (Postfix, from userid 1000) id D884D5C5E; Wed, 11 Dec 2013 10:09:19 +0900 (JST) Date: Wed, 11 Dec 2013 10:09:19 +0900 From: Kouichi Hirabayashi To: freebsd-users-jp@FreeBSD.org Message-Id: <20131211100919.bfae2453ee355311ed3946b9@mogami.com> Organization: Mogami Wire & Cable Corp. X-Mailer: Sylpheed 3.3.0 (GTK+ 2.24.17; i386-portbld-freebsd8.4) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Subject: [FreeBSD-users-jp 95096] =?iso-2022-jp?b?VVNCIBskQjI5RVk3VxsoQg==?= X-BeenThere: freebsd-users-jp@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Discussion relevant to FreeBSD communities in Japan List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Dec 2013 01:18:19 -0000 簡単な室温補正を必要とする測定のために温度計を探してみたのですが、 http://www.pcsensor.comindex.php_a=product&product_id=41 が FreeBSD-8.4 でも使えるようです。国内でも、 http://www.donya.jp/item/24167.html とか amazon などで取扱があって、1,000 円ちょっとで入手できます。 デバイスそのものは、Hid として設計されていて、 usbconfig dump_device_desc の結果は下記のようになります。 ugen0.2: at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0200 bDeviceClass = 0x0000 bDeviceSubClass = 0x0000 bDeviceProtocol = 0x0000 bMaxPacketSize0 = 0x0008 idVendor = 0x0c45 idProduct = 0x7401 bcdDevice = 0x0001 iManufacturer = 0x0001 iProduct = 0x0002 iSerialNumber = 0x0000 bNumConfigurations = 0x0001 付属 CD-ROM には Windows のアプリケーションしかありませんが、 Linux community で開発された pcsensor-1.0.0-multi.tgz が http://momtchil.momtchev.com/node/6 にありますので、これに下記のパッチをあてて、make すれば、 FreeBSD-8.4 で動作する pcsensor ができます。 --- pcsensor.c.orig 2013-12-11 09:10:15.000000000 +0900 +++ pcsensor.c 2013-12-11 09:19:40.000000000 +0900 @@ -34,8 +34,13 @@ #include #include #include - - +#ifdef __FreeBSD__ +#include +#include +#include +#endif + + #define VERSION "1.0.0" #define VENDOR_ID 0x0c45 @@ -80,17 +85,21 @@ ret = usb_detach_kernel_driver_np(lvr_winusb, iInterface); if(ret) { +#ifndef __FreeBSD__ if(errno == ENODATA) { if(debug) { printf("Device already detached\n"); } } else { +#endif if(debug) { printf("Detach failed: %s[%d]\n", strerror(errno), errno); printf("Continuing anyway\n"); } +#ifndef __FreeBSD__ } +#endif } else { if(debug) { printf("detach successful\n"); --- Makefile 2013-12-10 17:19:15.000000000 +0900 +++ makefile 2013-12-11 09:07:53.000000000 +0900 @@ -3,10 +3,9 @@ CFLAGS = -O2 -Wall pcsensor: pcsensor.c - ${CC} -DUNIT_TEST -o $@ $^ -lusb + cc -g -o pcsensor pcsensor.c -lusb + chmod 4755 pcsensor + chown root pcsensor clean: - rm -f pcsensor *.o - -rules-install: # must be superuser to do this - cp 99-tempsensor.rules /etc/udev/rules.d + rm -f pcsensor --< cut >-- このプログラム(pcsensor)を実行すると、下記のような出力が得られます。 $ pcsensor 2013/12/11 09:50:08 Temperature 72.05F 22.25C 短いプログラムですから、自分がほしい機能に書き換えるのも簡単です。 なお、このプログラムは libusb(http://www.libusb.org/) の 0.1 を使 っていて、既に legacy 版ですが、FreeBSD-8.4 ではまだ使えるものの、 まともなマニュアルがありませんので、libusb については、 http://libusb.sourceforge.net/doc/ を参照してください。現行版 1.0 のマニュアルは http://libusb.sourceforge.net/api-1.0/ です。 平林 浩一