Browse files


  • Loading branch information...
cfry committed Nov 21, 2017
1 parent 4f2808e commit a83e99953c3e7ba65f685a0a75c7064bfc3f3259
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -8,8 +8,8 @@
<details class="doc_details"><summary>About</summary>
This is <a href="" target="_blank">Dexter</a> Development Environment<br/>
version: <span id="dde_version_id">2.2.5</span><br/>
released: <span id="dde_release_date_id">Nov 16, 2017</span>
version: <span id="dde_version_id">2.2.6</span><br/>
released: <span id="dde_release_date_id">Nov 21, 2017</span>
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,
@@ -2392,6 +2392,54 @@
they already were.
<details class="doc_details"><summary>Any Array of Instructions</summary>
Any valid instruction can be wrapped in an array of any length
and put on a do_list. This is often useful when you have a function
that makes a number of instuctions. The instructions need not be of the same type.
An empty array is valid but will have no effect.<br/>
Arrays may be nested to any depth.<br/>
<pre><code>new Job({name: "Job1",
do_list: [[Dexter.move_all_joints([10, 20, 0, 0, 0]), Robot.out("did it")],
let result = []
for(let ang = 0; ang <= 90; ang += 15){
result.push(Dexter.move_all_joints([ang, 0,0,0,0,]))
return result
The first insruction above puts 1 array with two instructions on the do_list.
Both will be run in order.
The second instruction, an anonymous function definition,
creates an array of <code>Dexter.move_all_joints</code> instructions.
Those instructions have Joint 1 increasing in angles from 0 through 90,
incrementing by 15 degrees.
If we have a function (fun1) which returns an array of instructions, and a second
function (fun2) that returns a different array of instructions,
and we wanted to return them all, we could write:
<pre><code>new Job({name: "Job1",
do_list: function(){ return [fun1(), fun2()] }
We could also write:
<pre><code>new Job({name: "Job1",
do_list: function(){ return [fun1, fun2] }
as long as those functions take no arguments.<br/>
We could also just put both at top level on the do_list,
i.e. <pre><code title="unEVALable"<img src="doc/processor_board_jumpers.png" alt="processor board jumpers picture."/><br/>>new Job({name: "Job1",
do_list: [fun1, fun2]
DDE gives you lots of options!
<details class="doc_details"><summary>"debugger"</summary>
The literal string <code>"debugger"</code> is a valid do_list instruction
that will allow you to pause and step through the rest of the instructions.
@@ -2952,7 +3000,7 @@
</details> <!-- End Brain -->
<details id="Dexter_doc_id" class="doc_details"><summary>Dexter</summary>
<b>Dexter</b> Dexter can perform instructions that command it to move. After it does
Dexter can perform instructions that command it to move. After it does
an instruction, it sends back information from its sensors confirming where it has moved
and additional data. This data can be used in subsequent instructions to both verify
Dexter's position as well as respond to forces on the arm and other sensor data.
@@ -3138,7 +3186,7 @@
end effector at the given x, y, z location. It is complicated by the fact that
usually there is more than one configuration of Dexter's joints that
can achieve that position and that Dexter is inherently limited by the
lengths of its links.
lengths of its links.<br/>
<b>xyz</b> tells Dexter to position its end effector to a position.
An array of 3 numbers, each indicating meters from the position 0, 0, 0
@@ -3222,7 +3270,12 @@
the possible options, some configurations will be impossible with some xyz settings and/or
J5_direction settings. Impossible settings cause an error.<br/>
If config is null, then the config set by the previous instruction in DDE
that set config is used.
that set config is used.<br/>
<img width="350" src="doc/coor_images/Coordinate_System_Iso.PNG" alt="Coordinate_System picture."/><br/>
<img width="350" src="doc/coor_images/Coordinate_System_Top.PNG" alt="Coordinate_System picture."/><br/>
<img width="350" src="doc/coor_images/Direction_Vector.PNG" alt="Coordinate_System picture."/><br/>
<img width="350" src="doc/coor_images/Tooltip_Location.PNG" alt="Coordinate_System picture."/><br/>
<button onclick="show_configurations_image()">Show Configurations Image</button>
</details> <!--end move_to -->
<details id="Dexter.move_to_relative_doc_id" class="doc_details"><summary>move_to_relative</summary>
@@ -5,7 +5,39 @@
.doc_details summary { font-weight: 600; }
<details class="doc_details"><summary>v 2.2.3, Nov 15, 2017</summary>
<details class="doc_details"><summary>v 2.2.6, Nov 20, 2017</summary>
Highlights: Bug fixes and improved doc.
<li> Fixed release notes formatting that caused
hiding of know issues and other release notes at top level under
release notes.</li>
<li> More explicit error messages when the "Dexter.move_" instructions
are out of range.</li>
<li> When a job is defined that has a job of that definiton active,
that active job is stopped automatically.
The time allowed for that job to stop
was 3 times the inter_do_item_dur. Now its 200ms.</li>
<li> Fixed simulator joint 5, changed sign.</li>
<li> "B" oplet added. "set_boundries"</li>
<li> New section of ref man: Robot/Robot Instructions/Any Array of Instructions</li>
<li> Inspector: improved printing of 2D arrays.</li>
<li> 5 Informative and pretty pictures on coordinates added to
Ref Man/Dexter/Dexter Instructions/move_to</li>
<li> If the save (on eval) checkbox is checked and the user quits the application,
the current file is saved.</li>
<details class="doc_details"><summary>v 2.2.3, Nov 16, 2017</summary>
Highlight: Calibrate fixes, Convert v1 to v2 doc more complete.
<li> Calibrate button: "Start FindHome" bugs fixed, now functional.</li>
@@ -18,7 +50,7 @@
<li> inter_do_item_dur: changed from 0.91 to 0.001 (1 millisecond.</li>
<details class="doc_details"><summary>v 2.2.2, Nov 15, 2017</summary>
Highlights: Bug fixes in calibrate, support for converting code from DDE 1 to DDE 2.
New insructions: Robot.unsuspend, Human.enter_filepath
@@ -261,4 +261,14 @@ function init_doc(){
file_content(__dirname + "/doc/known_issues.html") +
doc_pane_content_id.innerHTML = content
function show_configurations_image(){
title: "Dexter Configurations",
content: `
<img width="800" src="doc/coor_images/Configurations.png"/>
x:0, y:0, width:830, height:670
@@ -17,6 +17,8 @@ require("codemirror/addon/fold/brace-fold.js")
const ipcRenderer = require('electron').ipcRenderer
var myCodeMirror
function Editor(){} //just a namespace of *some* internal fns
@@ -381,6 +383,13 @@ Editor.save_current_file = function(){
write_file(Editor.current_file_path, Editor.get_javascript())
window.onbeforeunload = function(event){
if ((Editor.current_file_path != "new file") &&
//called by the File menu "Save" item and Cmd-s keystroke = function() {
if (Editor.current_file_path == "new file"){ Editor.save_as() }
@@ -113,7 +113,8 @@ function inspect_aux(item, stack_number, in_stack_position, increase_max_display
let div_id = make_inspector_id_string(stack_number, in_stack_position)
let max_display_factor = (increase_max_display_length ? 2 : 1)
if (array_type){ //return "Array of " + item.length
if ((item.length > 0) && Array.isArray(item[0])) { //2D arrays can't be "typed arrays"
if ((item.length > 0) && is_array_of_same_lengthed_arrays(item)) { //2D arrays can't be "typed arrays"
//all elts of item are arrays, but they might be of different lengths.
title = "A 2D Array of " + item.length + "x" + item[0].length
result = inspect_format_2D_array(item)
@@ -379,7 +380,10 @@ function inspect_format_2D_array(item){
else { content = j }
else if(j == -1) { content = i }
else { content = item[i][j] }
else {
let data = item[i][j]
content = (inspect_is_primitive(data) ? JSON.stringify(data) : ("" + data))
result += tag_start + content + tag_end
result += "</tr>\n"
Oops, something went wrong.

0 comments on commit a83e999

Please sign in to comment.