2011年12月20日火曜日

pythonでgraphtec GL220

ctypes初めて使った。
CDからドライバーをインストールして。gtcusbr.dllをお側に。

        Open device
        HANDLE __stdcall GtcUSBr_OpenDevice(void);

        Close device
        BOOL __stdcall GtcUSBr_CloseDevice(
            HANDLE hDev        # Handle to the USB to be I/O
        );

        Read (Block mode)
        BOOL __stdcall GtcUSBr_ReadDevice(
            HANDLE hDev,                    # Handle to the USB to be read
            LPVOID lpBuffer,                # Pointer to the buffer that receives the data read from the USB
            DWORD nNumberOfBytesToRead,        # Number of bytes to read
            LPDWORD lpNumberOfBytesRead,    # Pointer to the number of bytes read
            DWORD dwTimeOut                    # TimeOut(ms)
        );

        Write (Block mode)
        BOOL __stdcall GtcUSBr_WriteDevice(
            HANDLE hDev,                    # Handle to the USB to be write
            LPVOID lpBuffer,                # Pointer to the buffer that sends the data write to the USB
            DWORD nNumberOfBytesToWrite,    # Number of bytes to write
            LPDWORD lpNumberOfBytesWrite,   # Pointer to the number of bytes write
            DWORD dwTimeOut                    # TimeOut(ms)
        );
あたりを使う。

橋渡しは
LPVOID        ctypes.create_string_buffer()
DWORD       ctypes.c_ulong()
LPDWORD  ctypes.pointer(ctypes.c_ulong())

読むときはクエリーの時はASCIIが帰ってくる。1文字づつ読もう。
フリーランニングで、:MEAS:OUTP:ONE?で瞬時データを読むときは、
まずASCIIで8byteヘッダーを読んで「#6******」アスタリスクの部分をintに変えて続きのdataを読む。


どうでもいいけど。その1
マニュアルGL220 GL820 インターフェイスコマンド(GL220_820 IF_Command_Japanese.pdf)12ページのバッファ構成の欄の「は:MEAS:OUTO:STAT?で確認できます。」はバグ。正しくは「は:MEAS:OUTP:STAT?で確認できます。」

どうでもいいけど。その2
HPの「お問い合わせ」でくるメールの
###### 引用初め
本メールの配信に身に覚えのない場合、お手数ですが以下まで
ご連絡お願いいたします。

webmaster@grephtec.co.jp
###### 引用終わり
にはワロタ。

0 件のコメント:

コメントを投稿