From e746945ab2a15bf360b11bca21760b9dc8fd9092 Mon Sep 17 00:00:00 2001
From: Jake Read <jake.read@cba.mit.edu>
Date: Fri, 1 Nov 2019 09:25:02 -0400
Subject: [PATCH] patch doesn't look for nonexistent state items, ts has mroe

---
 save/systems/dbg-l1.json | 26 ++++++++++++++++++++++++++
 typeset.js               |  1 -
 view/vptch.js            | 28 ++++++++++++++++------------
 3 files changed, 42 insertions(+), 13 deletions(-)

diff --git a/save/systems/dbg-l1.json b/save/systems/dbg-l1.json
index 211a227..af8c693 100644
--- a/save/systems/dbg-l1.json
+++ b/save/systems/dbg-l1.json
@@ -267,6 +267,32 @@
                 "name": "motionSegment",
                 "type": "MDmseg"
               }
+            ],
+            "outputs": [
+              {
+                "name": "dmSegX",
+                "type": "Dmseg"
+              },
+              {
+                "name": "dmSegY",
+                "type": "Dmseg"
+              },
+              {
+                "name": "dmSegZ",
+                "type": "Dmseg"
+              }
+            ],
+            "states": [
+              {
+                "name": "ticks/s",
+                "type": "uint32",
+                "value": "65535"
+              },
+              {
+                "name": "steps/u",
+                "type": "uint32",
+                "value": "200"
+              }
             ]
           }
         ]
diff --git a/typeset.js b/typeset.js
index 0de90e6..d9f2b13 100644
--- a/typeset.js
+++ b/typeset.js
@@ -543,7 +543,6 @@ const TSET = [
       let btarr = new Uint8Array(f32arr.buffer)
       let rtarr = Array.from(btarr)
       rtarr.unshift(this.key)
-      console.log('MDseg bytes', rtarr)
       return rtarr
     },
     read: function(arr, start) {
diff --git a/view/vptch.js b/view/vptch.js
index 226dd46..30225c9 100644
--- a/view/vptch.js
+++ b/view/vptch.js
@@ -114,8 +114,8 @@ function PatchSet(View, MsgBox) {
         // what we want,
         let spec = patch.hunks[n]
         let existing = view.defs[n]
-        if(debug) console.log(`PATCH ${view.interpreterName}: hunkmerge, at ${n}`)
-        if(debug){
+        if (debug) console.log(`PATCH ${view.interpreterName}: hunkmerge, at ${n}`)
+        if (debug) {
           console.log('view shows:', view.defs[n])
           console.log('patch wants:', patch.hunks[n])
         }
@@ -128,22 +128,26 @@ function PatchSet(View, MsgBox) {
           } else {
             // check state,
             for (let st in existing.states) {
-              if (existing.states[st].value === spec.states[st].value) continue
-              // oh boy
-              //console.log(`${n} UPPER BOUND STATECHANGE CALL`)
-              try {
-                if(debug) console.log(`PATCH ${view.interpreterName}: req change for state: ${existing.states[st].name}`)
-                await view.requestStateChange(existing.states[st], spec.states[st].value)
-              } catch (err) {
-                reject(`error in requesting state change during patch merge ${err}`)
+              // check if each exists, tho
+              if (spec.states[st]) {
+                if (existing.states[st].value === spec.states[st].value) continue
+              } else {
+                // oh boy
+                //console.log(`${n} UPPER BOUND STATECHANGE CALL`)
+                try {
+                  if (debug) console.log(`PATCH ${view.interpreterName}: req change for state: ${existing.states[st].name}`)
+                  await view.requestStateChange(existing.states[st], spec.states[st].value)
+                } catch (err) {
+                  reject(`error in requesting state change during patch merge ${err}`)
+                }
+                //console.log(`${n} LOWER BOUND STATECHANGE CALL`)
               }
-              //console.log(`${n} LOWER BOUND STATECHANGE CALL`)
             }
           }
         } else {
           // not existing, so just a straightforward add
           try {
-            if(debug) console.log(`PATCH ${view.interpreterName}: req add new hunk of type ${spec.type} and name ${spec.name}`)
+            if (debug) console.log(`PATCH ${view.interpreterName}: req add new hunk of type ${spec.type} and name ${spec.name}`)
             await view.requestAddHunk(spec.type, spec.name, spec.states).then((def) => {
               loadedDefsList.push(def)
             })
-- 
GitLab