From 6cf0fb6c77939b7b508503bf21a753c5babb4eee Mon Sep 17 00:00:00 2001 From: Michael Wiebusch Date: Wed, 25 Jun 2014 17:46:57 +0200 Subject: [PATCH] more functionality, yet lacking help message --- .analyzer.pl.swp | Bin 0 -> 16384 bytes user_interface/analyzer.pl | 130 ++++++++++--- user_interface/out.dat | 254 +++++++++++++------------ user_interface/plot.png | Bin 0 -> 4584 bytes user_interface/plot.sh | 9 + user_interface/pmt_100k_div60.dat | 128 +++++++++++++ user_interface/pmt_10k_div10.dat | 128 +++++++++++++ user_interface/pmt_10k_div10_hicnt.dat | 128 +++++++++++++ 8 files changed, 625 insertions(+), 152 deletions(-) create mode 100644 .analyzer.pl.swp create mode 100644 user_interface/plot.png create mode 100755 user_interface/plot.sh create mode 100644 user_interface/pmt_100k_div60.dat create mode 100644 user_interface/pmt_10k_div10.dat create mode 100644 user_interface/pmt_10k_div10_hicnt.dat diff --git a/.analyzer.pl.swp b/.analyzer.pl.swp new file mode 100644 index 0000000000000000000000000000000000000000..a3dd9296882acf6331cbeaaef20e9da60fa6c3a3 GIT binary patch literal 16384 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 \$opt_help, + 'c|cmd=s' => \$opt_command, + 'tty=s' => \$ser_dev, + 'baud=s' => \$baudrate, + 'r|read=s' => \$read, + 'w|write=s' => \$write, + 'c|clear' => \$clear, + 'd|divider=s' => \$clkdiv, + 'window=s' => \$window + ); + + init_port(); -for (my $i=0;$i<128;$i++){ - my $rstring = communicate("R".chr($i)); -# printf ("length of response: %d \n",length($rstring)); +if (defined ($read)) { + + my $val = communicate("R".chr($read)); + printf("response: %d\n",$val); - my $byte3 = ord(substr($rstring,0,1)); - my $byte2 = ord(substr($rstring,1,1)); - my $byte1 = ord(substr($rstring,2,1)); - my $byte0 = ord(substr($rstring,3,1)); - my $val = (($byte3<<24)|($byte2<<16)|($byte1<<8)|$byte0); + exit; +} + +if (defined($clear)){ + $write = '129_1'; +} + + +if (defined($window)){ + my $tunit=1e-3; + if($window =~ m/ms/){ + $tunit=1e-3; + } elsif($window =~ m/us/){ + $tunit=1e-6; + } elsif($window =~ m/ns/){ + $tunit=1e-9; + } elsif($window =~ m/s/){ + $tunit=1; + } + + $window =~ m/([\d\.]+)/; + my $number = $1; + printf("requested window width: %e s\n",$number*$tunit); + my $FPGAclk=133000000; + my $analyzerBins=128; + $clkdiv = floor(($number*$tunit)/$analyzerBins/(1/$FPGAclk)); + +} + +if (defined($clkdiv)){ + $write = "128_$clkdiv"; +} + +if (defined ($write)) { + + unless( $write =~ m/(\d+)_(\d+)/ ) { + die "input parameter: analyzer -w 127_1234\n"; + } + + my $addr = $1; + my $value = $2; + print "addr:$addr value:$value\n"; + + my $byte3 = chr(int($value)>>24); + my $byte2 = chr((int($value)>>16)&0xFF); + my $byte1 = chr((int($value)>>8)&0xFF); + my $byte0 = chr(int($value)&0xFF); + + my $val = communicate("W".chr($addr).$byte3.$byte2.$byte1.$byte0); + printf("response: %d\n",$val); + + exit; +} + + +for (my $i=0;$i<128;$i++){ + my $val = communicate("R".chr($i)); +# printf ("length of response: %d \n",length($rstring)); printf("%d\t%d\n",$i,$val); # printf("addr %d:\t%d.%d.%d.%d\n",$i,$byte3,$byte2,$byte1,$byte0); # Time::HiRes::sleep(.01); @@ -47,39 +121,43 @@ sub communicate { my $command = $_[0]; # print "sending command $command\n"; - my $cmd_echo; + my $rstring; - $port->are_match(chr(10)); + $port->are_match(""); + $port->read_char_time(1); + $port->read_const_time(0); $port->lookclear; + #Time::HiRes::sleep(.004); $port->write("$command\n"); my $ack = 0; + + + #Time::HiRes::sleep(.004); - - -ACK_POLLING: for (my $i = 0; ($i<$ack_timeout*100) ;$i++) { -# print $i."\n"; - while(my $a = $port->lookfor) { - if($a=~ m/R(....)/) { - $cmd_echo = $1; + my ($count, $a) = $port->read(12); + + if($a=~ m/R(.{4})/s) { + $rstring= $1; # print "padiwa sent: $cmd_echo\n\n"; - $ack=1; - last ACK_POLLING; - } - - } - Time::HiRes::sleep(.01); - + $ack=1; } + + unless($ack) { print "no answer\n"; - return "0"; + return 0; } + my $byte3 = ord(substr($rstring,0,1)); + my $byte2 = ord(substr($rstring,1,1)); + my $byte1 = ord(substr($rstring,2,1)); + my $byte0 = ord(substr($rstring,3,1)); + my $val = (($byte3<<24)|($byte2<<16)|($byte1<<8)|$byte0); - return $cmd_echo; + return $val; diff --git a/user_interface/out.dat b/user_interface/out.dat index ec215d9..07a558a 100644 --- a/user_interface/out.dat +++ b/user_interface/out.dat @@ -1,127 +1,129 @@ -0 59 -1 0 -2 0 -3 0 -4 0 -5 0 -6 0 -7 0 -8 0 -9 0 -10 742 -11 0 -12 0 -13 0 -14 0 -15 0 -16 0 -17 0 -18 0 -19 0 -20 0 -21 377 -22 0 -23 0 -24 0 -25 0 -26 0 -27 0 -28 0 -29 0 -30 0 -31 0 -32 170 -33 0 -34 0 -35 0 -36 0 -37 0 -38 0 -39 0 -40 0 -41 0 -42 0 -43 95 -44 0 -45 0 -46 0 -47 0 -48 0 -49 0 -50 0 -51 0 -52 0 -53 0 -54 49 -55 0 -56 0 -57 0 -58 0 -59 0 -60 0 -61 0 -62 0 -63 0 -64 23 -65 6 -66 0 -67 0 -68 0 -69 0 -70 0 -71 0 -72 0 +0 0 +1 2 +2 1 +3 1 +4 1 +5 4 +6 3 +7 4 +8 9 +9 3 +10 5 +11 5 +12 10 +13 10 +14 9 +15 12 +16 14 +17 21 +18 23 +19 24 +20 24 +21 10 +22 23 +23 10 +24 31 +25 35 +26 23 +27 33 +28 43 +29 32 +30 53 +31 45 +32 51 +33 42 +34 53 +35 43 +36 47 +37 60 +38 55 +39 63 +40 82 +41 67 +42 83 +43 86 +44 84 +45 80 +46 83 +47 90 +48 95 +49 104 +50 101 +51 110 +52 106 +53 100 +54 131 +55 121 +56 92 +57 114 +58 111 +59 121 +60 119 +61 140 +62 124 +63 155 +64 149 +65 128 +66 131 +67 139 +68 144 +69 149 +70 131 +71 133 +72 173 +no answer 73 0 -74 0 -76 0 -77 0 -78 0 -79 0 -80 0 -81 0 -82 0 -83 0 -84 0 -85 0 -86 6 -87 0 -88 0 -89 0 -90 0 -91 0 -92 0 -93 0 -94 0 -95 0 -96 0 -97 3 -98 0 -99 0 -100 0 -101 0 -102 0 -103 0 -104 0 -105 0 -106 0 -107 0 -108 1 -109 0 -110 0 -111 0 -112 0 -113 0 -114 0 -115 0 -116 0 -117 0 -118 0 -119 2 -120 0 -121 0 -122 0 -123 0 -124 0 -125 0 -126 0 -127 3 +74 180 +75 161 +76 209 +77 209 +78 271 +79 285 +80 348 +81 340 +82 385 +83 448 +84 428 +85 406 +86 432 +87 413 +88 487 +89 434 +90 417 +91 400 +92 325 +93 412 +94 365 +95 352 +96 266 +97 291 +98 288 +99 242 +100 229 +101 225 +102 222 +103 195 +104 161 +105 148 +106 139 +107 135 +108 136 +109 117 +110 124 +111 91 +112 89 +113 82 +114 61 +115 68 +116 47 +117 32 +118 37 +119 30 +120 20 +121 16 +122 10 +123 8 +124 6 +125 9 +126 3 +127 1022 diff --git a/user_interface/plot.png b/user_interface/plot.png new file mode 100644 index 0000000000000000000000000000000000000000..396bf9d684386c83e44e561b1d98197ebc0a0b1b GIT binary patch literal 4584 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 out.dat +cat <