Adding option in config_test.p for regenerate reference result file
authorlbessard
Thu, 13 Sep 2007 09:01:57 +0200
changeset 35 4d7861fc34d4
parent 34 2721e6910f5a
child 36 42e391e7c455
Adding option in config_test.p for regenerate reference result file
plugins/canfestival/config_utils.py
plugins/canfestival/test_config/result.txt
--- a/plugins/canfestival/config_utils.py	Wed Sep 12 17:16:27 2007 +0200
+++ b/plugins/canfestival/config_utils.py	Thu Sep 13 09:01:57 2007 +0200
@@ -321,6 +321,10 @@
         @param sync_TPDOs: indicate if TPDO must be synchronous
         """
         
+        #-------------------------------------------------------------------------------
+        #               Verify that locations correspond to real slave variables
+        #-------------------------------------------------------------------------------
+        
         # Get list of locations check if exists and mappables -> put them in IECLocations
         for location in locations:
             COlocationtype = IECToCOType[location["IEC_TYPE"]]
@@ -353,7 +357,7 @@
                 if not node.IsEntry(index, subindex):
                     raise ValueError, "No such index/subindex (%x,%x) in ID : %d (variable %s)" % (index,subindex,nodeid,name)
                 
-                #Get the entry info
+                # Get the entry info
                 subentry_infos = node.GetSubentryInfos(index, subindex)
                 
                 # If a PDO mappable
@@ -571,20 +575,59 @@
     return dcfgenerator.GetMasterNode()
 
 if __name__ == "__main__":
-    import os, sys
-
+    import os, sys, getopt
+
+    def usage():
+        print """
+Usage of config_utils.py test :
+
+    %s [options]
+
+Options:
+    --help  (-h)
+            Displays help informations for config_utils
+
+    --reset (-r)
+            Reset the reference result of config_utils test.
+            Use with caution. Be sure that config_utils
+            is currently working properly.
+"""%sys.argv[0]
+    
+    # Boolean that indicate if reference result must be redefined
+    reset = False
+
+    # Extract command options
+    try:
+        opts, args = getopt.getopt(sys.argv[1:], "hr", ["help","reset"])
+    except getopt.GetoptError:
+        # print help information and exit:
+        usage()
+        sys.exit(2)
+
+    # Test each option
+    for o, a in opts:
+        if o in ("-h", "--help"):
+            usage()
+            sys.exit()
+        elif o in ("-r", "--reset"):
+            reset = True
+
+    # Extract workspace base folder
     base_folder = sys.path[0]
     for i in xrange(3):
         base_folder = os.path.split(base_folder)[0]
+    # Add CanFestival folder to search pathes
     sys.path.append(os.path.join(base_folder, "CanFestival-3", "objdictgen"))
     
     from nodemanager import *
     from nodelist import *
     
+    # Open the test nodelist contained into test_config folder
     manager = NodeManager()
     nodelist = NodeList(manager)
     result = nodelist.LoadProject("test_config")
     
+    # List of locations, we try to map for test
     locations = [{"IEC_TYPE":"BYTE","NAME":"__IB0_1_64_24576_1","DIR":"I","SIZE":"B","LOC":(0,1,64,24576,1)},
                  {"IEC_TYPE":"INT","NAME":"__IW0_1_64_25601_2","DIR":"I","SIZE":"W","LOC":(0,1,64,25601,2)},
                  {"IEC_TYPE":"INT","NAME":"__IW0_1_64_25601_3","DIR":"I","SIZE":"W","LOC":(0,1,64,25601,3)},
@@ -595,31 +638,45 @@
                  {"IEC_TYPE":"UDINT","NAME":"__ID0_1_64_25638_3","DIR":"I","SIZE":"D","LOC":(0,1,64,25638,3)},
                  {"IEC_TYPE":"UDINT","NAME":"__ID0_1_64_25638_4","DIR":"I","SIZE":"D","LOC":(0,1,64,25638,4)}]
     
-    masternode = GenerateConciseDCF(locations, (0, 1), nodelist, True)
-    #masternode.Print()
-    result = [line.rstrip() for line in masternode.PrintString().splitlines()]
-    
-    file = open("test_config/result.txt", "r")
-    model = [line.rstrip() for line in file.readlines()]
-    file.close()
-    
-    errors = 0
-    for i, line in enumerate(model):
-        if i >= len(result):
+    # Generate MasterNode configuration
+    try:
+        masternode = GenerateConciseDCF(locations, (0, 1), nodelist, True)
+    except ValueError, message:
+        print "%s\nTest Failed!"%message
+        sys.exit()
+    
+    # Get Text corresponding to MasterNode 
+    result = masternode.PrintString()
+    
+    # If reset has been choosen
+    if reset:
+        # Write Text into reference result file
+        file = open("test_config/result.txt", "w")
+        file.write(result)
+        file.close()
+        
+        print "Reset Successful!"
+    else:
+        # Test each line of the result with the reference result
+        test = [line.rstrip() for line in result.splitlines()]
+        
+        file = open("test_config/result.txt", "r")
+        model = [line.rstrip() for line in file.readlines() if line.rstrip()]
+        file.close()
+        
+        errors = 0
+        for i, line in enumerate(model):
+            if i >= len(test):
+                errors += 1
+                print "Line %d disappear :\n%s\n"%(i + 1, line)
+            elif line != test[i]:
+                errors += 1
+                print "Error on line %d :\n%s\nInstead of :\n%s\n"%(i + 1, test[i], line)
+        for i in xrange(len(model), len(test)):
             errors += 1
-            print "Line %d disappear :"%(i + 1)
-            print line
-        elif line != result[i]:
-            errors += 1
-            print "Error on line %d :"%(i + 1)
-            print "\t%s"%result[i]
-            print "Instead of :\n\t%s"%line
-    for i in xrange(len(model), len(result)):
-        errors += 1
-        print "Line %d appear :"%(i + 1)
-        print result[i]
-    
-    if errors > 0:
-        print "Test Failed!"
-    else:
-        print "Test Successful!"
\ No newline at end of file
+            print "Line %d appear :\n%s\n"%(i + 1, test[i])
+        
+        if errors > 0:
+            print "%d errors found.\nTest Failed!"%errors
+        else:
+            print "Test Successful!"
--- a/plugins/canfestival/test_config/result.txt	Wed Sep 12 17:16:27 2007 +0200
+++ b/plugins/canfestival/test_config/result.txt	Thu Sep 13 09:01:57 2007 +0200
@@ -1,253 +1,253 @@
-1000 (Device Type): 302
+1000 (Device Type): 12E
 1001 (Error Register): 0
-1005 (SYNC COB ID): 1073741952
-1006 (Communication / Cycle Period): 50000
+1005 (SYNC COB ID): 40000080
+1006 (Communication / Cycle Period): C350
 1016 (Consumer Heartbeat Time):
-  001 (Consumer Heartbeat Time): 4005DC
+1016 01 (Consumer Heartbeat Time): 4005DC
 1018 (Identity):
-  001 (Vendor ID): 0
-  002 (Product Code): 0
-  003 (Revision Number): 0
-  004 (Serial Number): 0
+1018 01 (Vendor ID): 0
+1018 02 (Product Code): 0
+1018 03 (Revision Number): 0
+1018 04 (Serial Number): 0
 1280 (Client SDO 1 Parameter):
-  001 (COB ID Client to Server (Transmit SDO)): 640
-  002 (COB ID Server to Client (Receive SDO)): 5C0
-  003 (Node ID of the SDO Server): 40
+1280 01 (COB ID Client to Server (Transmit SDO)): 640
+1280 02 (COB ID Server to Client (Receive SDO)): 5C0
+1280 03 (Node ID of the SDO Server): 40
 1400 (Receive PDO 1 Parameter):
-  001 (COB ID used by PDO): 1C0
-  002 (Transmission Type): 1
-  003 (Inhibit Time): 0
-  004 (Compatibility Entry): 0
-  005 (Event Timer): 0
+1400 01 (COB ID used by PDO): 1C0
+1400 02 (Transmission Type): 1
+1400 03 (Inhibit Time): 0
+1400 04 (Compatibility Entry): 0
+1400 05 (Event Timer): 0
 1401 (Receive PDO 2 Parameter):
-  001 (COB ID used by PDO): 2C0
-  002 (Transmission Type): 1
-  003 (Inhibit Time): 0
-  004 (Compatibility Entry): 0
-  005 (Event Timer): 0
+1401 01 (COB ID used by PDO): 2C0
+1401 02 (Transmission Type): 1
+1401 03 (Inhibit Time): 0
+1401 04 (Compatibility Entry): 0
+1401 05 (Event Timer): 0
 1402 (Receive PDO 3 Parameter):
-  001 (COB ID used by PDO): 182
-  002 (Transmission Type): 1
-  003 (Inhibit Time): 0
-  004 (Compatibility Entry): 0
-  005 (Event Timer): 0
+1402 01 (COB ID used by PDO): 182
+1402 02 (Transmission Type): 1
+1402 03 (Inhibit Time): 0
+1402 04 (Compatibility Entry): 0
+1402 05 (Event Timer): 0
 1403 (Receive PDO 4 Parameter):
-  001 (COB ID used by PDO): 183
-  002 (Transmission Type): 1
-  003 (Inhibit Time): 0
-  004 (Compatibility Entry): 0
-  005 (Event Timer): 0
+1403 01 (COB ID used by PDO): 183
+1403 02 (Transmission Type): 1
+1403 03 (Inhibit Time): 0
+1403 04 (Compatibility Entry): 0
+1403 05 (Event Timer): 0
 1404 (Receive PDO 5 Parameter):
-  001 (COB ID used by PDO): 180
-  002 (Transmission Type): 1
-  003 (Inhibit Time): 0
-  004 (Compatibility Entry): 0
-  005 (Event Timer): 0
+1404 01 (COB ID used by PDO): 180
+1404 02 (Transmission Type): 1
+1404 03 (Inhibit Time): 0
+1404 04 (Compatibility Entry): 0
+1404 05 (Event Timer): 0
 1600 (Receive PDO 1 Mapping):
-  001 (PDO 1 Mapping for an application object 1): 22400108
+1600 01 (PDO 1 Mapping for an application object 1): 22400108
 1601 (Receive PDO 2 Mapping):
-  001 (PDO 2 Mapping for an application object 1): 20010310
-  002 (PDO 2 Mapping for an application object 2): 23400110
-  003 (PDO 2 Mapping for an application object 3): 23400210
-  004 (PDO 2 Mapping for an application object 4): 20010310
+1601 01 (PDO 2 Mapping for an application object 1): 20010310
+1601 02 (PDO 2 Mapping for an application object 2): 23400110
+1601 03 (PDO 2 Mapping for an application object 3): 23400210
+1601 04 (PDO 2 Mapping for an application object 4): 20010310
 1602 (Receive PDO 3 Mapping):
-  001 (PDO 3 Mapping for an application object 1): 24400120
-  002 (PDO 3 Mapping for an application object 2): 24400220
+1602 01 (PDO 3 Mapping for an application object 1): 24400120
+1602 02 (PDO 3 Mapping for an application object 2): 24400220
 1603 (Receive PDO 4 Mapping):
-  001 (PDO 4 Mapping for an application object 1): 24400320
+1603 01 (PDO 4 Mapping for an application object 1): 24400320
 1604 (Receive PDO 5 Mapping):
-  001 (PDO 5 Mapping for an application object 1): 22400208
-  002 (PDO 5 Mapping for an application object 2): 24400420
+1604 01 (PDO 5 Mapping for an application object 1): 22400208
+1604 02 (PDO 5 Mapping for an application object 2): 24400420
 1800 (Transmit PDO 1 Parameter):
-  001 (COB ID used by PDO): {True:self.ID+(base+1)*0x100+0x80,False:0}[base<4]
-  002 (Transmission Type): 0
-  003 (Inhibit Time): 0
-  004 (Compatibility Entry): 0
-  005 (Event Timer): 0
+1800 01 (COB ID used by PDO): {True:self.ID+(base+1)*0x100+0x80,False:0}[base<4]
+1800 02 (Transmission Type): 0
+1800 03 (Inhibit Time): 0
+1800 04 (Compatibility Entry): 0
+1800 05 (Event Timer): 0
 1801 (Transmit PDO 2 Parameter):
-  001 (COB ID used by PDO): 340
-  002 (Transmission Type): 1
-  003 (Inhibit Time): 0
-  004 (Compatibility Entry): 0
-  005 (Event Timer): 0
+1801 01 (COB ID used by PDO): 340
+1801 02 (Transmission Type): 1
+1801 03 (Inhibit Time): 0
+1801 04 (Compatibility Entry): 0
+1801 05 (Event Timer): 0
 1A00 (Transmit PDO 1 Mapping):
-  001 (PDO 1 Mapping for a process data variable 1): 10010008
+1A00 01 (PDO 1 Mapping for a process data variable 1): 10010008
 1A01 (Transmit PDO 2 Mapping):
-  001 (PDO 2 Mapping for a process data variable 1): 43400110
-  002 (PDO 2 Mapping for a process data variable 2): 20010310
-  003 (PDO 2 Mapping for a process data variable 3): 20010310
-  004 (PDO 2 Mapping for a process data variable 4): 20010310
+1A01 01 (PDO 2 Mapping for a process data variable 1): 43400110
+1A01 02 (PDO 2 Mapping for a process data variable 2): 20010310
+1A01 03 (PDO 2 Mapping for a process data variable 3): 20010310
+1A01 04 (PDO 2 Mapping for a process data variable 4): 20010310
 1F22 (Concise DCF):
-  001 (Concise DCF for Node 1): 
-  002 (Concise DCF for Node 2): 
-  003 (Concise DCF for Node 3): 
-  004 (Concise DCF for Node 4): 
-  005 (Concise DCF for Node 5): 
-  006 (Concise DCF for Node 6): 
-  007 (Concise DCF for Node 7): 
-  008 (Concise DCF for Node 8): 
-  009 (Concise DCF for Node 9): 
-  010 (Concise DCF for Node 10): 
-  011 (Concise DCF for Node 11): 
-  012 (Concise DCF for Node 12): 
-  013 (Concise DCF for Node 13): 
-  014 (Concise DCF for Node 14): 
-  015 (Concise DCF for Node 15): 
-  016 (Concise DCF for Node 16): 
-  017 (Concise DCF for Node 17): 
-  018 (Concise DCF for Node 18): 
-  019 (Concise DCF for Node 19): 
-  020 (Concise DCF for Node 20): 
-  021 (Concise DCF for Node 21): 
-  022 (Concise DCF for Node 22): 
-  023 (Concise DCF for Node 23): 
-  024 (Concise DCF for Node 24): 
-  025 (Concise DCF for Node 25): 
-  026 (Concise DCF for Node 26): 
-  027 (Concise DCF for Node 27): 
-  028 (Concise DCF for Node 28): 
-  029 (Concise DCF for Node 29): 
-  030 (Concise DCF for Node 30): 
-  031 (Concise DCF for Node 31): 
-  032 (Concise DCF for Node 32): 
-  033 (Concise DCF for Node 33): 
-  034 (Concise DCF for Node 34): 
-  035 (Concise DCF for Node 35): 
-  036 (Concise DCF for Node 36): 
-  037 (Concise DCF for Node 37): 
-  038 (Concise DCF for Node 38): 
-  039 (Concise DCF for Node 39): 
-  040 (Concise DCF for Node 40): 
-  041 (Concise DCF for Node 41): 
-  042 (Concise DCF for Node 42): 
-  043 (Concise DCF for Node 43): 
-  044 (Concise DCF for Node 44): 
-  045 (Concise DCF for Node 45): 
-  046 (Concise DCF for Node 46): 
-  047 (Concise DCF for Node 47): 
-  048 (Concise DCF for Node 48): 
-  049 (Concise DCF for Node 49): 
-  050 (Concise DCF for Node 50): 
-  051 (Concise DCF for Node 51): 
-  052 (Concise DCF for Node 52): 
-  053 (Concise DCF for Node 53): 
-  054 (Concise DCF for Node 54): 
-  055 (Concise DCF for Node 55): 
-  056 (Concise DCF for Node 56): 
-  057 (Concise DCF for Node 57): 
-  058 (Concise DCF for Node 58): 
-  059 (Concise DCF for Node 59): 
-  060 (Concise DCF for Node 60): 
-  061 (Concise DCF for Node 61): 
-  062 (Concise DCF for Node 62): 
-  063 (Concise DCF for Node 63): 
-  064 (Concise DCF for Node 64): 26
-	1800 01 00000004 800001C0
-	1800 02 00000001 01
-	1800 01 00000004 000001C0
-	1801 01 00000004 800002C0
-	1801 02 00000001 01
-	1801 01 00000004 000002C0
-	1801 01 00000004 800002C0
-	1801 02 00000001 01
-	1801 01 00000004 000002C0
-	1401 01 00000004 80000340
-	1401 02 00000001 01
-	1401 01 00000004 00000340
-	1804 01 00000004 80000180
-	1804 02 00000001 01
-	1804 01 00000004 00000180
-	1A04 01 00000004 60020108
-	1A04 02 00000004 64260120
-	1805 01 00000004 80000182
-	1805 02 00000001 01
-	1805 01 00000004 00000182
-	1A05 01 00000004 64260220
-	1A05 02 00000004 64260320
-	1806 01 00000004 80000183
-	1806 02 00000001 01
-	1806 01 00000004 00000183
-	1A06 01 00000004 64260420
-  065 (Concise DCF for Node 65): 
-  066 (Concise DCF for Node 66): 
-  067 (Concise DCF for Node 67): 
-  068 (Concise DCF for Node 68): 
-  069 (Concise DCF for Node 69): 
-  070 (Concise DCF for Node 70): 
-  071 (Concise DCF for Node 71): 
-  072 (Concise DCF for Node 72): 
-  073 (Concise DCF for Node 73): 
-  074 (Concise DCF for Node 74): 
-  075 (Concise DCF for Node 75): 
-  076 (Concise DCF for Node 76): 
-  077 (Concise DCF for Node 77): 
-  078 (Concise DCF for Node 78): 
-  079 (Concise DCF for Node 79): 
-  080 (Concise DCF for Node 80): 
-  081 (Concise DCF for Node 81): 
-  082 (Concise DCF for Node 82): 
-  083 (Concise DCF for Node 83): 
-  084 (Concise DCF for Node 84): 
-  085 (Concise DCF for Node 85): 
-  086 (Concise DCF for Node 86): 
-  087 (Concise DCF for Node 87): 
-  088 (Concise DCF for Node 88): 
-  089 (Concise DCF for Node 89): 
-  090 (Concise DCF for Node 90): 
-  091 (Concise DCF for Node 91): 
-  092 (Concise DCF for Node 92): 
-  093 (Concise DCF for Node 93): 
-  094 (Concise DCF for Node 94): 
-  095 (Concise DCF for Node 95): 
-  096 (Concise DCF for Node 96): 
-  097 (Concise DCF for Node 97): 
-  098 (Concise DCF for Node 98): 
-  099 (Concise DCF for Node 99): 
-  100 (Concise DCF for Node 100): 
-  101 (Concise DCF for Node 101): 
-  102 (Concise DCF for Node 102): 
-  103 (Concise DCF for Node 103): 
-  104 (Concise DCF for Node 104): 
-  105 (Concise DCF for Node 105): 
-  106 (Concise DCF for Node 106): 
-  107 (Concise DCF for Node 107): 
-  108 (Concise DCF for Node 108): 
-  109 (Concise DCF for Node 109): 
-  110 (Concise DCF for Node 110): 
-  111 (Concise DCF for Node 111): 
-  112 (Concise DCF for Node 112): 
-  113 (Concise DCF for Node 113): 
-  114 (Concise DCF for Node 114): 
-  115 (Concise DCF for Node 115): 
-  116 (Concise DCF for Node 116): 
-  117 (Concise DCF for Node 117): 
-  118 (Concise DCF for Node 118): 
-  119 (Concise DCF for Node 119): 
-  120 (Concise DCF for Node 120): 
-  121 (Concise DCF for Node 121): 
-  122 (Concise DCF for Node 122): 
-  123 (Concise DCF for Node 123): 
-  124 (Concise DCF for Node 124): 
-  125 (Concise DCF for Node 125): 
-  126 (Concise DCF for Node 126): 
-  127 (Concise DCF for Node 127): 
+1F22 01 (Concise DCF for Node 1): 
+1F22 02 (Concise DCF for Node 2): 
+1F22 03 (Concise DCF for Node 3): 
+1F22 04 (Concise DCF for Node 4): 
+1F22 05 (Concise DCF for Node 5): 
+1F22 06 (Concise DCF for Node 6): 
+1F22 07 (Concise DCF for Node 7): 
+1F22 08 (Concise DCF for Node 8): 
+1F22 09 (Concise DCF for Node 9): 
+1F22 0A (Concise DCF for Node 10): 
+1F22 0B (Concise DCF for Node 11): 
+1F22 0C (Concise DCF for Node 12): 
+1F22 0D (Concise DCF for Node 13): 
+1F22 0E (Concise DCF for Node 14): 
+1F22 0F (Concise DCF for Node 15): 
+1F22 10 (Concise DCF for Node 16): 
+1F22 11 (Concise DCF for Node 17): 
+1F22 12 (Concise DCF for Node 18): 
+1F22 13 (Concise DCF for Node 19): 
+1F22 14 (Concise DCF for Node 20): 
+1F22 15 (Concise DCF for Node 21): 
+1F22 16 (Concise DCF for Node 22): 
+1F22 17 (Concise DCF for Node 23): 
+1F22 18 (Concise DCF for Node 24): 
+1F22 19 (Concise DCF for Node 25): 
+1F22 1A (Concise DCF for Node 26): 
+1F22 1B (Concise DCF for Node 27): 
+1F22 1C (Concise DCF for Node 28): 
+1F22 1D (Concise DCF for Node 29): 
+1F22 1E (Concise DCF for Node 30): 
+1F22 1F (Concise DCF for Node 31): 
+1F22 20 (Concise DCF for Node 32): 
+1F22 21 (Concise DCF for Node 33): 
+1F22 22 (Concise DCF for Node 34): 
+1F22 23 (Concise DCF for Node 35): 
+1F22 24 (Concise DCF for Node 36): 
+1F22 25 (Concise DCF for Node 37): 
+1F22 26 (Concise DCF for Node 38): 
+1F22 27 (Concise DCF for Node 39): 
+1F22 28 (Concise DCF for Node 40): 
+1F22 29 (Concise DCF for Node 41): 
+1F22 2A (Concise DCF for Node 42): 
+1F22 2B (Concise DCF for Node 43): 
+1F22 2C (Concise DCF for Node 44): 
+1F22 2D (Concise DCF for Node 45): 
+1F22 2E (Concise DCF for Node 46): 
+1F22 2F (Concise DCF for Node 47): 
+1F22 30 (Concise DCF for Node 48): 
+1F22 31 (Concise DCF for Node 49): 
+1F22 32 (Concise DCF for Node 50): 
+1F22 33 (Concise DCF for Node 51): 
+1F22 34 (Concise DCF for Node 52): 
+1F22 35 (Concise DCF for Node 53): 
+1F22 36 (Concise DCF for Node 54): 
+1F22 37 (Concise DCF for Node 55): 
+1F22 38 (Concise DCF for Node 56): 
+1F22 39 (Concise DCF for Node 57): 
+1F22 3A (Concise DCF for Node 58): 
+1F22 3B (Concise DCF for Node 59): 
+1F22 3C (Concise DCF for Node 60): 
+1F22 3D (Concise DCF for Node 61): 
+1F22 3E (Concise DCF for Node 62): 
+1F22 3F (Concise DCF for Node 63): 
+1F22 40 (Concise DCF for Node 64): 26 arg defined
+1F22 40, arg 1: 1800 01 00000004 800001C0
+1F22 40, arg 2: 1800 02 00000001 01
+1F22 40, arg 3: 1800 01 00000004 000001C0
+1F22 40, arg 4: 1801 01 00000004 800002C0
+1F22 40, arg 5: 1801 02 00000001 01
+1F22 40, arg 6: 1801 01 00000004 000002C0
+1F22 40, arg 7: 1801 01 00000004 800002C0
+1F22 40, arg 8: 1801 02 00000001 01
+1F22 40, arg 9: 1801 01 00000004 000002C0
+1F22 40, arg 10: 1401 01 00000004 80000340
+1F22 40, arg 11: 1401 02 00000001 01
+1F22 40, arg 12: 1401 01 00000004 00000340
+1F22 40, arg 13: 1804 01 00000004 80000180
+1F22 40, arg 14: 1804 02 00000001 01
+1F22 40, arg 15: 1804 01 00000004 00000180
+1F22 40, arg 16: 1A04 01 00000004 60020108
+1F22 40, arg 17: 1A04 02 00000004 64260120
+1F22 40, arg 18: 1805 01 00000004 80000182
+1F22 40, arg 19: 1805 02 00000001 01
+1F22 40, arg 20: 1805 01 00000004 00000182
+1F22 40, arg 21: 1A05 01 00000004 64260220
+1F22 40, arg 22: 1A05 02 00000004 64260320
+1F22 40, arg 23: 1806 01 00000004 80000183
+1F22 40, arg 24: 1806 02 00000001 01
+1F22 40, arg 25: 1806 01 00000004 00000183
+1F22 40, arg 26: 1A06 01 00000004 64260420
+1F22 41 (Concise DCF for Node 65): 
+1F22 42 (Concise DCF for Node 66): 
+1F22 43 (Concise DCF for Node 67): 
+1F22 44 (Concise DCF for Node 68): 
+1F22 45 (Concise DCF for Node 69): 
+1F22 46 (Concise DCF for Node 70): 
+1F22 47 (Concise DCF for Node 71): 
+1F22 48 (Concise DCF for Node 72): 
+1F22 49 (Concise DCF for Node 73): 
+1F22 4A (Concise DCF for Node 74): 
+1F22 4B (Concise DCF for Node 75): 
+1F22 4C (Concise DCF for Node 76): 
+1F22 4D (Concise DCF for Node 77): 
+1F22 4E (Concise DCF for Node 78): 
+1F22 4F (Concise DCF for Node 79): 
+1F22 50 (Concise DCF for Node 80): 
+1F22 51 (Concise DCF for Node 81): 
+1F22 52 (Concise DCF for Node 82): 
+1F22 53 (Concise DCF for Node 83): 
+1F22 54 (Concise DCF for Node 84): 
+1F22 55 (Concise DCF for Node 85): 
+1F22 56 (Concise DCF for Node 86): 
+1F22 57 (Concise DCF for Node 87): 
+1F22 58 (Concise DCF for Node 88): 
+1F22 59 (Concise DCF for Node 89): 
+1F22 5A (Concise DCF for Node 90): 
+1F22 5B (Concise DCF for Node 91): 
+1F22 5C (Concise DCF for Node 92): 
+1F22 5D (Concise DCF for Node 93): 
+1F22 5E (Concise DCF for Node 94): 
+1F22 5F (Concise DCF for Node 95): 
+1F22 60 (Concise DCF for Node 96): 
+1F22 61 (Concise DCF for Node 97): 
+1F22 62 (Concise DCF for Node 98): 
+1F22 63 (Concise DCF for Node 99): 
+1F22 64 (Concise DCF for Node 100): 
+1F22 65 (Concise DCF for Node 101): 
+1F22 66 (Concise DCF for Node 102): 
+1F22 67 (Concise DCF for Node 103): 
+1F22 68 (Concise DCF for Node 104): 
+1F22 69 (Concise DCF for Node 105): 
+1F22 6A (Concise DCF for Node 106): 
+1F22 6B (Concise DCF for Node 107): 
+1F22 6C (Concise DCF for Node 108): 
+1F22 6D (Concise DCF for Node 109): 
+1F22 6E (Concise DCF for Node 110): 
+1F22 6F (Concise DCF for Node 111): 
+1F22 70 (Concise DCF for Node 112): 
+1F22 71 (Concise DCF for Node 113): 
+1F22 72 (Concise DCF for Node 114): 
+1F22 73 (Concise DCF for Node 115): 
+1F22 74 (Concise DCF for Node 116): 
+1F22 75 (Concise DCF for Node 117): 
+1F22 76 (Concise DCF for Node 118): 
+1F22 77 (Concise DCF for Node 119): 
+1F22 78 (Concise DCF for Node 120): 
+1F22 79 (Concise DCF for Node 121): 
+1F22 7A (Concise DCF for Node 122): 
+1F22 7B (Concise DCF for Node 123): 
+1F22 7C (Concise DCF for Node 124): 
+1F22 7D (Concise DCF for Node 125): 
+1F22 7E (Concise DCF for Node 126): 
+1F22 7F (Concise DCF for Node 127): 
 2000 (Read Inputs): 0
 2001 (trashvariables):
-  001 (TRASH1): 0
-  002 (TRASH8): 0
-  003 (TRASH16): 0
-  004 (TRASH32): 0
-  005 (TRASH64): 0
+2001 01 (TRASH1): 0
+2001 02 (TRASH8): 0
+2001 03 (TRASH16): 0
+2001 04 (TRASH32): 0
+2001 05 (TRASH64): 0
 2240 (__IB0_1_64):
-  001 (24576_1): 0
-  002 (24578_1): 0
+2240 01 (24576_1): 0
+2240 02 (24578_1): 0
 2340 (__IW0_1_64):
-  001 (25601_2): 0
-  002 (25601_3): 0
+2340 01 (25601_2): 0
+2340 02 (25601_3): 0
 2440 (__ID0_1_64):
-  001 (25638_2): 0
-  002 (25638_3): 0
-  003 (25638_4): 0
-  004 (25638_1): 0
+2440 01 (25638_2): 0
+2440 02 (25638_3): 0
+2440 03 (25638_4): 0
+2440 04 (25638_1): 0
 4340 (__QW0_1_64):
-  001 (25617_1): 0
+4340 01 (25617_1): 0