diff --git a/HCA/ipg_to_json.js b/HCA/ipg_to_json.js index dd5d6bde..88cfab6e 100644 --- a/HCA/ipg_to_json.js +++ b/HCA/ipg_to_json.js @@ -373,7 +373,7 @@ grab_io('(myt "myn ame", myt2 myn2)') grab_io(str) */ static grab_io(str, start_index=0) { - if(str.includes("MSB008 MSB008)")) { debugger; } + if(str.includes("MSB008 MSB008)")) { } let cur_term = "" let cur_pair let pair_array = [] //the main result diff --git a/core/index.js b/core/index.js index db70b889..a17475ad 100644 --- a/core/index.js +++ b/core/index.js @@ -1,5 +1,5 @@ -global.dde_version = "3.8.13" //require("../package.json").version -global.dde_release_date = "Nov 24, 2022" //require("../package.json").release_date +global.dde_version = "3.8.14" //require("../package.json").version +global.dde_release_date = "Mar 24, 2022" //require("../package.json").release_date console.log("dde_version: " + global.dde_version + " dde_release_date: " + global.dde_release_date + "\nRead electron_dde/core/job_engine_doc.txt for how to use the Job Engine.\n") diff --git a/core/robot.js b/core/robot.js index 2c670823..6a68fdec 100644 --- a/core/robot.js +++ b/core/robot.js @@ -1441,6 +1441,16 @@ Dexter = class Dexter extends Robot { else if((error_code !== 0) && (oplet !== "r")){ //we've got an error //job_instance.stop_for_reason("errored", "Robot status got error: " + error_code) job_instance.wait_until_instruction_id_has_run = null //but don't increment PC + let busy_job_array_copy = rob.busy_job_array.slice() + rob.clear_busy_job_array() //so that the other jobs that I call set_up_next_do, won't hang up because they are busy, + //because they no longer should be busy, because we got back our ack from Dexter that was keeping them busy, + for(let busy_job of busy_job_array_copy){ + if(busy_job === job_instance) {} //let this pass through to the below as the passed in robot_status is from this instrr and this job_instance + else { + busy_job.set_up_next_do(0) //now execute the instr at the PC in an OTHER job, without advancing it. + return + } + } let instruction_to_run_when_error = job_instance.if_robot_status_error //.call(job_instance, robot_status) if(instruction_to_run_when_error){ //note instruction_to_run_when_error can be a single instruction or an array @@ -1522,7 +1532,7 @@ Dexter = class Dexter extends Robot { clean_up_busy_job_array(){ let result = [] for(let a_job of this.busy_job_array){ - if(a_job.is_active()) { //remove inactive jobs from busy_job_array by preserviong the still active ones + if(a_job.is_active()) { //remove inactive jobs from busy_job_array by preserving the still active ones if(!result.includes(a_job)) { //remove duplicates result.push(a_job) } diff --git a/core/socket.js b/core/socket.js index e56183d2..29bccd40 100755 --- a/core/socket.js +++ b/core/socket.js @@ -633,6 +633,11 @@ var Socket = class Socket{ let job_id = robot_status[Dexter.JOB_ID] let job_instance = Job.job_id_to_job_instance(job_id) //out(job_instance.name + " " + rob.name + " bottom of Socket.on_receive with: " + robot_status) + + if(oplet === "M"){ //todo just temporary for testing. remove. + robot_status[Dexter.ERROR_CODE] = 9 + } + dexter_instance.robot_done_with_instruction(robot_status) //robot_status ERROR_CODE *might* be 1 } diff --git a/doc/guide.html b/doc/guide.html index fa01e668..3406ee30 100644 --- a/doc/guide.html +++ b/doc/guide.html @@ -8,8 +8,8 @@
About This is Dexter Development Environment
- version: 3.8.13
- released: Nov 24, 2022 + version: 3.8.14
+ released: Mar 24, 2022

DDE helps you create, debug, and send software to a Dexter robot. You can use any JavaScript augmented with DDE-specific functions to help find out about, diff --git a/doc/release_notes.html b/doc/release_notes.html index e1e527d6..7840817a 100644 --- a/doc/release_notes.html +++ b/doc/release_notes.html @@ -6,6 +6,25 @@ .doc_details summary { font-weight: 600; } +
v 3.8.14, Mar 24, 2023 +Highlights mathjs installed, fixes and extensions for class Vector that uses mathjs. + Fix and extension for Defaults.make_ins processing. + +
v 3.8.13, Nov 24, 2022 Highlights: Big fixes to Dexter.defaults, zip file support