]> jspc29.x-matter.uni-frankfurt.de Git - hades_mdc_settings.git/commitdiff
write a couple of helper functions, add voltage settings file
authorJan Michel <michel@physik.uni-frankfurt.de>
Wed, 12 Oct 2022 16:01:41 +0000 (18:01 +0200)
committerJan Michel <michel@physik.uni-frankfurt.de>
Wed, 12 Oct 2022 16:01:41 +0000 (18:01 +0200)
scripts/MDC.pm
scripts/MDCPower.pm [new file with mode: 0644]
scripts/README.md
scripts/mdc_powerboard.pl [new symlink]
settings_power/settings_voltage.db

index 40d401e84a8b0d65f5d200cebbe85e6a35805a2b..37c22179ccd3fda9082b66433072cadedb8b101c 100644 (file)
@@ -49,10 +49,10 @@ sub get_position {
   }
 
 ###############################################################################  
-#get the correct power channel for board with (address).
+#get the correct power output for MBO with (address).
 #returns (hostname,board,output)
 ###############################################################################
-sub get_power_channel {
+sub get_power_output {
   my $addr = shift @_;
   my ($p,$s,$b,$e) = get_position($addr);
   my $id=-1;
diff --git a/scripts/MDCPower.pm b/scripts/MDCPower.pm
new file mode 100644 (file)
index 0000000..f2d761a
--- /dev/null
@@ -0,0 +1,83 @@
+package MDCPower;
+
+use warnings;
+no warnings "portable";
+use FileHandle;
+use Data::Dumper;
+use lib '.';
+use MDC;
+
+
+
+
+###############################################################################  
+#set the voltage for a given board and channel.
+#specify if setting should be saved to config file
+###############################################################################
+sub set_voltage {
+  my ($addr,$channel,$setting,$save) = @_;
+  return -1 unless   $addr >= 0x8e00 && $addr <= 0x8fff
+                  && $channel >= 0 && $channel <= 1 
+                  && $setting >= 0 && $setting <= 7;
+
+  
+  my ($host,$board,$outp) = MDC::get_power_output($addr);
+  return -2 unless defined $host && $board >= 0 && $outp >= 0;
+
+  system("./mdc_powerboard.pl -d $host -b $board  -o $outp -c $channel -r adjust -v $setting");
+  
+  store_voltage($addr,$channel,$setting) if $save;
+  return 1;
+  }
+
+
+###############################################################################  
+#saves the voltage for a given board and channel
+###############################################################################
+sub store_voltage {
+  my ($addr,$channel,$setting) = @_;
+  }  
+  
+###############################################################################  
+#get the voltage setting for a given board (from file)
+#returns (channel1, channel2)
+###############################################################################
+sub get_voltage {
+  my ($addr) = @_;
+  my $v1 = -1;
+  my $v2 = -1;
+  
+  open FILE, "../settings_power/settings_voltage.db" or die $!."\nsettings_voltage.db not found.";
+  while (my $a = <FILE>) {
+    if(my @values = $a =~ /^\s*0x(\w\w\w\w)\s+(\d)\s+(\d)/) {
+      my $board  = $values[0];
+      if (hex($board) == $addr) {
+        $v1        = $values[1];
+        $v2        = $values[2];
+        last;
+        }
+      }
+    }
+  close FILE;   
+  return ($v1,$v2);
+  }
+
+###############################################################################  
+#switch on/off a specified board
+#onoff=2 does a quick power cycle
+###############################################################################
+sub power_switch {
+  my ($addr,$onoff) = @_;
+  
+  my ($host,$board,$outp) = MDC::get_power_output($addr);
+  return -1 unless defined $host && $board >= 0 && $outp >= 0;
+  
+
+  system("./mdc_powerboard.pl -d $host -b $board -o $outp -r switch -v 0") if($onoff == 0 || $onoff == 2);
+  sleep(1)  if($onoff == 2);
+  system("./mdc_powerboard.pl -d $host -b $board -o $outp -r switch -v 1") if($onoff == 1 || $onoff == 2);
+  return 1;
+  }
+
+
+1;
index 3a6b9eed43da3bcc5d1c676d940edfbce3611458..42d320f83fc577bc09800e0b4caaf0e944c32dfa 100644 (file)
@@ -1,20 +1,20 @@
 #Scripts#
 
+* `generate_address_list.pl` takes the list of installed MBO serial numbers and generates the address.db file for DAQ
+* `generate_address_settings.pl` makes the files needed to automatically set the board addresses from Flash ROM
 * `generate_pasttrec_settings.pl` prepares data from common baseline database
   * loads settings to FPGA directly
   * writes trbcmd files for later writing to Flash ROM
   * settings are written for boards currently in the system (otherwise serial number / uid can't be matched to addresses)
   * default PASTTREC registers are currently hardcoded (!)
-
 * `merge_and_flash_settings.pl` generates and loads settings from the 'settings' directory to the FPGAs flashes
-
-* `generate_address_settings.pl` makes the files needed to automatically set the board addresses from Flash ROM
-
 * `pasttrec_set_threshold.pl` sets an identical threshold to all Pasttrec (temporarily)
-
 * `pasttrec_baseline_finder.pl` basic baseline finder script
 
-* `generate_address_list.pl` takes the list of installed MBO serial numbers and generates the address.db file for DAQ
+#Packages#
+
+* `MDC.pm` Library with common functions, like address lookup
+* `MDCPower.pm` Library with common functions related to power setting and switching
 
-##Notes##
-All scripts assume that the daqtool repository is available next to this repository.
+#Notes#
+All scripts assume that the daqtools repository is available next to this repository.
diff --git a/scripts/mdc_powerboard.pl b/scripts/mdc_powerboard.pl
new file mode 120000 (symlink)
index 0000000..fe12753
--- /dev/null
@@ -0,0 +1 @@
+../../avr/atmega32u4/dcdc_mdc/mdc_powerboard.pl
\ No newline at end of file
index cc7ac08a56187e8b3ee509a2c8be1e76f87e935d..649d87d2bfdce4d9b3d174f59a6cfdcf7c431caf 100644 (file)
@@ -1,6 +1,380 @@
 #Board address used here is the TrbNet address of OEP (the same as for ADC readings)
 #Position in the detector and channel on power board can be calculated from this
+#using MDC::get_power_channel()
 #Voltages are set between 0 and 7
+#This file can be edited, but is changed by scripts as well.
 
 #  Address   #  Voltage 1  #  Voltage 2
 ########################################
+  0x8e00          2              2
+  0x8e01          2              2
+  0x8e02          2              2
+  0x8e03          2              2
+  0x8e04          2              2
+  0x8e05          2              2
+  0x8e06          2              2
+  0x8e07          2              2
+  0x8e08          2              2
+  0x8e09          2              2
+  0x8e0a          2              2
+  0x8e0b          2              2
+  0x8e0c          2              2
+  0x8e0d          2              2
+  0x8e10          2              2
+  0x8e11          2              2
+  0x8e12          2              2
+  0x8e13          2              2
+  0x8e14          2              2
+  0x8e15          2              2
+  0x8e16          2              2
+  0x8e17          2              2
+  0x8e18          2              2
+  0x8e19          2              2
+  0x8e1a          2              2
+  0x8e1b          2              2
+  0x8e1c          2              2
+  0x8e1d          2              2
+  0x8e20          2              2
+  0x8e21          2              2
+  0x8e22          2              2
+  0x8e23          2              2
+  0x8e24          2              2
+  0x8e25          2              2
+  0x8e26          2              2
+  0x8e27          2              2
+  0x8e28          2              2
+  0x8e29          2              2
+  0x8e2a          2              2
+  0x8e2b          2              2
+  0x8e2c          2              2
+  0x8e2d          2              2
+  0x8e30          2              2
+  0x8e31          2              2
+  0x8e32          2              2
+  0x8e33          2              2
+  0x8e34          2              2
+  0x8e35          2              2
+  0x8e36          2              2
+  0x8e37          2              2
+  0x8e38          2              2
+  0x8e39          2              2
+  0x8e3a          2              2
+  0x8e3b          2              2
+  0x8e3c          2              2
+  0x8e3d          2              2
+  0x8e40          2              2
+  0x8e41          2              2
+  0x8e42          2              2
+  0x8e43          2              2
+  0x8e44          2              2
+  0x8e45          2              2
+  0x8e46          2              2
+  0x8e47          2              2
+  0x8e48          2              2
+  0x8e49          2              2
+  0x8e4a          2              2
+  0x8e4b          2              2
+  0x8e4c          2              2
+  0x8e4d          2              2
+  0x8e50          2              2
+  0x8e51          2              2
+  0x8e52          2              2
+  0x8e53          2              2
+  0x8e54          2              2
+  0x8e55          2              2
+  0x8e56          2              2
+  0x8e57          2              2
+  0x8e58          2              2
+  0x8e59          2              2
+  0x8e5a          2              2
+  0x8e5b          2              2
+  0x8e5c          2              2
+  0x8e5d          2              2
+  0x8e60          2              2
+  0x8e61          2              2
+  0x8e62          2              2
+  0x8e63          2              2
+  0x8e64          2              2
+  0x8e65          2              2
+  0x8e66          2              2
+  0x8e67          2              2
+  0x8e68          2              2
+  0x8e69          2              2
+  0x8e6a          2              2
+  0x8e6b          2              2
+  0x8e6c          2              2
+  0x8e6d          2              2
+  0x8e6e          2              2
+  0x8e6f          2              2
+  0x8e70          2              2
+  0x8e71          2              2
+  0x8e72          2              2
+  0x8e73          2              2
+  0x8e74          2              2
+  0x8e75          2              2
+  0x8e76          2              2
+  0x8e77          2              2
+  0x8e78          2              2
+  0x8e79          2              2
+  0x8e7a          2              2
+  0x8e7b          2              2
+  0x8e7c          2              2
+  0x8e7d          2              2
+  0x8e7e          2              2
+  0x8e7f          2              2
+  0x8e80          2              2
+  0x8e81          2              2
+  0x8e82          2              2
+  0x8e83          2              2
+  0x8e84          2              2
+  0x8e85          2              2
+  0x8e86          2              2
+  0x8e87          2              2
+  0x8e88          2              2
+  0x8e89          2              2
+  0x8e8a          2              2
+  0x8e8b          2              2
+  0x8e8c          2              2
+  0x8e8d          2              2
+  0x8e8e          2              2
+  0x8e8f          2              2
+  0x8e90          2              2
+  0x8e91          2              2
+  0x8e92          2              2
+  0x8e93          2              2
+  0x8e94          2              2
+  0x8e95          2              2
+  0x8e96          2              2
+  0x8e97          2              2
+  0x8e98          2              2
+  0x8e99          2              2
+  0x8e9a          2              2
+  0x8e9b          2              2
+  0x8e9c          2              2
+  0x8e9d          2              2
+  0x8e9e          2              2
+  0x8e9f          2              2
+  0x8ea0          2              2
+  0x8ea1          2              2
+  0x8ea2          2              2
+  0x8ea3          2              2
+  0x8ea4          2              2
+  0x8ea5          2              2
+  0x8ea6          2              2
+  0x8ea7          2              2
+  0x8ea8          2              2
+  0x8ea9          2              2
+  0x8eaa          2              2
+  0x8eab          2              2
+  0x8eac          2              2
+  0x8ead          2              2
+  0x8eae          2              2
+  0x8eaf          2              2
+  0x8eb0          2              2
+  0x8eb1          2              2
+  0x8eb2          2              2
+  0x8eb3          2              2
+  0x8eb4          2              2
+  0x8eb5          2              2
+  0x8eb6          2              2
+  0x8eb7          2              2
+  0x8eb8          2              2
+  0x8eb9          2              2
+  0x8eba          2              2
+  0x8ebb          2              2
+  0x8ebc          2              2
+  0x8ebd          2              2
+  0x8ebe          2              2
+  0x8ebf          2              2
+  0x8f00          2              2
+  0x8f01          2              2
+  0x8f02          2              2
+  0x8f03          2              2
+  0x8f04          2              2
+  0x8f05          2              2
+  0x8f06          2              2
+  0x8f07          2              2
+  0x8f08          2              2
+  0x8f09          2              2
+  0x8f0a          2              2
+  0x8f0b          2              2
+  0x8f0c          2              2
+  0x8f0d          2              2
+  0x8f0e          2              2
+  0x8f0f          2              2
+  0x8f10          2              2
+  0x8f11          2              2
+  0x8f12          2              2
+  0x8f13          2              2
+  0x8f14          2              2
+  0x8f15          2              2
+  0x8f16          2              2
+  0x8f17          2              2
+  0x8f18          2              2
+  0x8f19          2              2
+  0x8f1a          2              2
+  0x8f1b          2              2
+  0x8f1c          2              2
+  0x8f1d          2              2
+  0x8f1e          2              2
+  0x8f1f          2              2
+  0x8f20          2              2
+  0x8f21          2              2
+  0x8f22          2              2
+  0x8f23          2              2
+  0x8f24          2              2
+  0x8f25          2              2
+  0x8f26          2              2
+  0x8f27          2              2
+  0x8f28          2              2
+  0x8f29          2              2
+  0x8f2a          2              2
+  0x8f2b          2              2
+  0x8f2c          2              2
+  0x8f2d          2              2
+  0x8f2e          2              2
+  0x8f2f          2              2
+  0x8f30          2              2
+  0x8f31          2              2
+  0x8f32          2              2
+  0x8f33          2              2
+  0x8f34          2              2
+  0x8f35          2              2
+  0x8f36          2              2
+  0x8f37          2              2
+  0x8f38          2              2
+  0x8f39          2              2
+  0x8f3a          2              2
+  0x8f3b          2              2
+  0x8f3c          2              2
+  0x8f3d          2              2
+  0x8f3e          2              2
+  0x8f3f          2              2
+  0x8f40          2              2
+  0x8f41          2              2
+  0x8f42          2              2
+  0x8f43          2              2
+  0x8f44          2              2
+  0x8f45          2              2
+  0x8f46          2              2
+  0x8f47          2              2
+  0x8f48          2              2
+  0x8f49          2              2
+  0x8f4a          2              2
+  0x8f4b          2              2
+  0x8f4c          2              2
+  0x8f4d          2              2
+  0x8f4e          2              2
+  0x8f4f          2              2
+  0x8f50          2              2
+  0x8f51          2              2
+  0x8f52          2              2
+  0x8f53          2              2
+  0x8f54          2              2
+  0x8f55          2              2
+  0x8f56          2              2
+  0x8f57          2              2
+  0x8f58          2              2
+  0x8f59          2              2
+  0x8f5a          2              2
+  0x8f5b          2              2
+  0x8f5c          2              2
+  0x8f5d          2              2
+  0x8f5e          2              2
+  0x8f5f          2              2
+  0x8f60          2              2
+  0x8f61          2              2
+  0x8f62          2              2
+  0x8f63          2              2
+  0x8f64          2              2
+  0x8f65          2              2
+  0x8f66          2              2
+  0x8f67          2              2
+  0x8f68          2              2
+  0x8f69          2              2
+  0x8f6a          2              2
+  0x8f6b          2              2
+  0x8f6c          2              2
+  0x8f6d          2              2
+  0x8f6e          2              2
+  0x8f6f          2              2
+  0x8f70          2              2
+  0x8f71          2              2
+  0x8f72          2              2
+  0x8f73          2              2
+  0x8f74          2              2
+  0x8f75          2              2
+  0x8f76          2              2
+  0x8f77          2              2
+  0x8f78          2              2
+  0x8f79          2              2
+  0x8f7a          2              2
+  0x8f7b          2              2
+  0x8f7c          2              2
+  0x8f7d          2              2
+  0x8f7e          2              2
+  0x8f7f          2              2
+  0x8f80          2              2
+  0x8f81          2              2
+  0x8f82          2              2
+  0x8f83          2              2
+  0x8f84          2              2
+  0x8f85          2              2
+  0x8f86          2              2
+  0x8f87          2              2
+  0x8f88          2              2
+  0x8f89          2              2
+  0x8f8a          2              2
+  0x8f8b          2              2
+  0x8f8c          2              2
+  0x8f8d          2              2
+  0x8f8e          2              2
+  0x8f8f          2              2
+  0x8f90          2              2
+  0x8f91          2              2
+  0x8f92          2              2
+  0x8f93          2              2
+  0x8f94          2              2
+  0x8f95          2              2
+  0x8f96          2              2
+  0x8f97          2              2
+  0x8f98          2              2
+  0x8f99          2              2
+  0x8f9a          2              2
+  0x8f9b          2              2
+  0x8f9c          2              2
+  0x8f9d          2              2
+  0x8f9e          2              2
+  0x8f9f          2              2
+  0x8fa0          2              2
+  0x8fa1          2              2
+  0x8fa2          2              2
+  0x8fa3          2              2
+  0x8fa4          2              2
+  0x8fa5          2              2
+  0x8fa6          2              2
+  0x8fa7          2              2
+  0x8fa8          2              2
+  0x8fa9          2              2
+  0x8faa          2              2
+  0x8fab          2              2
+  0x8fac          2              2
+  0x8fad          2              2
+  0x8fae          2              2
+  0x8faf          2              2
+  0x8fb0          2              2
+  0x8fb1          2              2
+  0x8fb2          2              2
+  0x8fb3          2              2
+  0x8fb4          2              2
+  0x8fb5          2              2
+  0x8fb6          2              2
+  0x8fb7          2              2
+  0x8fb8          2              2
+  0x8fb9          2              2
+  0x8fba          2              2
+  0x8fbb          2              2
+  0x8fbc          2              2
+  0x8fbd          2              2
+  0x8fbe          2              2
+  0x8fbf          2              2