NAME

msc2dxdl - Data downloader for MSC2DX


SYNOPSIS

  msc2dxdl [options] <device name>


DESCRIPTION

If you have no environment to read this POD, please try "msc2dxdl -?" for summary, and read script itself for details.

Msc2dxdlは、 (株)キャットアイの速度兼心拍計MSC2DXのダウンロードキット用Perlスクリプトです。 ダウンロードキットの接続されたシリアルデバイスからデータを読み込み、 指定された形式で指定されたファイルに出力します。 スクリプトの実体はこちらにあります。


Running the program

ダウンロードキット接続後このスクリプトを実行し、 プロンプト文字列が出力されたところでMSC2DXを操作し、 データのダウンロードを開始して下さい。

データの出力形式、出力ファイル、その他様々なプログラムの振舞いは、 コマンドラインオプションか、 実行時のカレントディレクトリにある.msc2dxdl.plというファイル中か、 /etc/msc2dxdl.plというファイル中で指定します。

コマンドラインオプションでの指定は./.msc2dxdl.pl/etc/msc2dxdl.plでの指定を上書きし、 ./.msc2dxdl.plでの指定は/etc/msc2dxdl.plでの指定を上書きします。

起動時のユーザは、 デバイスファイルの読み込み権限と、 (UUCPスタイルのロックファイルを作る場合は) ロックファイル用ディレクトリへの書き込み権限を持っている必要があります。

生成されたデータファイルを利用するユーザがこれらの権限を持っていない場合は、 権限を持つユーザとしてプログラムを起動し、 コマンドラインオプションで$userという変数に利用者のユーザ名を指定するか、 起動後のPerlの表現の評価機能を使って$uid$gidという変数の値を変更して下さい。


Command line options (in short form)

以下のオプションとその引数の間の空白は省略できます。

-p <prompting string>

シリアルデバイスと標準入力からのデータの入力の準備ができたことを知らせるための文字列を指定します。

標準入力からは1行づつ読み込み、 それをPerlの表現としてmainパッケージ中で評価します。

プログラムの終了のためには、 この機能を使用してexitという表現を評価する必要があります。 また出力形式や出力ファイルを、 実行途中で変更するためにも使います。

-a <auto_file>

オートメモリデータの出力ファイルを指定します。 ただし、%+任意の1文字、という文字列は特別に解釈されます。 詳しくは下の% Expressionsの節を読んで下さい。

デフォルトは"%b-%U-%I-%#.auto"です。

-l <lap_file>

ラップメモリデータの出力ファイルを指定します。 ただし、%+任意の1文字、という文字列は特別に解釈されます。 詳しくは下の% Expressionsの節を読んで下さい。

デフォルトは"%b-%U.lap"です。

-z <zone_file>

心拍ゾーンデータの出力ファイルを指定します。 ただし、%+任意の1文字、という文字列は特別に解釈されます。 詳しくは下の% Expressionsの節を読んで下さい。

デフォルトは"%b.zone"です。

-b <file_base>

各種ファイルの名前のベースとなる文字列を指定します。 デフォルトは「date +%Y%m%d-%H%M%S」というコマンドの出力と同じになります。 詳細はdate(1)をどうぞ。

-m <tty_readmin>

シリアルデバイスから読み込む最小の文字数を指定します。 詳細はtermios(3)VMINの説明をどうぞ。 デフォルトは1です。

-t <tty_timeout>

シリアルデバイスから読み込む文字間のタイムアウトを指定します。 詳細はtermios(3)VTIMEの説明をどうぞ。 デフォルトは0です。

-d <tty_lockdir>

起動時にUUCPスタイルのロックファイルを作るディレクトリを指定します。 デフォルトは"/var/lock"です。

このプログラムがデバイスを占有できることが保証されている等、 ロックの必要が無い場合はオプションの引数として空文字列か"-"を指定して下さい。

-h, -?

オプション一覧と簡単な説明を標準エラー出力に表示してから直ちに終了します。


Command line options (in long form)

上の短形式以外に

--<name>=<value>

名前が<name>のPerl変数の値を<value>に

--<name>

名前が<name>のPerl変数の値を文字-(ハイフン)に

のような形式で、 コマンドライン上でPerlの変数の値を設定することも可能です。

以下にコマンドライン上で値を設定することに意味のある変数を列挙します。

$prompt

-pオプションで設定されます。

$auto_file

-aオプションで設定されます。

$auto_line

各オートメモリデータの出力フォーマットを指定します。 デフォルトは"%V %B %D%n"です。

$lap_file

-lオプションで設定されます。

$lap_line

各ラップメモリデータの出力フォーマットを指定します。 デフォルトは"%H:%M:%S %V %B %D%n"です。

$zone_file

-zオプションで設定されます。

$zone_line

各心拍ゾーンデータの出力フォーマットを指定します。 デフォルトは"%_ %^ %H:%M:%S%n"です。

$file_base

-bオプションで設定されます。

$tty_readmin

-mオプションで設定されます。

$tty_timeout

-tオプションで設定されます。

$tty_lockdir

-dオプションで設定されます。

$tty_binlock

Perlの表現として真であるような文字列を指定すると、 ロックファイルに書き込まれる内容がpack('L',$$)の評価結果になります。

それ以外の場合はsprintf("%010d\n",$$)の評価結果になります。

$user

生成されるファイルの所有者のユーザ名を指定します。 デフォルトは、 このスクリプトの所有者か、 その取得に失敗した場合は実行ユーザになります。


% Expressions

各種データの出力ファイルと出力フォーマットは、 その中の%+任意の一文字という部分文字列に、 以下のような置換を施してから使用されます。

%#

オートメモリファイルのファイル番号、

%U

距離の単位("mile"または"km")、

%I

オートメモリの記録間隔(51530、または60、単位は秒)、

%V

小数点未満が1ケタになるように表現された速度("mile/h"または"km/h")、

%B

心拍数("bpm")、

%R

ケイデンス("rpm")、

%D

小数点未満が2ケタになるように表現された距離(mileまたはkm)、

%T

時間を秒単位であらわした数値、

%H

時間を「時:分:秒」とあらわしたときの「時」の部分、 必ず1桁、

%M

時間を「時:分:秒」とあらわしたときの「分」の部分、 必ず2桁、

%S

時間を「時:分:秒」とあらわしたときの「秒」の部分、 必ず2桁、

%_ (%+アンダースコア)

心拍ゾーンの下限、

%^ (%+キャレット)

心拍ゾーンの上限、

%b

$file_baseの内容、

%n

改行文字(\x0A)、

%+上記以外の文字

その文字。


AUTHOR

須藤 清一 <suto@ks-and-ks.ne.jp>


DISCLAIMER etc.

このプログラムの全部または一部を、 どのように改変しどのような目的に使用しても構いません。

このプログラムおよびその派生物を使用した結果に関して、 作者は一切責任を負いません。


ACKNOWLEDGEMENT

作者の問い合わせに、 詳細な情報を提供して下さった株式会社キャットアイに対して、 心から感謝致します。

なお情報を提供してもらった以外には、 株式会社キャットアイはまったく関知していないので、 このプログラムに関する問い合わせを株式会社キャットアイに行うことは、 絶対に止めて下さい。