From e94457c98c3e3c666cdd1b6e92d9b38623425bfe Mon Sep 17 00:00:00 2001
From: Jake Read <jake.read@cba.mit.edu>
Date: Tue, 22 Oct 2019 20:11:55 -0400
Subject: [PATCH] minors on object logging, copy bytearrays to references

---
 hunks/data/log_objects.js             |  15 +-
 save/systems/vfpt-l1-byte-tester.json | 387 ++++++++++++++++++++++++++
 typeset.js                            |   7 +
 3 files changed, 402 insertions(+), 7 deletions(-)
 create mode 100644 save/systems/vfpt-l1-byte-tester.json

diff --git a/hunks/data/log_objects.js b/hunks/data/log_objects.js
index 3a349bf..a61b01b 100644
--- a/hunks/data/log_objects.js
+++ b/hunks/data/log_objects.js
@@ -34,15 +34,16 @@ export default function ObjectLogger() {
     // typically we check flow control first
     if (tolog.io()) {
       // an input is occupied, and the exit path is empty
-      let val = tolog.get()
-      if (Array.isArray(val)) {
-        val = val.join(', ')
-      } else if (typeof val === "boolean") {
-        val = val.toString()
+      let raw = tolog.get()
+      let stringRep
+      if (Array.isArray(raw)) {
+        stringRep = raw.join(', ')
+      } else if (typeof raw === "boolean") {
+        stringRep = raw.toString()
       }
-      $(this.dom).children('.txt').html(val)
+      $(this.dom).children('.txt').html(stringRep)
       if (logToConsole.value === true) {
-        console.log(this.ind, prefix.value, val)
+        console.log(this.ind, prefix.value, raw)
       }
     }
   }
diff --git a/save/systems/vfpt-l1-byte-tester.json b/save/systems/vfpt-l1-byte-tester.json
new file mode 100644
index 0000000..78b4112
--- /dev/null
+++ b/save/systems/vfpt-l1-byte-tester.json
@@ -0,0 +1,387 @@
+{
+  "interpreterName": "cuttlefish",
+  "interpreterVersion": "v0.1",
+  "hunks": [
+    {
+      "type": "manager",
+      "name": "nrol",
+      "inputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray"
+        }
+      ],
+      "outputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": "1",
+              "inHunkInput": "0"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "type": "view",
+      "name": "tlview",
+      "inputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray"
+        }
+      ],
+      "outputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": "0",
+              "inHunkInput": "0"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "type": "link",
+      "name": "link_2",
+      "inputs": [
+        {
+          "name": "data",
+          "type": "byteArray"
+        },
+        {
+          "name": "mgrMsgs",
+          "type": "byteArray"
+        },
+        {
+          "name": "auto_207_2",
+          "type": "byteArray"
+        }
+      ],
+      "outputs": [
+        {
+          "name": "data",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": "3",
+              "inHunkInput": "0"
+            }
+          ]
+        },
+        {
+          "name": "mgrMsgs",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": "4",
+              "inHunkInput": "0"
+            }
+          ]
+        },
+        {
+          "name": "atout",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": "6",
+              "inHunkInput": "0"
+            }
+          ]
+        }
+      ],
+      "states": [
+        {
+          "name": "isActive",
+          "type": "boolean",
+          "value": "true"
+        },
+        {
+          "name": "otherLink",
+          "type": "uint16",
+          "value": "1"
+        },
+        {
+          "name": "inputList",
+          "type": "string",
+          "value": "mgrMsgs (byteArray), auto_207_2 (byteArray)"
+        },
+        {
+          "name": "outputList",
+          "type": "string",
+          "value": "mgrMsgs (byteArray), atout (byteArray)"
+        }
+      ],
+      "contains": {
+        "interpreterName": "ponyo",
+        "interpreterVersion": "v0.1",
+        "hunks": [
+          {
+            "type": "manager",
+            "name": "ponyo_one",
+            "inputs": [
+              {
+                "name": "mgrMsgs_1024",
+                "type": "byteArray"
+              }
+            ],
+            "outputs": [
+              {
+                "name": "mgrMsgs_1024",
+                "type": "byteArray",
+                "connections": [
+                  {
+                    "inHunkIndex": "1",
+                    "inHunkInput": "1"
+                  }
+                ]
+              }
+            ]
+          },
+          {
+            "type": "link",
+            "name": "link_1",
+            "inputs": [
+              {
+                "name": "data_1024",
+                "type": "byteArray"
+              },
+              {
+                "name": "mgrMsgs_1024",
+                "type": "byteArray"
+              },
+              {
+                "name": "atout_512",
+                "type": "byteArray"
+              }
+            ],
+            "outputs": [
+              {
+                "name": "data_1024",
+                "type": "byteArray",
+                "connections": [
+                  {
+                    "inHunkIndex": "2",
+                    "inHunkInput": "0"
+                  }
+                ]
+              },
+              {
+                "name": "mgrMsgs_1024",
+                "type": "byteArray",
+                "connections": [
+                  {
+                    "inHunkIndex": "0",
+                    "inHunkInput": "0"
+                  }
+                ]
+              },
+              {
+                "name": "auto_184_2_512",
+                "type": "byteArray",
+                "connections": [
+                  {
+                    "inHunkIndex": "3",
+                    "inHunkInput": "0"
+                  }
+                ]
+              }
+            ],
+            "states": [
+              {
+                "name": "isActive",
+                "type": "boolean",
+                "value": "true"
+              },
+              {
+                "name": "otherLink",
+                "type": "uint16",
+                "value": "2"
+              },
+              {
+                "name": "inputList",
+                "type": "string",
+                "value": "mgrMsgs (byteArray), atout (byteArray)"
+              },
+              {
+                "name": "outputList",
+                "type": "string",
+                "value": "mgrMsgs (byteArray), auto_184_2 (byteArray)"
+              }
+            ]
+          },
+          {
+            "type": "comm/COBSerialUSB",
+            "name": "comm/COBSerialUSB_2",
+            "inputs": [
+              {
+                "name": "data_1024",
+                "type": "byteArray"
+              }
+            ],
+            "outputs": [
+              {
+                "name": "data_1024",
+                "type": "byteArray",
+                "connections": [
+                  {
+                    "inHunkIndex": "1",
+                    "inHunkInput": "0"
+                  }
+                ]
+              }
+            ]
+          },
+          {
+            "type": "comm/COBSerialRJ45_A",
+            "name": "comm/COBSerialRJ45_A_4",
+            "inputs": [
+              {
+                "name": "data_1024",
+                "type": "byteArray"
+              }
+            ],
+            "outputs": [
+              {
+                "name": "data_1024",
+                "type": "byteArray",
+                "connections": [
+                  {
+                    "inHunkIndex": "1",
+                    "inHunkInput": "2"
+                  }
+                ]
+              }
+            ]
+          }
+        ]
+      }
+    },
+    {
+      "type": "pipes/vfptc",
+      "name": "pipes/vfptc_3",
+      "inputs": [
+        {
+          "name": "data",
+          "type": "byteArray"
+        }
+      ],
+      "outputs": [
+        {
+          "name": "data",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": "2",
+              "inHunkInput": "0"
+            }
+          ]
+        }
+      ],
+      "states": [
+        {
+          "name": "pipe status",
+          "type": "string",
+          "value": "open"
+        },
+        {
+          "name": "websocket port",
+          "type": "string",
+          "value": "2042"
+        },
+        {
+          "name": "usb product id",
+          "type": "string",
+          "value": "8022"
+        },
+        {
+          "name": "pipe reset",
+          "type": "boolean",
+          "value": "false"
+        },
+        {
+          "name": "serialport status",
+          "type": "string",
+          "value": "open"
+        }
+      ]
+    },
+    {
+      "type": "view",
+      "name": "view_4",
+      "inputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray"
+        }
+      ],
+      "outputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": "2",
+              "inHunkInput": "1"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "type": "debug/bytearrayoutput",
+      "name": "debug/bytearrayoutput_5",
+      "outputs": [
+        {
+          "name": "source",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": "2",
+              "inHunkInput": "2"
+            }
+          ]
+        }
+      ],
+      "states": [
+        {
+          "name": "gobutton",
+          "type": "boolean",
+          "value": "false"
+        },
+        {
+          "name": "prefix",
+          "type": "string",
+          "value": "85, 86, 87, 88"
+        }
+      ]
+    },
+    {
+      "type": "data/log_objects",
+      "name": "data/log_objects_7",
+      "inputs": [
+        {
+          "name": "tolog",
+          "type": "reference"
+        }
+      ],
+      "states": [
+        {
+          "name": "prefix",
+          "type": "string",
+          "value": "LOG:"
+        },
+        {
+          "name": "console",
+          "type": "boolean",
+          "value": "true"
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/typeset.js b/typeset.js
index b06caec..5db3352 100644
--- a/typeset.js
+++ b/typeset.js
@@ -175,6 +175,13 @@ const TSET = [
           ret[item] = arr[item]
         }
         return ret
+      },
+      reference: function(arr){
+        let ret = new Array(arr.length)
+        for (let item in arr) {
+          ret[item] = arr[item]
+        }
+        return ret
       }
     }
   }, { // char 36, string 37,
-- 
GitLab