Dr.DAQをハックしよう! Part3

とうとうDr.DAQのハックも3回目に来てしまった。
なんか、Partなんて書くと、2ちゃんねら〜と思われるのは、
かなんのだが、昔からこういうときはPartと書いていたので、
気にしないことにしよう。

今回は、卒業研究で使用していたNIM/CAMACモジュールを
制御するために、京都大学大学院の森井さんが作ってくれた
easydaqみたいな制御を出来る用にしようと思って実装した。

と思って、早速電話した。で、昔の仕様を聞いたので実装。
そうだったeasydaqは、一番最初の形で、それを分離したんだった。
numdaqとtimedaq。イベント数で区切るか、時間で区切るか。
それを発展させてeasydaqとして、run number管理機能も実装したんだった。

はっきりいって、管理を本気でしたかったら、
ブラウザ経由で実行できるようにphpをかますと楽勝
なのですが。
まぁ将来html形式でログを出力できるようにすればよいかな。

実装例を示す。

Usage:consoledaq [port] [sensor] [lNum] [fBehind]
port 1->LPT1 2->LPT2 x.. etc 101->USB port1 10x.. etc
sensor [nothing] or * -> All Sensor
sensor 1->Sound Waveform
sensor 2->Sound Level
sensor 3->Voltage
sensor 4->Resistance
sensor 5->pH
sensor 6->Temperature
sensor 7->Light
sensor 8->External 1
sensor 9->External 2
sensor a->the sensor type resistors for EXT1
sensor b->the sensor type resistors for EXT2
lNum The Number of DAQ.Default is 100.
lfBehind DAQ time. [ms] Default is 1000[ms]

これでnumdaqの完成。

今後のTO DO

  • Dr.DAQ関係

numdaqの実装
timerdaqの実装
easydaqの実装

  • 市教研算数ソフトウェア開発
メモリデバイスコンテキストの実装をするのを忘れてた。
テスト用のプログラムをそのままリリースしてしまった。
校区内交通安全マップ作り。
それをデータベースで一覧表示ができるように拡張機能を付ける。
  • 健康観察管理システムのバージョンアップとデバッグ
なぜか1年生から2年生に学年を上げると、データベースには
たまるのに、
学校のプリント形式にPDF出力する機能がうまく動作しない。
でも1年生のデータはうまくいく。というバグが見つかり、
原因究明に時間がかかってしまった。結果は、ものすごく
馬鹿なことで、X年Y月Z日A年生B組のデータ抽出関数で、
なんと、引数を変数ではなくて、``1''と決めうちにしている
という重大な欠陥でした。発見・修正に図書の空き時間のうち
30分も使ってしまった。
 後の15分は1年生の様子を見に行っていたのでした。

後は、出席簿形式でPDFを吐く機能を実装したい。
ROOT言語の勉強をして、javadoc形式にしてまとめたい。
とりあえずの目標は、あと48ページ。

  • アンケートシステム構築
これはテンプレートさえ固定してしまえば、
やろうと思ったらすぐできそうなので、夏休みでいいや。
これしたら、集計作業がいらないので、
しょっちゅうアンケートしてもOKである。
そのためにパソコン室に行くのが、面倒だと思うけど。
これが、ものすごく難しい。
Visual C++で作ろうか。
でも、文字列周りで超苦戦しそうなので、
STLを使いたいが、VCの場合、これが
厄介にしている。
そこで、上記目的を達成するために、
とりあえず、文字列操作をSTLを用いずに、
STLの基本的な機能を実装するための、
クラスを作りたい。

こんなところか。