忍者ブログ

EDA Blog

Verilog、SystemVerilog、SystemCなど、ハードウェア記述言語についてのブログです。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

現在、新しいコメントを受け付けない設定になっています。

Tektronix TDS3064BをPerlで制御する

別のブログに書いておいた記事です。
昔作成した、Perlを使ってTektronix社製のオシロスコープTDS3064Bを制御できます。
変数$commandが、オシロスコープに送るコマンドです。



use Socket;
use HTML::TokeParser; # TDS3064Bからの応答を解析するのに必要

# ソケットの作成
my $hostname = '192.168.0.4'; # TDS3064BのIPアドレス
my $port = getservbyname('http', 'tcp');
my $iaddr = inet_aton($hostname)
or die("Cannot convert hostname to IP address.");
my $sock_addr = pack_sockaddr_in($port, $iaddr);
socket(SOCKET, PF_INET, SOCK_STREAM, 0) or die("Cannot creat socket.");
connect(SOCKET, $sock_addr) or die("Cannot connect to $hostname.");
select(SOCKET); $| = 1; select (STDOUT);

# コマンドの作成
# $commandは、測定のソースをチャネル0に設定するコマンド
my $command = "measurement:immed:source ch0";
my $cmd = "COMMAND=$commandrn";
$cmd .= "gpibsend=Sendrnname=rn";

# TDS3064B内のCGIを使う
print SOCKET "POST /Comm.html HTTP/1.1rn";
print SOCKET "Host: $hostnamern";
print SOCKET "Referer: http://$hostname/Comm.htmlrn";
print SOCKET "Content-Type: text/plainrn";
print SOCKET "Content-Length: ", length($cmd), "rn";
print SOCKET "rn";
print SOCKET $cmd;
print SOCKET "rn";

# TDS3064Bからの応答を$respに連結していく
my $resp;
while () {
next unless /^/;
$resp .= $_;
}
close (SOCKET);

# ほしい情報は、TDS3064Bからの応答のtextareaタグに入っている。
# HTML::TokeParserでその内容だけ抜き出す。
my $p = HTML::TokeParser->new($resp) or die("HTML::TokeParser failed.");
my $tag = $p->get_tag('textarea');

# 応答は、$p->get_text()として見ることができる

拍手[1回]

PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

カレンダー

04 2024/05 06
S M T W T F S
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

フリーエリア

最新CM

[04/11 なつたん]

最新TB

プロフィール

HN:
aston_martin
性別:
非公開

ブログ内検索

カウンター

アクセス解析