From f635fc6554b7336cab6839ad36e90df13e765393 Mon Sep 17 00:00:00 2001 From: hadeshyp Date: Fri, 31 Aug 2012 10:10:13 +0000 Subject: [PATCH] *** empty log message *** --- cts/htdocs/cts.pl | 73 +++++++++++++ cts/htdocs/index.html | 235 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 308 insertions(+) create mode 100755 cts/htdocs/cts.pl create mode 100644 cts/htdocs/index.html diff --git a/cts/htdocs/cts.pl b/cts/htdocs/cts.pl new file mode 100755 index 0000000..8badb5c --- /dev/null +++ b/cts/htdocs/cts.pl @@ -0,0 +1,73 @@ +use strict; +use warnings; + +use lib "./include/"; + +use Cts; +use JSON::PP; + +sub connectToCTS { + my $mode = shift; + my $endpoint = shift; + + my $trb; + if ($mode eq 'sim') { + eval {require "TrbSim.pm"}; + $trb = TrbSim->new($endpoint); + my $fp; + open $fp, "loadDump($fp); + close $fp; + + } else{ + eval {require "TrbNet.pm"}; + $trb = TrbNet->new($endpoint); + } + + return Cts->new($trb); +} +my $cts = connectToCTS 'trb', 0xf3c0; + +my $query = $ENV{'QUERY_STRING'}; + +if ($query eq "init") { + print JSON::PP->new->allow_blessed->convert_blessed->encode({ + 'registers' => $cts->getRegisters, + 'properties' => $cts->getProperties + }); +} elsif ($query =~ /^(format|read),([\w\d_,]+)$/) { + my $op = $1; + my @keys = split /,/, $2; + my %result = (); + + foreach my $key (@keys) { + my $reg = $cts->getRegisters->{$key}; + next unless defined $reg; + + $result{$key} = $op eq "read" ? $reg->read() : $reg->format(); + } + + print JSON::PP->new->allow_blessed->convert_blessed->encode(\%result); +} elsif ($query =~ /^write,([\w\d_,\.]+)$/) { + my @values = split /,/, $1; + my $regs = {}; + + while (my $key = shift @values) { + if ($key =~ /^(.*)\.(.*)$/) { + $regs->{$1} = {} unless ref $regs->{$1}; + $regs->{$1}{$2} = shift @values; + } else { + $regs->{$key} = shift @values; + } + } + + foreach my $key (keys $regs) { + my $reg = $cts->getRegisters->{$key}; + next unless defined $reg; + $reg->write($regs->{$key}); + } + + print "1"; +} + +1; diff --git a/cts/htdocs/index.html b/cts/htdocs/index.html new file mode 100644 index 0000000..7809436 --- /dev/null +++ b/cts/htdocs/index.html @@ -0,0 +1,235 @@ + + + + Central Trigger System + + + + + + + + + +
+ + + + + + + + + + +
+ + \ No newline at end of file -- 2.43.0