なかのにっき

最新版はこちら。 突っ込みは各日付の BBS エントリのほか、 メール (nakano@st.seikei.ac.jp) や フォーム からどうぞ。 なおスパム除けのため、BBS 機能には 緩い認証を入れて います。 検索エンジンから来た方は、エンジンの方のキャッシュを見るか、 下の簡易検索を試してみてください。


hns - 日記自動生成システム - Version 2.19.5

先月 2004年01月 来月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2004年01月04日() [n年日記]

#1 帰り

自転車。久々に往復すると腰にくる。

#2

あと 5 個。カビ取って冷凍庫へ。

#3 行き

自転車。曇り。

#4 [labo] スパッタ成膜速度測定

引き続き。

34401A の測定ルーチン:

*CLS
*RST
:SYST:REM

:VOLT:DC:RANG 10
:VOLT:DC:RES 0.0001
:VOLT:DC:NPLC 1
:TRIG:SOUR IMM
:TRIG:DEL MIN
:SAMP:COUN 1

無限ループ{
  (時刻取得)
  READ?
  read();
  printf(時刻・データ)
  fflush(stdout)
  usleep(9e5)
}
という感じで。

割り込み後の終了処理:

測定の無限ループを Ctrl-C で止めたときに 34401A とシリアル線の終了処理をするため、
void intHandler(int signum){
  xtc_send(":SYST:LOC");
  xtc_close();
  exit(0);
}

int main(int argc, char * argv[])
{
    :
  struct sigaction sa;
    :
  memset(&sa, 0, sizeof(sa));
  sa.sa_handler = intHandler;
  if (sigaction(SIGINT, &sa, NULL)) perror("sigaction");
    :
という感じで。 『プログラミング Linux』 の 13 章あたり。

時刻取得:

    struct timeval tv;
    struct timezone tv;
       :
    gettimeofday(&tv, &tz);
    printf("%ld.%06ld %s\n", tv.tv_sec, tv.tv_usec, rbuf);
という感じで。

シリアル:

ここが一番はまった。 どうもタイミングによって "READ?" を送った後の read() コールで刺さることがある。 いろいろ試行錯誤していたのだが、 どうも制御文字関連ではまっているっぽい。 34401A は シーケンスの最後に \r\n を返してくる のだけど、 今回 m102 から引っぱってきたルーチンを叩き台にしてたので、 termios 構造体メンバの c_cc[VEOL] が '\r' になっており、 このせいで末尾の \n を 34401A 側のバッファに残しちゃってたようだ。あほだ。

DTR/DSR フローコントロールをしているので、EOL もろもろの制御文字は不要のような気もするのだが、 c_lflag ICANON フラグを落としちゃうと、 しょっぱなの read() 呼び出しの際に文字列が切れる。 ということで ICANON は立てておき、 c_cc[VEOL] を '\n' にしたらうまくいった…っぽい。うーむ。 '\r' は c_iflag に IGNCR を立てて捨ててしまうことにした。 んで昨日のやり方で \n を \0 にして返すことにした。

…それでも、どうしてもときどき刺さることがあるなあ。 つづけて何回か 起動-Ctrl-C を繰り返し、 一度回りだせば続けて回るのだが。

ん、*RST 送ると 34401A で「カッチン」というリレーっぽい音がしてたので、 そのあとに usleep(5e5) 噛ますと大丈夫になったっぽい。 うーむ、このへん 34401A の素性かな。どうも良くわからんな。

テスト:

XTC のテストモード、こいつは 16.2Angstrom/sec で擬似的な積算膜厚に対応した 出力を出すことになっているのだけど、 実際に取ってみた電圧の増加率は 0.1574 V/s。 これはループ中の usleep() を変えても (=測定間隔を変えても) きっちり同じなので、どうやら XTC のタイマが 3% くらいずれている…のかな? まあ表裏の ratio が重要なので、 これは覚えといて、とりあえずこのまま測ってしまうことにしよう。

#5 帰り

自転車。寒。
コメント [全部読む/投稿する]

以上、1 日分です。
タイトル一覧
カテゴリ分類
book
dept
issp
labo
paper
snap
stock
vsj
Powered by hns-2.19.5, HyperNikkiSystem Project

中野武雄 (NAKANO, Takeo) <nakano@st.seikei.ac.jp> Since 1999-10-07
RSS feed, 更新時刻, LIRS エントリ, アクセス制御 (解説)

中野のホームページへ