なかのにっき

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


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

先月 2008年07月 来月
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 による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2008年07月07日(月) [n年日記]

#1 行き

原付。朝は凄い降りだったが小雨になっていた。 三鷹南口内科経由。

#2 三鷹南口内科

再びエコー。 やはりちょっと胆嚢の線筋腫症が怪しいが、 まあ症状が出てないんでしたらウルソもいっぺん止めてみましょうか、 とのことに。 おそらく胆泥が溜まりやすいでしょうから、 油ものの過剰摂取は控えてください、 半年くらい経ったらまた検査しましょう、という感じで。

#3 ウィンブルドン男子

というわけで朝が早かったこともあり、 ナダルが 2 セット取ったとこで寝てしまった。 また死闘になってたのか。

#4 [vsj] 投稿審査システム

間瀬先生が作ってくださった土曜の議事録の wiki 移行+補完など。

#5 河田先生来研

先週の K のマニュアルほかを頂戴。 その他最近のお話をお聞きしたり報告したり。

#6 [labo] uhvsp

ではそろそろ、ということで HF 処理をすべく実験室に行ったら、 切った基板のストックが無くて一旦撤退。

午後に仕切り直し。HF 処理してもらってイントロに入れて MC へ移して H2O 導入。 まあジワジワ下がったので通常のシーケンスで depo。 XPS のイントロに入れるまで。 基板としては、半分マスクしたやつを入れた。

#7 [labo] 2505 室の空調

HFT-114:

2006 年製、と書いてあったが、首振りしなくなった。 研究室の温度ムラが体感でわかるほど発生してしまったので、 もう一本購入の方向で。

窓側エアコン:

赤ランプ表示での停止が 2 回。こっちもか。

#8 [dept] 解析 III (EM)

問題案に返信。

#9 [dept] 液体窒素

今日から当番。充填依頼が必要だったので巴商会さんへ電話、 ついでに fax 番号を聞き出して購入方式の件についての問い合わせをしてみる。

#10 [labo] DSO GPIB 通信

各所で嵌まったが、やっとなんとかなった。やれやれ。 流れてくるデータは
0xAA 0xAA 0xAB ...
の形式なので、簡単に scanf できるかと思っていたんだけど。

viscanf には block 読み込み用 format ("%#b") ちうのがあるのだが、 こいつは block のバイナリデータに使うものらしく、 変換しながら流し込む、という今回の用途には使えない模様。 じゃあ "%#X" でいけるのかと思ったのだが、 これも最初の 1 データしか拾わない。 このへん、もともとの C# のポインタ渡しするとこを、 VB の override で微妙に実現してたりして、 どうもググってみたりしてもよくわからん。

しょうがないので str→int 変換は手動でやることにして、 同じく viscanf の string 読み込み用 format を使ってみた。 が、これも文字列の 513 文字目とか 1025 文字目が欠落する。 バッファ終端の問題だろうと思い、 visetbuf() とかでサイズ変更を試みてみたが駄目。 つことで viscanf は最初からステだったらしい。あほか。

結局ローテクに頼ることに。 vread() で読み込み、1 バイトずつチマチマ chr() して string に直し、 InStr() で "0x" を舐めて Convert.Int32 で変換する、 という超アッタマ悪い手法になった。 大変恥ずかしいシロモノだが、いちおう晒しておく。
Public Class Form1
    Inherits System.Windows.Forms.Form
    Dim defrm As Integer
    Dim vi As Integer
    Dim g As Graphics

(フォームデザイナで生成されたコード)

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim status As Integer
        Dim dsoaddr As String = "GPIB0::7::INSTR"
        Dim idnreply As System.Text.StringBuilder = New System.Text.StringBuilder(256)

        g = PictureBox1.CreateGraphics

        status = visa32.viOpenDefaultRM(defrm)
        status = visa32.viOpen(defrm, dsoaddr, 0, 0, vi)

        visa32.viPrintf(vi, "*IDN?" & vbLf)
        visa32.viScanf(vi, "%s", idnreply)
        Label1.Text = idnreply.ToString
        visa32.viPrintf(vi, ":WAV:SOUR CHAN1" & vbLf)
    End Sub

    Private Sub form1_closing(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Closed
        Call visa32.viClose(vi)
        Call visa32.viClose(defrm)
    End Sub

    Private Sub ButtonFetch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonFetch.Click
        Dim vierror As Integer
        Dim i As Integer
        Dim maxpcount As Integer = 1300
        Dim maxbcount As Integer = maxpcount * 5
        Dim pcount As Integer
        Dim bcount As Integer
        Dim readbuf(maxbcount) As Byte
        Dim pval(maxpcount) As Integer
        Dim strdata As String

        visa32.viPrintf(vi, ":WAV:DATA?" & vbLf)

        vierror = visa32.viRead(vi, readbuf, maxbcount, bcount)
        If vierror < visa32.VI_SUCCESS Then
            Dim err As System.Text.StringBuilder = New System.Text.StringBuilder(256)
            visa32.viStatusDesc(vi, vierror, err)
            Label1.Text = err.ToString
        Else
            Label1.Text = bcount.ToString & "chars read."
        End If

        For i = 0 To bcount - 1
            strdata = strdata & Chr(readbuf(i))
        Next

        Dim spos As Integer = 1
        i = 0
        Do
            Dim tmpstr As String

            spos = spos + 2
            tmpstr = Mid(strdata, spos, 2)
            pval(i) = Convert.ToInt32(tmpstr, 16)
            i = i + 1
            spos = InStr(spos, strdata, "0x")
        Loop While spos > 0
        pcount = i

        Dim xs As Integer, xe As Integer
        For i = 0 To pcount - 2
            xs = Int(i / 3)
            xe = Int((i + 1) / 3)
            g.DrawLine(Pens.Red, xs, pval(i), xe, pval(i + 1))
        Next
    End Sub
End Class
絵としては こんな 感じ で (注:ぜんぜん面白くありません)。

#11 帰り

原付。直前でちょっと降られた。

#12 めし

朝は検査の後吉野家で鮭定食、 昼はママズダイナーで白身フライに餃子のトッピングがおまけ、 間食にあずきバー、 晩は家に帰って刺身と金平の余り。

#13 今週?の英語おもしろ倶楽部

聞いた。
コメント [全部読む/投稿する]

以上、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 エントリ, アクセス制御 (解説)

中野のホームページへ