]> jspc29.x-matter.uni-frankfurt.de Git - daqtools.git/commitdiff
new versions of xml-db and cosy files
authorHadaq@styx <hadaq@styx>
Thu, 10 Oct 2013 15:07:04 +0000 (17:07 +0200)
committerHadaq@styx <hadaq@styx>
Thu, 10 Oct 2013 15:07:04 +0000 (17:07 +0200)
users/cosy_test/config/nxyter/setup.sh
users/cosy_test/evtbuilder_start.sh
web/htdocs/scripts/getdata.js [new file with mode: 0644]
xml-db/database/Nxyter.xml [new file with mode: 0644]
xml-db/database/TrbNet.xml
xml-db/get.pl
xml-db/schema/TrbNetCommon.xsd

index 1187066175826273dff918ab9a99b65252bf38cd..6e7ce33c3f0d1e81e96758aee7f6eb130eb4f701 100755 (executable)
@@ -34,7 +34,7 @@ trbcmd w 0x3800 0x8102 0x01
 
 # reset counters, flush FIFO
 echo "clear data fifo"
-trbcmd rm 0x3800 0x8600 4000 1 > /dev/null
+trbcmd rm 0x3800 0x8600 4000 2>/dev/null
 
 # Set readout Mode
 trbcmd w 0x3800 0x8180 0x00   # normal mode
index 7cf25ec75e1cd93a95bde24f8598b11767714810..d21af62818328feb130cc28e9f54f820103c7c21 100755 (executable)
@@ -39,7 +39,7 @@ while getopts "d:s:p:th" opt; do
 done
 
 sdopts="--resdownscale 20 --resnumevents 2000 --respath ${sdest} --ressizelimit 80"
-extraopts=""
+extraopts="--online"
 [ ${sden} -eq 1 ] && extraopts="$sdopts"
 
 ./evtbuilder_stop.sh
diff --git a/web/htdocs/scripts/getdata.js b/web/htdocs/scripts/getdata.js
new file mode 100644 (file)
index 0000000..7a33b4c
--- /dev/null
@@ -0,0 +1,27 @@
+function getdata(command,dId,async) {
+  //async==true : do what you can when you can do it :D
+  //async==false : do the task after you finished the previous task!
+  
+  // super duper debug line!
+//   alert("caller is " + arguments.callee.caller.toString());
+  
+  var xmlhttp = null;
+  //var cb = null;
+  xmlhttp=new XMLHttpRequest();
+  //cb = callback;
+  var destId = dId;
+  
+  xmlhttp.onreadystatechange = function() {
+    if(xmlhttp.readyState == 4 && xmlhttp.status==200) {
+      //if(cb)
+  if(document.getElementById(destId)){
+  document.getElementById(destId).innerHTML  = xmlhttp.responseText;  
+  }
+        //cb(xmlhttp.responseText);
+  //document.getElementById(destId).innerHTML  = xmlhttp.responseText;  
+      }
+    }
+
+  xmlhttp.open("GET",command,async);
+  xmlhttp.send(null);
+  }
\ No newline at end of file
diff --git a/xml-db/database/Nxyter.xml b/xml-db/database/Nxyter.xml
new file mode 100644 (file)
index 0000000..a7fdd61
--- /dev/null
@@ -0,0 +1,176 @@
+<?xml version="1.0"  encoding="utf-8" ?>
+<TrbNetEntity xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              xsi:noNamespaceSchemaLocation="../schema/TrbNetEntity.xsd"
+              name="Nxyter"
+              address="8000"
+              >
+  <description>Registers for the Nxyter Readout</description>
+
+  <group name="DataValidate"
+         address="0120"  size="6"  purpose="status"  mode="r"  continuous="true">
+
+    <register name="InvalidFrames" address="0000" purpose="status">
+      <description>Number of invalid frames</description>
+      <field name="InvalidFrames" start="0" bits="16" format="unsigned" />
+    </register>
+    <register name="OverflowCount" address="0001" purpose="status">
+      <description>Number of hit overflows</description>
+      <field name="OverflowCount" start="0" bits="16" format="unsigned" />
+    </register>
+    <register name="PileupCount" address="0002" purpose="status">
+      <description>Number of hit overflows</description>
+      <field name="PileupCount" start="0" bits="16" format="unsigned" />
+    </register>
+    <register name="ParityErrorCount" address="0003" purpose="status">
+      <description>Number of hit overflows</description>
+      <field name="ParityErrorCount" start="0" bits="16" format="unsigned" />
+    </register>
+    <register name="TriggerRate" address="0004" purpose="status">
+      <description>Trigger Rate</description>
+      <field name="TriggerRate" start="0" bits="32" format="unsigned" unit="Hz"/>
+    </register>
+    <register name="FrameRate" address="0005" purpose="status">
+      <description>Number of Hits on nxyter</description>
+      <field name="FrameRate" start="0" bits="32" format="unsigned" unit="Hz"/>
+    </register>
+  </group>
+
+
+  <group name="TestPulse"
+         address="0000"  size="2"  purpose="config"  mode="rw"  continuous="false">
+    <register name="TestPulseRate" address="0145" mode="r" purpose="status">
+      <description>Rate of test pulses</description>
+      <field name="TestPulseRate" start="0" bits="32" format="unsigned" unit="Hz"/>
+    </register>   
+    <register name="TestPulseDelay" address="0160" purpose="config">
+      <description>Delay of the testpulse after Trigger</description>
+      <field name="TestPulseDelay" start="0" bits="8" format="unsigned" unit="ns" scale="10"/>
+    </register>   
+    <register name="TestPulseEnable" address="0161" purpose="config">
+      <description>Enable test pulse</description>
+      <field name="TestPulseEnable" start="0" bits="1" format="boolean"/>
+    </register>   
+  </group>  
+
+
+  <group name="TriggerValidate"
+         address="0180"  size="14"  purpose="config"  mode="r"  continuous="true">
+    <register name="ReadoutMode" address="0000" purpose="config">
+      <description>Readout mode selection</description>
+      <field name="ReadoutMode" start="0" bits="3" format="enum">
+        <enumItem value="0">Ref + Valid + Window</enumItem>
+        <enumItem value="1">Ref + Valid</enumItem>
+        <enumItem value="3">Raw + Time + Valid</enumItem>
+        <enumItem value="4">Raw</enumItem>
+        <enumItem value="5">Raw + Valid</enumItem>
+      </field>
+    </register>    
+    <register name="TriggerWindowDelay" address="0001" purpose="config">
+      <description>Delay of the trigger window</description>
+      <field name="TriggerWindowDelay" start="0" bits="12" format="unsigned" unit="ns" scale="4"/>
+    </register>     
+    <register name="TriggerWindowWidth" address="0002" purpose="config">
+      <description>Width of the trigger window</description>
+      <field name="TriggerWindowWidth" start="0" bits="12" format="unsigned" unit="ns" scale="4"/>
+    </register>     
+    <register name="CtsTriggerDelay" address="0003" purpose="config">
+      <description>CTS Trigger Delay</description>
+      <field name="CtsTriggerDelay" start="0" bits="12" format="unsigned" unit="ns" scale="4"/>
+    </register>     
+    <register name="ReadoutTimeMax" address="0004" purpose="config">
+      <description>Maximal read-out time</description>
+      <field name="ReadoutTimeMax" start="0" bits="12" format="unsigned" unit="ns" scale="10"/>
+    </register>     
+    <register name="BusyTime" address="0005" purpose="config">
+      <description>Maximal read-out time</description>
+      <field name="BusyTime" start="0" bits="12" format="unsigned" unit="ns" scale="10"/>
+    </register>  
+    <register name="TimestampRef" address="0006" purpose="config">
+      <description>Internal reference timestamp of current event</description>
+      <field name="TimestampRef" start="0" bits="12" format="unsigned" unit="ns" scale="4"/>
+    </register>  
+    <register name="WindowLowerThreshold" address="0007" purpose="config">
+      <description>Lower timestamp limit of data selection window</description>
+      <field name="WindowLowerThreshold" start="0" bits="12" format="unsigned" unit="ns" scale="4"/>
+    </register>  
+    <register name="WindowUpperThreshold" address="0008" purpose="config">
+      <description>Upper timestamp limit of data selection window</description>
+      <field name="WindowUpperThreshold" start="0" bits="12" format="unsigned" unit="ns" scale="4"/>
+    </register>  
+    <register name="DataFifoDelay" address="0009" purpose="config">
+      <description>Data Fifo data delay</description>
+      <field name="DataFifoDelay" start="0" bits="7" format="unsigned" unit="ns" scale="32"/>
+    </register>  
+    <register name="ChannelDone" address="000a" purpose="config" repeat="4">
+      <description>Data channel read-out finished</description>
+      <field name="ChannelDone" start="0" bits="32" format="bitmask"/>
+    </register>  
+
+
+</group>
+
+
+
+  <group name="DataReceiver"
+         address="0500"  size="9"  purpose="status"  mode="rw"  continuous="true">
+
+    <register name="CurrentTimestamp" address="0000" purpose="status">
+      <description>Current Timestamp Value read from Fifo</description>
+      <field name="CurrentTimestamp" start="0" bits="32" format="unsigned" />
+    </register>
+    
+    <register name="TimestampFifoStatus" address="0001" purpose="status">
+      <description>Status of the timestamp Fifo</description>
+      <field name="TSFifoFull" start="0" bits="1" format="boolean" errorflag="true">
+        <description>Timestamp Fifo full</description>
+      </field>  
+      <field name="TSFifoEmpty" start="1" bits="1" format="boolean">
+        <description>Timestamp Fifo Empty</description>
+      </field>  
+      <field name="TSFifoAlmostEmpty" start="2" bits="1" format="boolean">
+        <description>Timestamp Fifo Almost Empty</description>
+      </field>        
+      <field name="NxFrameSynced" start="31" bits="1" format="boolean">
+        <description>Synchronized to Nxyter Frame</description>
+      </field>        
+    </register>   
+    
+    <register name="ResyncCounter" address="0002" purpose="status">
+      <description>Number of Resyncs</description>
+      <field name="ResyncCounter" start="0" bits="32" format="unsigned" />
+    </register>
+
+    <register name="ParityErrorCounter" address="0003" purpose="status">
+      <description>Number of Parity Errors</description>
+      <field name="ParityErrorCounter" start="0" bits="32" format="unsigned" errorflag="true" />
+    </register>
+
+    <register name="AdcClkDelay" address="0005" purpose="status">
+      <description>Number of Parity Errors (add 4 ns until bugfix is done)</description>
+      <field name="AdcClkDelay" start="0" bits="3" format="unsigned" scale="4" scaleoffset="4" unit="ns" />
+    </register>
+
+    <register name="AdcResetCounter" address="0006" purpose="status">
+      <description>Number of ADC Resets</description>
+      <field name="AdcResetCounter" start="0" bits="32" format="unsigned"/>
+    </register>
+
+    <register name="DebugMux" address="0007" purpose="config">
+      <description>Debug Multiplexer selection</description>
+      <field name="DebugMux" start="0" bits="2" format="enum">
+        <enumItem value="0">Normal Debug</enumItem>
+        <enumItem value="1">ADC Nxyter</enumItem>
+        <enumItem value="2">ADC Testchannel</enumItem>
+        <enumItem value="3">ADC Reset Handler</enumItem>
+      </field>
+    </register>
+
+    <register name="AdcValue" address="0008" purpose="status">
+      <description>Current ADC Fifo value</description>
+      <field name="AdcValue" start="0" bits="32" format="unsigned"/>
+    </register>
+
+  </group>
+
+
+</TrbNetEntity>
index 6c77701374168f0d0184a58c064e439c304b230d..14256e5cda44be9ca4768952bb226d9bb800d033 100644 (file)
   <group name="StatusRegisters" address="0000">
     <register name="CommonStatus0" address="0000" purpose="status">
       <description>Common Status Register 0</description>
-      <field name="Temperature" start="20" bits="12" format="integer" unit="°C" scale=".0625" >
+      <field name="Temperature" start="20" bits="12" format="float" unit="°C" scale=".0625" >
         <description>Board temperature</description>
       </field>
     </register>
+
+    <register name="EventCounter" address="0001" purpose="status">
+      <description>Event counters for LVL1 and Data channel</description>
+      <field name="Lvl1Counter" start="0" bits="16" format="integer">
+        <description>Lvl1 event counter</description>
+      </field>
+      <field name="IpuCounter" start="16" bits="16" format="integer">
+        <description>Number of last read-out event</description>
+      </field>
+    </register>
+
+    <register name="Lvl1Status" address="0002" purpose="status">
+      <description>Lvl1 status information</description>
+      <field name="Lvl1State" start="0" bits="4" format="enum">
+        <description>Status of the LVL1 trigger handler state machine</description>
+        <enumItem value="0">Idle</enumItem>
+        <enumItem value="1">Timing found</enumItem>
+        <enumItem value="3">LVL1 received</enumItem>
+        <enumItem value="5">tmg and lvl1 dont match</enumItem>
+        <enumItem value="7">Done</enumItem>
+      </field>
+      <field name="ShortPulse" start="4" bits="1" format="boolean">
+        <description>Last reference time was too short</description>
+      </field>
+      <field name="MissingPulse" start="5" bits="1" format="boolean">
+        <description>Missing reference time</description>
+      </field>
+      <field name="SpuriousPulse" start="6" bits="1" format="boolean">
+        <description>Spurious reference time</description>
+      </field>
+      <field name="WrongPolarity" start="7" bits="1" format="boolean" errorflag="true">
+        <description>Wrong polarity of reference time</description>
+      </field>      
+      <field name="PulseTimeout" start="11" bits="1" format="boolean" errorflag="true">
+        <description>Reference time to LVL1 too long delay</description>
+      </field>      
+      <field name="TriggerNumberMatch" start="12" bits="1" format="boolean">
+        <description>Internal and received trigger number match</description>
+      </field>          
+      <field name="MultiplePulse" start="13" bits="1" format="boolean" errorflag="true">
+        <description>Multiple reference time pulses</description>
+      </field>      
+      <field name="Lvl1Valid" start="14" bits="1" format="boolean">
+        <description>LVL1 data valid</description>
+      </field>            
+      <field name="RefTimeFound" start="15" bits="1" format="boolean">
+        <description>Found reference time</description>
+      </field>  
+      <field name="TimeDelay" start="16" bits="11" format="integer" scale="10" unit="ns" >
+        <description>Delay between reference time and LVL1</description>
+      </field>  
+    </register>
+
+    <register name="TriggerInput" address="0003" purpose="status">
+      <description>Trigger input statistics</description>
+      <field name="TriggerInputCount" start="0" bits="16" format="integer">
+        <description>Number of edges on trigger input</description>
+      </field>
+      <field name="TriggerLength" start="16" bits="16" format="integer" scale="10" unit=" ns">
+        <description>Length of last reference time signal</description>
+      </field>
+    </register>
     
+    <register name="LinkResetStats" address="0004" purpose="status">
+      <description>Statistics on retransmits and resets</description>
+      <field name="ResetCount" start="0" bits="8" format="integer">
+        <description>Number of received network resets</description>
+      </field>
+      <field name="RetransmitRecv" start="16" bits="8" format="integer" >
+        <description>Number of retransmit requests received</description>
+      </field>
+      <field name="RetransmitSent" start="16" bits="8" format="integer" >
+        <description>Number of retransmit requests sent</description>
+      </field>
+    </register>
+
+
+
+
+
     <register name="CompileTime" address="0040" purpose="status">
       <description>Compilation Time</description>
       <field name="CompileTime" start="0" bits="32" format="time" />
index 89bf02759319035e41e23dfe1a01e5cdacbe4cf5..9bbf374210aac7b8673419dd73003a189939894c 100755 (executable)
@@ -115,7 +115,7 @@ sub FormatPretty {
       when ("integer")  {$ret .= sprintf("$cl>%i",$value);}
       when ("unsigned") {$ret .= sprintf("$cl>%u",$value);}
       when ("signed")   {$ret .= sprintf("$cl>%d",$value);}
-      when ("binary"|"bitmask")   {$ret .= sprintf("%b",$value);}
+      when ("binary"|"bitmask")   {$ret .= sprintf("%0".$obj->{bits}."b",$value);}
       when ("time")     {$ret .= time2str('>%Y-%m-%d %H:%M',$value);}
       when ("hex")      {$ret .= sprintf("$cl>%8x",$value);}
       when ("enum")     { my $t = sprintf(">%x",$value);
@@ -137,7 +137,7 @@ sub FormatPretty {
       when ("unsigned") {$ret = sprintf("%u",$value);}
       when ("signed")   {$ret = sprintf("%d",$value);}
       when ("binary")   {$ret = sprintf("%b",$value);}
-      when ("bitmask")  {$ret = sprintf("%b",$value);}
+      when ("bitmask")  {$ret = sprintf("%0".$obj->{bits}."b",$value);}
       when ("time")     {$ret = time2str('%Y-%m-%d %H:%M',$value);}
       when ("hex")      {$ret = sprintf("%8x",$value);}
       when ("enum")     { my $t = sprintf("%x",$value);
index d776494609015246c6c88a3828272c6813a4d6fb..f84ff20c236ed1f1d10c6a468a27cf224cc0e74a 100644 (file)
@@ -58,6 +58,7 @@
   <xs:simpleType name="formattype">
     <xs:restriction base="xs:string">
       <xs:enumeration value="raw"/>
+      <xs:enumeration value="float"/>
       <xs:enumeration value="integer"/>
       <xs:enumeration value="signed"/>
       <xs:enumeration value="unsigned"/>
@@ -93,6 +94,7 @@
   -->
   <xs:attribute name="unit"         type="xs:string" />
   <xs:attribute name="scale"        type="xs:double" />
+  <xs:attribute name="scaleoffset"  type="xs:double" />
 
 
   <!--==============================
     <xs:attribute ref="repeat" />
     <xs:attribute ref="unit" />
     <xs:attribute ref="scale" />
+    <xs:attribute ref="scaleoffset" />
     <!-- if PERL evaluates this field to true,
          an error is indicated by this field -->
     <xs:attribute ref="errorflag" />