pull/339/head
unknown 2024-07-23 22:49:47 +02:00
rodzic 61f415bcc0
commit 1f5fa25959
19 zmienionych plików z 372 dodań i 3984 usunięć

Wyświetl plik

@ -1,9 +1,13 @@
v1.0.381:
- Added additional board support to Flashing tools
- Fixed linebreak on realtime feedrate indicator
- Updated esptool for Windows
- Updated esptool for Windows, Mac and Linux
- Improved USB ID Descriptions handling
- Added more grblHAL settings descriptions
- Clean up Diagnostic Menu
- Improved Servo Calibration Wizard to take Grbl Settings into account, and start at center-of-travel for calibration tool (Fix #362)
- Default all machine profiles to have Limits enabled by default - been a couple years since we've started including limit switches as standard
- Added quick search to Grbl Settings table (Note new search overwrites any changes, make sure to save before changing search)
v1.0.380:
- Test Fix for grblHAL startup alarm lock
v1.0.379:

Wyświetl plik

@ -179,7 +179,7 @@ select {
}
.openbuilds-switch .check::after {
background: rgb(64, 68, 71) !important;
: rgb(64, 68, 71) !important;
border-color: rgb(64, 68, 71) !important;
}
@ -263,12 +263,17 @@ select {
background-image: linear-gradient(to top, #888888, #ffffff, #888888);
}
/* html {
background: black;
background-color: black;
filter: invert(1) hue-rotate(180deg);
}
img {
filter: invert(1) hue-rotate(180deg);
} */
.machine-profile-menu {
border: 1px solid rgb(64, 68, 71);
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.6),
/* Darker shadow for all sides */
0 4px 8px rgba(0, 0, 0, 0.4);
/* Additional dark shadow */
border-radius: 3px;
/* Optional: Adds rounded corners */
padding: 10px;
/* Optional: Adds some padding inside the div */
background: white;
left: 20px;
margin-top: 10px;
}

Wyświetl plik

@ -321,6 +321,7 @@
<div class="group">
<div>
<!-- Still used with browser based Open - don't delete -->
<button id="openGcodeBtn" class="ribbon-button dropdown-toggle" title="Open a GCODE file">
<span class="icon">
<span class="far fa-folder-open fg-amber"></span>
@ -340,6 +341,7 @@
</div>
<div>
<!-- Used in Electron only -->
<button id="openGcodeBtnElectron19" class="ribbon-button dropdown-toggle" title="Open a GCODE file">
<span class="icon">
<span class="far fa-folder-open fg-amber"></span>
@ -511,10 +513,10 @@
<li onclick="populateSurfaceToolForm();"><a href="#"><i class="fas fa-exchange-alt"></i> Surfacing / Flattening Wizard</a></li>
<li onclick="jogWidget();"><a href="#"><i class="fas fa-mobile-alt"></i> Mobile Jog Widget</a></li>
<li class="divider fg-gray"></li>
<li class="disabled grblCalibrationMenu" onclick="xstepscalibrate();"><a href="#"><i class="fas fa-wrench fa-fw"></i> Calibrate X-Axes Steps/mm</a></li>
<li class="disabled grblCalibrationMenu" onclick="ystepscalibrate();"><a href="#"><i class="fas fa-wrench fa-fw"></i> Calibrate Y-Axes Steps/mm</a></li>
<li class="disabled grblCalibrationMenu" onclick="zstepscalibrate();"><a href="#"><i class="fas fa-wrench fa-fw"></i> Calibrate Z-Axes Steps/mm</a></li>
<li class="disabled grblCalibrationMenu servo-active" onclick="servocalibrate();"><a href="#"><i class="fas fa-wrench fa-fw"></i> Calibrate Servo Pen Up/Down</a></li>
<li class="disabled grblCalibrationMenu" onclick="xstepscalibrate();"><a href="#"><i class="fas fa-arrows-alt-h fa-fw"></i> Calibrate X-Axes Steps/mm</a></li>
<li class="disabled grblCalibrationMenu" onclick="ystepscalibrate();"><a href="#"><i class="fas fa-arrows-alt-v fa-fw"></i> Calibrate Y-Axes Steps/mm</a></li>
<li class="disabled grblCalibrationMenu" onclick="zstepscalibrate();"><a href="#"><i class="fas fas fa-sort-amount-down-alt fa-fw"></i> Calibrate Z-Axes Steps/mm</a></li>
<li class="disabled grblCalibrationMenu servo-active" onclick="servocalibrate();"><a href="#"><i class="fas fa-pen fa-fw"></i> Calibrate Servo Pen Up/Down</a></li>
<li class="divider fg-gray"></li>
<li onclick="keyboardShortcutsEditor();"><a href="#"><i class="far fa-edit fa-fw"></i> Customize Keyboard Shortcuts</a></li>
<li class="divider fg-gray"></li>
@ -595,10 +597,6 @@
<li onclick="disableSerialLog =! disableSerialLog; saveDiagnostics(); location.reload();" id="disableSerialLogTick"><a href="#"><i class="fas fa-fw fa-terminal"></i> Disable Serial Log</a></li>
<li onclick="disableDROupdates = !disableDROupdates; saveDiagnostics(); location.reload();" id="disableDROupdatesTick"><a href="#"><i class="fas fa-fw fa-list-ol"></i> Disable DRO/Status Updates</a></li>
<li class="divider"></li>
<li onclick="disableElectron19FileOpen = !disableElectron19FileOpen; saveDiagnostics(); location.reload();" id="disableElectron19FileOpenTick"><a href="#"><i class="far fa-folder-open fa-fw"></i> Disable Native File Open
Dialog</a>
</li>
</div>
<span class="title">Settings</span>
</div>

Wyświetl plik

@ -5,7 +5,6 @@ var disable3Drealtimepos = false;
var disable3Dgcodepreview = false;
var disableSerialLog = false; // todo also hide tab when set to true
var disableDROupdates = false;
var disableElectron19FileOpen = false;
function saveDiagnostics() {
localStorage.setItem('disable3Dviewer', disable3Dviewer);
@ -15,7 +14,6 @@ function saveDiagnostics() {
localStorage.setItem('disable3Dgcodepreview', disable3Dgcodepreview);
localStorage.setItem('disableSerialLog', disableSerialLog);
localStorage.setItem('disableDROupdates', disableDROupdates);
localStorage.setItem('disableElectron19FileOpen', disableElectron19FileOpen);
}
@ -85,14 +83,7 @@ function initDiagnostics() {
disableDROupdates = false;
}
if (localStorage.getItem('disableElectron19FileOpen')) {
if (JSON.parse(localStorage.getItem('disableElectron19FileOpen')) == true) {
disableElectron19FileOpen = true;
$('#disableElectron19FileOpenTick').addClass("checked");
}
} else {
disableElectron19FileOpen = false;
}
};

Wyświetl plik

@ -58,8 +58,8 @@ function selectMachine(type) {
$12: "0.002", //"Arc tolerance, millimeters"
$13: "0", //"Report in inches, boolean"
$20: "0", //"Soft limits enable, boolean"
$21: "0", //"Hard limits enable, boolean"
$22: "0", //"Homing cycle enable, boolean"
$21: "1", //"Hard limits enable, boolean"
$22: "1", //"Homing cycle enable, boolean"
$23: "3", //"Homing direction invert, mask"
$24: "100.000", //"Homing locate feed rate, mm/min"
$25: "1000.000", //"Homing search seek rate, mm/min"
@ -97,8 +97,8 @@ function selectMachine(type) {
$12: "0.002", //"Arc tolerance, millimeters"
$13: "0", //"Report in inches, boolean"
$20: "0", //"Soft limits enable, boolean"
$21: "0", //"Hard limits enable, boolean"
$22: "0", //"Homing cycle enable, boolean"
$21: "1", //"Hard limits enable, boolean"
$22: "1", //"Homing cycle enable, boolean"
$23: "3", //"Homing direction invert, mask"
$24: "100.000", //"Homing locate feed rate, mm/min"
$25: "1000.000", //"Homing search seek rate, mm/min"
@ -136,8 +136,8 @@ function selectMachine(type) {
$12: "0.002", //"Arc tolerance, millimeters"
$13: "0", //"Report in inches, boolean"
$20: "0", //"Soft limits enable, boolean"
$21: "0", //"Hard limits enable, boolean"
$22: "0", //"Homing cycle enable, boolean"
$21: "1", //"Hard limits enable, boolean"
$22: "1", //"Homing cycle enable, boolean"
$23: "3", //"Homing direction invert, mask"
$24: "100.000", //"Homing locate feed rate, mm/min"
$25: "1000.000", //"Homing search seek rate, mm/min"
@ -175,8 +175,8 @@ function selectMachine(type) {
$12: "0.002", //"Arc tolerance, millimeters"
$13: "0", //"Report in inches, boolean"
$20: "0", //"Soft limits enable, boolean"
$21: "0", //"Hard limits enable, boolean"
$22: "0", //"Homing cycle enable, boolean"
$21: "1", //"Hard limits enable, boolean"
$22: "1", //"Homing cycle enable, boolean"
$23: "3", //"Homing direction invert, mask"
$24: "100.000", //"Homing locate feed rate, mm/min"
$25: "1000.000", //"Homing search seek rate, mm/min"
@ -214,8 +214,8 @@ function selectMachine(type) {
$12: "0.002", //"Arc tolerance, millimeters"
$13: "0", //"Report in inches, boolean"
$20: "0", //"Soft limits enable, boolean"
$21: "0", //"Hard limits enable, boolean"
$22: "0", //"Homing cycle enable, boolean"
$21: "1", //"Hard limits enable, boolean"
$22: "1", //"Homing cycle enable, boolean"
$23: "3", //"Homing direction invert, mask"
$24: "100.000", //"Homing locate feed rate, mm/min"
$25: "1000.000", //"Homing search seek rate, mm/min"
@ -643,8 +643,8 @@ function selectMachine(type) {
$12: "0.002", //"Arc tolerance, millimeters"
$13: "0", //"Report in inches, boolean"
$20: "0", //"Soft limits enable, boolean"
$21: "0", //"Hard limits enable, boolean"
$22: "0", //"Homing cycle enable, boolean"
$21: "1", //"Hard limits enable, boolean"
$22: "1", //"Homing cycle enable, boolean"
$23: "1", //"Homing direction invert, mask"
$24: "100.000", //"Homing locate feed rate, mm/min"
$25: "500.000", //"Homing search seek rate, mm/min"
@ -682,8 +682,8 @@ function selectMachine(type) {
$12: "0.002", //"Arc tolerance, millimeters"
$13: "0", //"Report in inches, boolean"
$20: "0", //"Soft limits enable, boolean"
$21: "0", //"Hard limits enable, boolean"
$22: "0", //"Homing cycle enable, boolean"
$21: "1", //"Hard limits enable, boolean"
$22: "1", //"Homing cycle enable, boolean"
$23: "1", //"Homing direction invert, mask"
$24: "2000.000", //"Homing locate feed rate, mm/min"
$25: "1000.000", //"Homing search seek rate, mm/min"
@ -721,8 +721,8 @@ function selectMachine(type) {
$12: "0.002", //"Arc tolerance, millimeters"
$13: "0", //"Report in inches, boolean"
$20: "0", //"Soft limits enable, boolean"
$21: "0", //"Hard limits enable, boolean"
$22: "0", //"Homing cycle enable, boolean"
$21: "1", //"Hard limits enable, boolean"
$22: "1", //"Homing cycle enable, boolean"
$23: "0", //"Homing direction invert, mask"
$24: "2000.000", //"Homing locate feed rate, mm/min"
$25: "1000.000", //"Homing search seek rate, mm/min"
@ -760,8 +760,8 @@ function selectMachine(type) {
$12: "0.002", //"Arc tolerance, millimeters"
$13: "0", //"Report in inches, boolean"
$20: "0", //"Soft limits enable, boolean"
$21: "0", //"Hard limits enable, boolean"
$22: "0", //"Homing cycle enable, boolean"
$21: "1", //"Hard limits enable, boolean"
$22: "1", //"Homing cycle enable, boolean"
$23: "3", //"Homing direction invert, mask"
$24: "100.000", //"Homing locate feed rate, mm/min"
$25: "1000.000", //"Homing search seek rate, mm/min"
@ -799,8 +799,8 @@ function selectMachine(type) {
$12: "0.002", //"Arc tolerance, millimeters"
$13: "0", //"Report in inches, boolean"
$20: "0", //"Soft limits enable, boolean"
$21: "0", //"Hard limits enable, boolean"
$22: "0", //"Homing cycle enable, boolean"
$21: "1", //"Hard limits enable, boolean"
$22: "1", //"Homing cycle enable, boolean"
$23: "1", //"Homing direction invert, mask"
$24: "100.000", //"Homing locate feed rate, mm/min"
$25: "1500.000", //"Homing search seek rate, mm/min"
@ -838,8 +838,8 @@ function selectMachine(type) {
$12: "0.002", //"Arc tolerance, millimeters"
$13: "0", //"Report in inches, boolean"
$20: "0", //"Soft limits enable, boolean"
$21: "0", //"Hard limits enable, boolean"
$22: "0", //"Homing cycle enable, boolean"
$21: "1", //"Hard limits enable, boolean"
$22: "1", //"Homing cycle enable, boolean"
$23: "3", //"Homing direction invert, mask"
$24: "100.000", //"Homing locate feed rate, mm/min"
$25: "2000.000", //"Homing search seek rate, mm/min"
@ -877,8 +877,8 @@ function selectMachine(type) {
$12: "0.002", //"Arc tolerance, millimeters"
$13: "0", //"Report in inches, boolean"
$20: "0", //"Soft limits enable, boolean"
$21: "0", //"Hard limits enable, boolean"
$22: "0", //"Homing cycle enable, boolean"
$21: "1", //"Hard limits enable, boolean"
$22: "1", //"Homing cycle enable, boolean"
$23: "3", //"Homing direction invert, mask"
$24: "100.000", //"Homing locate feed rate, mm/min"
$25: "1000.000", //"Homing search seek rate, mm/min"
@ -916,8 +916,8 @@ function selectMachine(type) {
$12: "0.002", //"Arc tolerance, millimeters"
$13: "0", //"Report in inches, boolean"
$20: "0", //"Soft limits enable, boolean"
$21: "0", //"Hard limits enable, boolean"
$22: "0", //"Homing cycle enable, boolean"
$21: "1", //"Hard limits enable, boolean"
$22: "1", //"Homing cycle enable, boolean"
$23: "3", //"Homing direction invert, mask"
$24: "100.000", //"Homing locate feed rate, mm/min"
$25: "1000.000", //"Homing search seek rate, mm/min"
@ -956,7 +956,6 @@ function selectMachine(type) {
}, 500);
checkifchanged();
enableLimits(); // Enable or Disable
displayDirInvert();
setMachineButton(type);
@ -1098,7 +1097,7 @@ function setMachineButton(type) {
template = `<img src="img/mch/` + type + `.png"/> Custom Machine`
overlaytype = type;
} else {
template = `<img src="img/mch/sphinx55.png"/> Select Machine`
template = `<img src="img/mch/leadmachine1010.png"/> Select your machine type from the list:`
overlaytype = "custom"
}
$('#context_toggle2').html(template);

Wyświetl plik

@ -25,50 +25,59 @@ var grblSettingsTemplate2 = {
title: `Step direction invert, mask`,
description: `This setting inverts the direction signal for each axis. By default, Grbl assumes that the axes move in a positive direction when the direction pin signal is low, and a negative direction when the pin is high. Often, axes don't move this way with some machines. This setting will invert the direction pin signal for those axes that move the opposite way.`,
template: `<input id="val-3-input" readonly type="hidden" />
<table style="width: 100%;">
<tr>
<td><span class="text-small">X</span>
</td>
<td><span class="text-small">Normal</span>
</td>
<td class="pb-1">
<label class="toggle">
<input type="checkbox" id="xdirinvert" />
<div>app-notification</div>
</label>
</td>
<td><span class="text-small">Reversed</span>
</td>
</tr>
<tr>
<td><span class="text-small">Y</span>
</td>
<td><span class="text-small">Normal</span>
</td>
<td class="pb-1">
<label class="toggle">
<input type="checkbox" id="ydirinvert" />
<div>app-notification</div>
</label>
</td>
<td><span class="text-small">Reversed</span>
</td>
</tr>
<tr>
<td><span class="text-small">Z</span>
</td>
<td><span class="text-small">Normal</span>
</td>
<td class="pb-1">
<label class="toggle">
<input type="checkbox" id="zdirinvert" />
<div>app-notification</div>
</label>
</td>
<td><span class="text-small">Reversed</span>
</td>
</tr>
</table>`,
<div class="row">
<div class="cell">
<span class="text-small">X</span>
</div>
<div class="cell">
<span class="text-small">Normal</span>
</div>
<div class="cell pb-1">
<label class="toggle">
<input type="checkbox" id="xdirinvert">
<div class="app-notification">app-notification</div>
</label>
</div>
<div class="cell">
<span class="text-small">Reversed</span>
</div>
</div>
<div class="row">
<div class="cell">
<span class="text-small">Y</span>
</div>
<div class="cell">
<span class="text-small">Normal</span>
</div>
<div class="cell pb-1">
<label class="toggle">
<input type="checkbox" id="ydirinvert">
<div class="app-notification">app-notification</div>
</label>
</div>
<div class="cell">
<span class="text-small">Reversed</span>
</div>
</div>
<div class="row">
<div class="cell">
<span class="text-small">Z</span>
</div>
<div class="cell">
<span class="text-small">Normal</span>
</div>
<div class="cell pb-1">
<label class="toggle">
<input type="checkbox" id="zdirinvert">
<div class="app-notification">app-notification</div>
</label>
</div>
<div class="cell">
<span class="text-small">Reversed</span>
</div>
</div>
`,
utils: ``
},
4: {
@ -160,50 +169,59 @@ var grblSettingsTemplate2 = {
title: `Homing direction invert, mask`,
description: `By default, Grbl assumes your homing limit switches are in the positive direction, first moving the z-axis positive, then the x-y axes positive before trying to precisely locate machine zero by going back and forth slowly around the switch. If your machine has a limit switch in the negative direction, the homing direction mask can invert the axes' direction. It works just like the step port invert and direction port invert masks, where all you have to do is send the value in the table to indicate what axes you want to invert and search for in the opposite direction.`,
template: `<input id="val-23-input" readonly type="hidden">
<table style="width: 100%;">
<tr>
<td><span class="text-small">X</span>
</td>
<td><span class="text-small">Min</span>
</td>
<td class="pb-1">
<label class="toggle">
<input type="checkbox" id="xHomeDir" />
<div>app-notification</div>
</label>
</td>
<td><span class="text-small">Max</span>
</td>
</tr>
<tr>
<td><span class="text-small">Y</span>
</td>
<td><span class="text-small">Min</span>
</td>
<td class="pb-1">
<label class="toggle">
<input type="checkbox" id="yHomeDir" />
<div>app-notification</div>
</label>
</td>
<td><span class="text-small">Max</span>
</td>
</tr>
<tr>
<td><span class="text-small">Z</span>
</td>
<td><span class="text-small">Min</span>
</td>
<td class="pb-1">
<label class="toggle">
<input type="checkbox" id="zHomeDir" />
<div>app-notification</div>
</label>
</td>
<td><span class="text-small">Max</span>
</td>
</tr>
</table>`,
<div class="row">
<div class="cell">
<span class="text-small">X</span>
</div>
<div class="cell">
<span class="text-small">Min</span>
</div>
<div class="cell pb-1">
<label class="toggle">
<input type="checkbox" id="xHomeDir">
<div class="app-notification">app-notification</div>
</label>
</div>
<div class="cell">
<span class="text-small">Max</span>
</div>
</div>
<div class="row">
<div class="cell">
<span class="text-small">Y</span>
</div>
<div class="cell">
<span class="text-small">Min</span>
</div>
<div class="cell pb-1">
<label class="toggle">
<input type="checkbox" id="yHomeDir">
<div class="app-notification">app-notification</div>
</label>
</div>
<div class="cell">
<span class="text-small">Max</span>
</div>
</div>
<div class="row">
<div class="cell">
<span class="text-small">Z</span>
</div>
<div class="cell">
<span class="text-small">Min</span>
</div>
<div class="cell pb-1">
<label class="toggle">
<input type="checkbox" id="zHomeDir">
<div class="app-notification">app-notification</div>
</label>
</div>
<div class="cell">
<span class="text-small">Max</span>
</div>
</div>
`,
utils: ``
},
24: {
@ -930,7 +948,7 @@ var grblSettingsTemplate2 = {
},
536: {
key: `$536`,
title: `Neopixel strip 1 length, max: 255`,
title: `Neopixel LED strip length, max: 255`,
description: `WS2812B LED strip length, max: 255`,
template: `<input id="val-536-input" data-role="input" data-clear-button="false" data-append="LEDs" type="number" >`,
utils: ``

Wyświetl plik

@ -34,7 +34,6 @@ function loadGrblBackupFile(f) {
};
checkifchanged();
enableLimits(); // Enable or Disable
displayDirInvert();
}
}
@ -135,14 +134,16 @@ function grblPopulate() {
<div id="grblProfileSection">
<h6 class="fg-dark"><i class="fas fa-tasks fg-blue"></i> 1. Load Machine Profile<br>
<small>Loads our standard Machine Profiles to your controller. If you have built a machine exactly to specification this is all your need. If you made modifications, or built a custom machine, you can customize the parameters below. Remember to click SAVE when done</small>
<small>Loads our standard Machine Profiles to your controller. If you have built a machine exactly to specification this is all your need. If you made modifications, or built a custom machine, you can customize the parameters in Section (2) below. Remember to click <u>SAVE TO FIRMWARE</u> to save the settings to your controller</small>
</h6>
<div class="grid">
<div class="row">
<div class="cell-8">
<a style="width: 100%;" class="button dropdown-toggle bd-dark dark outline" id="context_toggle2"><img src="img/mch/sphinx55.png"/> Select Machine</a>
<ul class="ribbon-dropdown" data-role="dropdown" data-duration="100">
<div class="grid">
<div class="row">
<div class="cell-12">
<a style="width: 100%;" class="button dropdown-toggle bd-dark dark outline" id="context_toggle2"><img src="img/mch/leadmachine1010.png"/> Select your machine type from the list:</a>
<ul class="ribbon-dropdown machine-profile-menu" data-role="dropdown" data-duration="100">
<li><a href="#" onclick="selectMachine('custom');"><img src="img/mch/custom.png" width="16px"/> CUSTOM Machine (Profile sets sane defaults)</a></li>
<li>
<a href="#" class="dropdown-toggle"><img src="img/mch/acro55.png" width="16px"/> OpenBuilds Acro</a>
<ul class="ribbon-dropdown" data-role="dropdown">
@ -195,52 +196,48 @@ function grblPopulate() {
<li onclick="selectMachine('workbee1510');"><a href="#"><img src="img/mch/workbee1510.png" width="16px"/> OpenBuilds WorkBee 1510</a></li>
</ul>
</li>
<li><a href="#" onclick="selectMachine('custom');"><img src="img/mch/custom.png" width="16px"/> CUSTOM Machine</a></li>
</ul>
</div>
<div class="cell-4">
<input id="limitsinstalled" data-cls-caption="fg-openbuilds" data-cls-check="bd-openbuilds openbuilds-switch" data-cls-switch="openbuilds-switch" type="checkbox" data-role="switch" data-caption="Limit&nbsp;Switches&nbsp;Installed">
</div>
</div>
</div>
<hr class="bg-openbuilds">
</div> <!-- End grblProfileSection -->
<h6 class="fg-dark"><i class="fas fa-cogs fg-lightOrange"></i> 2. Customize Profile (Optional)<br><small>Customise your Grbl settings below. For custom machines, modifications and also for fine tuning your machine profile. Remember to make a BACKUP so you don't lose your customized settings</small></h6>
<h6 class="fg-dark"><i class="fas fa-cogs fg-lightOrange"></i> 2. Customize Profile (Optional)<br><small>Customise your Grbl settings below. For custom machines, modifications and also for fine tuning your machine profile. Remember to make a <u>BACKUP</u> so you don't lose your customized settings</small></h6>
<div id="grblSettingsTableView" style="overflow-y: scroll; height: calc(100vh - 460px); max-height: calc(100vh - 460px);">
<table class="table compact striped row-hover row-border" data-show-rows-steps="false" data-rows="200" data-show-pagination="false" data-show-table-info="false" data-show-search="true">
<div id="grblSettingsTableView" style="overflow-y: scroll; height: calc(100vh - 510px); max-height: calc(100vh - 460px);">
<table data-role="table" data-table-search-title="Search for Parameters by Name or $-Key" data-search-fields="Key, Parameter" data-on-draw="setup_settings_table" data-on-table-create="setup_settings_table" data-cell-wrapper="false" class="table compact striped row-hover row-border" data-show-rows-steps="false" data-rows="200" data-show-pagination="false" data-show-table-info="true" data-show-search="true">
<thead>
<tr>
<th style="text-align: left;">Key</th>
<th style="text-align: left;">Parameter</th>
<th style="width: 250px; min-width: 240px !important;">Value</th>
<th style="width: 110px; min-width: 110px !important;">Utility</th>
</tr>
</thead>
<tbody>`
<tbody>
<tr>
<th style="text-align: left;">Key</th>
<th style="text-align: left;">Parameter</th>
<th style="width: 250px; min-width: 240px !important;">Value</th>
<th style="width: 110px; min-width: 110px !important;">Utility</th>
</tr>`
// Insert Table Rows here
for (key in grblParams) {
var key2 = key.split('=')[0].substr(1);
//console.log(key2)
if (grblSettingsTemplate2[key2] !== undefined) {
//template += grblSettingsTemplate2[key2].template;
template += `<tr id="grblSettingsRow` + key2 + `" title="` + grblSettingsTemplate2[key2].description + `">
<td>` + grblSettingsTemplate2[key2].key + `</td>
<td>` + grblSettingsTemplate2[key2].title + `</td>
<td>` + grblSettingsTemplate2[key2].template + `</td>
<td>` + grblSettingsTemplate2[key2].utils + `</td>
</tr>`
<td>` + grblSettingsTemplate2[key2].key + `</td>
<td>` + grblSettingsTemplate2[key2].title + `</td>
<td>` + grblSettingsTemplate2[key2].template + `</td>
<td>` + grblSettingsTemplate2[key2].utils + `</td>
</tr>`
} else {
template += `
<tr>
<td>` + key + `</td>
<td><span class="tally alert">` + key + `</span></td>
<td><input data-role="input" data-clear-button="false" data-append="?" type="text" value="` + grblParams[key] + `" id="val-` + key2 + `-input"></td>
<td></td>
</tr>
`
<tr>
<td>` + key + `</td>
<td><span class="tally alert">` + key + `</span></td>
<td><input data-role="input" data-clear-button="false" data-append="?" type="text" value="` + grblParams[key] + `" id="val-` + key2 + `-input"></td>
<td></td>
</tr>
`
}
}
@ -252,76 +249,13 @@ function grblPopulate() {
`
$('#grblconfig').append(template)
for (key in grblParams) {
var key2 = key.split('=')[0].substr(1);
$("#val-" + key2 + "-input").val(grblParams[key])
}
setTimeout(function() {
$("#val-32-input").val(parseInt(grblParams['$32'])).trigger("change");
$("#val-20-input").val(parseInt(grblParams['$20'])).trigger("change");
$("#val-21-input").val(parseInt(grblParams['$21'])).trigger("change");
$("#val-22-input").val(parseInt(grblParams['$22'])).trigger("change");
$("#val-23-input").val(parseInt(grblParams['$23'])).trigger("change");
$("#val-5-input").val(parseInt(grblParams['$5'])).trigger("change");
$("#val-6-input").val(parseInt(grblParams['$6'])).trigger("change");
$("#val-2-input").val(parseInt(grblParams['$2'])).trigger("change");
$("#val-3-input").val(parseInt(grblParams['$3'])).trigger("change");
$("#val-4-input").val(parseInt(grblParams['$4'])).trigger("change");
}, 100);;
$('#grblSettingsTable').on('keyup paste click change', 'input, select', function() {
checkifchanged()
});
// $("#grblSettingsTableView").scroll(function() {
// var scroll = $("#grblSettingsTableView").scrollTop();
// console.log('scrolling: ', scroll)
// if (scroll > 200) {
// if (allowGrblSettingsViewScroll) {
// $("#grblProfileSection").slideUp('slow');
// $("#grblSettingsTableView").css("max-height", "calc(100vh - 320px)")
// $("#grblSettingsTableView").css("height", "calc(100vh - 320px)")
// }
// } else if (scroll < 200) {
// $("#grblProfileSection").slideDown('slow')
// $("#grblSettingsTableView").css("max-height", "calc(100vh - 460px)")
// $("#grblSettingsTableView").css("height", "calc(100vh - 460px)")
// }
// });
// Event Handlers for Switch Checkboxes
setTimeout(function() {
$('#limitsinstalled:checkbox').change(function() {
enableLimits();
});
$('#xdirinvert:checkbox').change(function() {
changeDirInvert();
});
$('#ydirinvert:checkbox').change(function() {
changeDirInvert();
});
$('#zdirinvert:checkbox').change(function() {
changeDirInvert();
});
$('#xHomeDir:checkbox').change(function() {
changeProbeDirInvert();
});
$('#yHomeDir:checkbox').change(function() {
changeProbeDirInvert();
});
$('#zHomeDir:checkbox').change(function() {
changeProbeDirInvert();
});
// populare Direction Invert Checkboxes
displayDirInvert()
displayProbeDirInvert()
setup_settings_table();
}, 100)
@ -329,11 +263,9 @@ function grblPopulate() {
$('#grblSettingsBadge').hide();
if (grblParams['$21'] == 1 && grblParams['$22'] > 0) {
$('#limitsinstalled:checkbox').prop('checked', true);
$('#gotozeroMPos').removeClass('disabled')
$('#homeBtn').attr('disabled', false)
} else {
$('#limitsinstalled:checkbox').prop('checked', false);
$('#gotozeroMPos').addClass('disabled')
$('#homeBtn').attr('disabled', true)
}
@ -391,70 +323,6 @@ function checkifchanged() {
$('#saveBtn').attr('disabled', true).addClass('disabled');
$('#saveBtnIcon').removeClass('fg-grayBlue').addClass('fg-gray');
}
// if ($("#val-21-input").val() == 1 && $("#val-22-input").val() == 1) {
// $('#limitsinstalled:checkbox').prop('checked', true);
// $('#gotozeroMPos').removeClass('disabled')
// $('#homeBtn').attr('disabled', false)
// } else {
// $('#limitsinstalled:checkbox').prop('checked', false);
// $('#gotozeroMPos').addClass('disabled')
// $('#homeBtn').attr('disabled', true)
// }
// if ($("#val-21-input").val() == 1) { // Hard Limits enabled?
// if (laststatus.machine.inputs.includes('X') || laststatus.machine.inputs.includes('Y') || laststatus.machine.inputs.includes('Z')) { // But a limit is currently Active?
// console.log("created")
// for (i = 0; i < openDialogs.length; i++) {
// Metro.dialog.close(openDialogs[i]);
// }
// openDialogs.length = 0;
// var dialog = Metro.dialog.create({
// title: "Enable Hard Limits / Endstops?",
// content: `<div>You have <code>$21=1 ; Hard Limits = Enabled</code> in your settings. <br>
// We detected one or more Limits inputs as Triggered. <br>
// Please make sure none of the Limit switches are triggered before enabling Hard Limits:<p>
//
// <table class="table striped compact">
// <thead>
// <tr>
// <th style="width: 40%;">PIN</th>
// <th style="width: 60%;">Status</th>
// </tr>
// </thead>
// <tbody>
// <tr>
// <td class="pt-1 mt-0 pb-0 pt-0">X-Limit</td>
// <td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert pinstatus xpin">NOCOMM</span></td>
// </tr>
// <tr>
// <td class="pt-1 mt-0 pb-0 pt-0">Y-Limit</td>
// <td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert pinstatus ypin">NOCOMM</span></td>
// </tr>
// <tr>
// <td class="pt-1 mt-0 pb-0 pt-0">Z-Limit</td>
// <td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert pinstatus zpin">NOCOMM</span></td>
// </tr>
// </tbody>
// </table>`,
// clsDialog: 'dark',
// actions: [{
// caption: "Set 'Hard Limits' to Disabled",
// cls: "js-dialog-close",
// onclick: function() {
// $("#limitsinstalled").prop("checked", false);
// enableLimits()
// setTimeout(function() {
// checkifchanged()
// }, 400); // reset
// }
// }]
// });
// openDialogs.push(dialog);
// }
// }
}
function grblSaveSettings() {
@ -548,60 +416,6 @@ function askToResetOnGrblSettingsChange() {
}, 1000); // Just to show settings was written
}
// Old Gnea-Grbl way
// function grblSaveSettings() {
// var commands = ""
// for (var key in grblParams) {
// if (grblParams.hasOwnProperty(key)) {
// var j = key.substring(1)
// var newVal = $("#val-" + j + "-input").val();
// // Only send values that changed
// if (newVal !== undefined) {
// if (parseFloat(newVal) != parseFloat(grblParams[key])) {
// // console.log(key + ' was ' + grblParams[key] + ' but now, its ' + newVal);
// commands += key + '=' + newVal + "\n"
// // sendGcode(key + '=' + newVal) + "\n";
// }
// }
// }
// }
// console.log("commands", commands)
// socket.emit('runJob', {
// data: commands,
// isJob: false,
// fileName: ""
// });
// grblParams = {};
//
// Metro.dialog.create({
// title: "Configuration Updated. Reset Grbl?",
// content: "<div>Some changes in the Grbl Configuration only take effect after a restart/reset of the controller. Would you like to Reset the controller now?</div>",
// actions: [{
// caption: "Yes",
// cls: "js-dialog-close secondary",
// onclick: function() {
// setTimeout(function() {
// sendGcode(String.fromCharCode(0x18));
// setTimeout(function() {
// refreshGrblSettings()
// }, 1000);
// }, 400);
// }
// },
// {
// caption: "Later",
// cls: "js-dialog-close",
// onclick: function() {
// console.log("Do nothing")
// refreshGrblSettings();
// }
// }
// ]
// });
// $('#grblSettingsBadge').hide();
// }
function refreshGrblSettings() {
$('#saveBtn').attr('disabled', true).addClass('disabled');
$('#saveBtnIcon').removeClass('fg-grayBlue').addClass('fg-gray');
@ -618,37 +432,6 @@ function refreshGrblSettings() {
}
function enableLimits() {
var grblParams_lim = {
$21: "0", //"Hard limits enable, boolean"
$22: "0", //"Homing cycle enable, boolean"
}
var hasLimits = $('#limitsinstalled').is(':checked');
if (hasLimits) {
grblParams_lim.$21 = "1"; //"Hard limits enable, boolean"
grblParams_lim.$22 = "1"; //"Homing cycle enable, boolean"
} else {
grblParams_lim.$21 = "0"; //"Hard limits enable, boolean"
grblParams_lim.$22 = "0"; //"Homing cycle enable, boolean"
}
for (var key in grblParams_lim) {
if (grblParams_lim.hasOwnProperty(key)) {
var j = key.substring(1)
var newVal = $("#val-" + j + "-input").val();
// console.log("$" + j + " = " + newVal)
$("#val-" + j + "-input").val(parseFloat(grblParams_lim[key]))
}
}
allowGrblSettingsViewScroll = false;
setTimeout(function() {
allowGrblSettingsViewScroll = true;
}, 500);
checkifchanged();
var elm = document.getElementById("grblSettingsLimits");
elm.scrollIntoView(true);
}
// Calc Grbl 1.1 Invert Masks
// Call: calcDecFromMask(true, false, false)
// Return: 1
@ -789,4 +572,51 @@ function updateToolOnSValues() {
$(".ToolOnS50").html((parseInt(grblParams.$30) * 0.5).toFixed(0))
$(".ToolOnS75").html((parseInt(grblParams.$30) * 0.75).toFixed(0))
$(".ToolOnS100").html(parseInt(grblParams.$30).toFixed(0))
}
function setup_settings_table() {
for (key in grblParams) {
var key2 = key.split('=')[0].substr(1);
$("#val-" + key2 + "-input").val(grblParams[key])
}
setTimeout(function() {
$("#val-32-input").val(parseInt(grblParams['$32'])).trigger("change");
$("#val-20-input").val(parseInt(grblParams['$20'])).trigger("change");
$("#val-21-input").val(parseInt(grblParams['$21'])).trigger("change");
$("#val-22-input").val(parseInt(grblParams['$22'])).trigger("change");
$("#val-23-input").val(parseInt(grblParams['$23'])).trigger("change");
$("#val-5-input").val(parseInt(grblParams['$5'])).trigger("change");
$("#val-6-input").val(parseInt(grblParams['$6'])).trigger("change");
$("#val-2-input").val(parseInt(grblParams['$2'])).trigger("change");
$("#val-3-input").val(parseInt(grblParams['$3'])).trigger("change");
$("#val-4-input").val(parseInt(grblParams['$4'])).trigger("change");
}, 100);;
$('#xdirinvert:checkbox').change(function() {
changeDirInvert();
});
$('#ydirinvert:checkbox').change(function() {
changeDirInvert();
});
$('#zdirinvert:checkbox').change(function() {
changeDirInvert();
});
$('#xHomeDir:checkbox').change(function() {
changeProbeDirInvert();
});
$('#yHomeDir:checkbox').change(function() {
changeProbeDirInvert();
});
$('#zHomeDir:checkbox').change(function() {
changeProbeDirInvert();
});
// populare Direction Invert Checkboxes
displayDirInvert()
displayProbeDirInvert()
console.log("Updated")
}

Wyświetl plik

@ -263,27 +263,36 @@ function bindKeys() {
if (keyboardShortcuts.aM.length) {
$(document).bind('keydown', keyboardShortcuts.aM, function(event) {
event.preventDefault();
if (!event.originalEvent.repeat) {
rippleEffect($('.aM'), "#fa6800")
$('#aM').mousedown();
if (laststatus.machine.has4thAxis) {
if (!event.originalEvent.repeat) {
rippleEffect($('.aM'), "#fa6800")
$('#aM').mousedown();
}
}
});
$(document).bind('keyup', keyboardShortcuts.aM, function(event) {
event.preventDefault();
$('#aM').mouseup();
if (laststatus.machine.has4thAxis) {
$('#aM').mouseup();
}
});
}
if (keyboardShortcuts.aP.length) {
$(document).bind('keydown', keyboardShortcuts.aP, function(event) {
event.preventDefault();
if (!event.originalEvent.repeat) {
rippleEffect($('.aP'), "#fa6800")
$('#aP').mousedown();
if (laststatus.machine.has4thAxis) {
if (!event.originalEvent.repeat) {
rippleEffect($('.aP'), "#fa6800")
$('#aP').mousedown();
}
}
});
$(document).bind('keyup', keyboardShortcuts.aP, function(event) {
event.preventDefault();
$('#aP').mouseup();
if (laststatus.machine.has4thAxis) {
$('#aP').mouseup();
}
});
}
// END JOG KEYS

Wyświetl plik

@ -108,24 +108,19 @@ $(document).ready(function() {
}
// File Open Button compatible with Node 19+ dialogs
if (!disableElectron19FileOpen) {
console.log("Native Dialog not disabled in Troubleshooting")
if (navigator.userAgent.indexOf('Electron') >= 0) {
console.log("Native Dialog Button Enabled")
$("#openGcodeBtn").hide()
$("#openGcodeBtnElectron19").show()
} else {
console.log("Native Dialog Button Disabled")
$("#openGcodeBtn").show()
$("#openGcodeBtnElectron19").hide()
}
if (navigator.userAgent.indexOf('Electron') >= 0) {
console.log("Native Dialog Button Enabled")
$("#openGcodeBtn").hide()
$("#openGcodeBtnElectron19").show()
} else {
console.log("Native Dialog is Disabled in Troubleshooting")
console.log("Native Dialog Button Disabled")
$("#openGcodeBtn").show()
$("#openGcodeBtnElectron19").hide()
}
if (typeof ace !== 'undefined') {
editor = ace.edit("editor");
editor.$blockScrolling = Infinity;

Wyświetl plik

@ -9,89 +9,97 @@ function penDownSend(data) {
sendGcode("M3 S" + data);
}
var servocaltemplate = `
<div id="servocalstep1">
<table class="table">
<tr>
<td>
<img src="img/calibrate/servo/up.png">
</td>
<td>
Step 1: Find the Pen Up Value<br>
<small>This wizard, will allow you to find the S-values specific to your servo</small><hr>
<small>To get started, use the slider below to find the position where the Pen is lifted all the way up</small><br>
<center>
<input data-role="slider" data-hint-position="top" data-min="0" data-max="255" data-target="#penupval" data-on-change-value="penUpSend" id="penupslider">
<input type="text" data-role="input" data-prepend="Pen Up Value:" id="penupval" readonly data-clear-button="false">
</center>
<hr>
<center>
<small>Note: Do not push the servo into a hard-stop condition it may damage the servo. Just move it far enough to lift the pen up without straining</small>
<hr>
<button class="button success" onclick="servocalslide2();"><i class="fas fa-check"></i> Pen is now in the UP position, continue...</button>
</center>
</td>
</tr>
</table>
</div>
<div id="servocalstep2" style="display: none">
<table class="table">
<tr>
<td>
<img src="img/calibrate/servo/down.png" alt="pos2" border="0">
</td>
<td>
Step 2: Find the Pen Down Value<br>
<small>This wizard, will allow you to find the S-values specific to your servo</small><hr>
<small>To get started, use the slider below to find the position where the Pen is dropped all the way down</small><br>
<center>
<input data-role="slider" data-hint-position="top" data-min="0" data-max="255" data-target="#pendownval" id="pendownslider" data-on-change-value="penDownSend">
<input type="text" data-role="input" data-prepend="Pen Down Value:" id="pendownval" readonly data-clear-button="false">
<hr>
<small>Note: Do not push the servo into a hard-stop condition it may damage the servo. Just move it far enough to lift the pen up without straining</small>
</center>
<hr>
<center>
<button class="button success" onclick="servocalslide3();"><i class="fas fa-check"></i> Pen is now in the DOWN position, continue...</button>
</center>
</td>
</tr>
</table>
</div>
<div id="servocalstep3" style="display: none">
<table class="table">
<tr>
<td>
<img src="img/calibrate/servo/center.png" alt="pos3" border="0">
</td>
<td>
Step 3: Note the values for future use<br>
<small>You have now determined the two S-values to send to your controller to Lift the Pen Up, and drop the Pen Down</small><br>
<hr>
<center>
<input type="text" data-role="input" data-prepend="Pen Up Value:" id="penupval2" readonly data-clear-button="false">
<hr>
<input type="text" data-role="input" data-prepend="Pen Down Value:" id="pendownval2" readonly data-clear-button="false">
</center>
<hr>
<small>NB: Please <u>write down these values</u>, as you will likely need to add the values to a post processor, or your CAM software. </small><br>
<small>Also take note of the manual commands you may need:</small><br>
<small>Pen Up: <code>M3 S<span id="penupval3">0</span></code></small><br>
<small>Pen Down: <code>M3 S<span id="pendownval3">0</span></code></small><hr>
<center>
<button class="button success" onclick="closeServoCal();"><i class="fas fa-check"></i> Save and Apply</button>
</center>
</td>
</tr>
</table>
</div>
`
function servocalibrate() {
var servoMaxScale = parseInt(grblParams.$30);
var servocaltemplate = `
<div id="servocalstep1">
<table class="table">
<tr>
<td>
<img src="img/calibrate/servo/up.png">
</td>
<td>
Step 1: Find the Pen Up Value<br>
<small>This wizard, will allow you to find the S-values specific to your servo</small><hr>
<small>To get started, use the slider below to find the position where the Pen is lifted all the way up</small><br>
<center>
<input data-role="slider" data-hint-position="top" data-min="0" data-max="` + servoMaxScale + `" data-value="` + servoMaxScale / 2 + `" data-target="#penupval" data-on-change-value="penUpSend" id="penupslider">
<input type="text" data-role="input" data-prepend="Pen Up Value:" id="penupval" readonly data-clear-button="false">
</center>
<hr>
<center>
<small>Note: Do not push the servo into a hard-stop condition it may damage the servo. Just move it far enough to lift the pen up without straining</small>
<hr>
<button class="button success" onclick="servocalslide2();"><i class="fas fa-check"></i> Pen is now in the UP position, continue...</button>
</center>
</td>
</tr>
</table>
</div>
<div id="servocalstep2" style="display: none">
<table class="table">
<tr>
<td>
<img src="img/calibrate/servo/down.png" alt="pos2" border="0">
</td>
<td>
Step 2: Find the Pen Down Value<br>
<small>This wizard, will allow you to find the S-values specific to your servo</small><hr>
<small>To get started, use the slider below to find the position where the Pen is dropped all the way down</small><br>
<center>
<input data-role="slider" data-hint-position="top" data-min="0" data-max="` + servoMaxScale + `" data-value="` + servoMaxScale / 2 + `" data-target="#pendownval" id="pendownslider" data-on-change-value="penDownSend">
<input type="text" data-role="input" data-prepend="Pen Down Value:" id="pendownval" readonly data-clear-button="false">
<hr>
<small>Note: Do not push the servo into a hard-stop condition it may damage the servo. Just move it far enough to lift the pen up without straining</small>
</center>
<hr>
<center>
<button class="button success" onclick="servocalslide3();"><i class="fas fa-check"></i> Pen is now in the DOWN position, continue...</button>
</center>
</td>
</tr>
</table>
</div>
<div id="servocalstep3" style="display: none">
<table class="table">
<tr>
<td>
<img src="img/calibrate/servo/center.png" alt="pos3" border="0">
</td>
<td>
Step 3: Note the values for future use<br>
<small>You have now determined the two S-values to send to your controller to Lift the Pen Up, and drop the Pen Down</small><br>
<hr>
<center>
<input type="text" data-role="input" data-prepend="Pen Up Value:" id="penupval2" readonly data-clear-button="false">
<hr>
<input type="text" data-role="input" data-prepend="Pen Down Value:" id="pendownval2" readonly data-clear-button="false">
</center>
<hr>
<small>NB: Please <u>write down these values</u>, as you will likely need to add the values to a post processor, or your CAM software. </small><br>
<small>Also take note of the manual commands you may need:</small><br>
<small>Pen Up: <code>M3 S<span id="penupval3">0</span></code></small><br>
<small>Pen Down: <code>M3 S<span id="pendownval3">0</span></code></small><hr>
<center>
<button class="button success" onclick="closeServoCal();"><i class="fas fa-check"></i> Save and Apply</button>
</center>
</td>
</tr>
</table>
</div>
`
console.log(servocaltemplate)
Metro.dialog.create({
clsDialog: 'dark',
toTop: true,
@ -109,8 +117,8 @@ function servocalibrate() {
defaultAction: false
});
setTimeout(function() {
$('#penupslider').data('slider').val(penupval)
}, 500);
$('#penupslider').data('slider').val(servoMaxScale / 2)
}, 100);
}
@ -126,8 +134,8 @@ function servocalslide2() {
$('#servocalstep2').show();
$('#servocalstep3').hide();
setTimeout(function() {
$('#pendownslider').data('slider').val(pendownval)
}, 500);
$('#pendownslider').data('slider').val(servoMaxScale / 2)
}, 100);
}
function servocalslide3() {

Wyświetl plik

@ -54,8 +54,9 @@ function openFlashingTool() {
<!-- li><a href="#" onclick="flashToolBoard('blackbox4x');"><img src="/wizards/flashingtool2/img/bb4x-icon.png" height="32"> <b>BlackBox 4X</b></a></li -->
<li><a href="#" onclick="flashToolBoard('interfacev1');"><img src="/wizards/flashingtool2/img/interfacev1-icon.png" height="32"> <b>Interface</b></a></li>
<li><a href="#" onclick="flashToolBoard('bloxv1');"><img src="/wizards/flashingtool2/img/blox-icon.png" height="32"> <b>BLOX</b></a></li>
</ul>
</ul>`
template += `
<div class="row mt-2" id="flash-tool-blox-bootloader-row" style="display: none;">
<div class="cell-md-12 mb-1">
<p class="remark warning">

Wyświetl plik

@ -54,7 +54,7 @@ $(document).ready(function() {
if (localStorage.getItem('probeunitxyz')) {
probeunitxyz = localStorage.getItem('probeunitxyz')
$('#probeunitxyz').data('select').val(probeunitxyz)
$('#probeunitxyz').data('select').val(probeunitxyz)
}
});

Plik binarny nie jest wyświetlany.

BIN
esptool-linux 100644

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

3470
esptool.py

Plik diff jest za duży Load Diff

Wyświetl plik

@ -3543,13 +3543,13 @@ function flashBLOX(data) {
if (process.platform == 'linux') {
//path.join(__dirname, "..", "lib", "resources", "vad.onnx"),
fs.chmodSync(path.join(__dirname, "./esptool.py").replace('app.asar', 'app.asar.unpacked'), 0o755);
var child = spawn(path.join(__dirname, "./esptool.py").replace('app.asar', 'app.asar.unpacked'), esptool_opts);
fs.chmodSync(path.join(__dirname, "./esptool-linux").replace('app.asar', 'app.asar.unpacked'), 0o755);
var child = spawn(path.join(__dirname, "./esptool-linux").replace('app.asar', 'app.asar.unpacked'), esptool_opts);
} else if (process.platform == 'win32') {
var child = spawn(path.join(__dirname, "./esptool.exe").replace('app.asar', 'app.asar.unpacked'), esptool_opts);
} else if (process.platform == 'darwin') {
fs.chmodSync(path.join(__dirname, "./esptool.py").replace('app.asar', 'app.asar.unpacked'), 0o755);
var child = spawn(path.join(__dirname, "./esptool.py").replace('app.asar', 'app.asar.unpacked'), esptool_opts);
fs.chmodSync(path.join(__dirname, "./esptool-mac").replace('app.asar', 'app.asar.unpacked'), 0o755);
var child = spawn(path.join(__dirname, "./esptool-mac").replace('app.asar', 'app.asar.unpacked'), esptool_opts);
}
@ -3638,13 +3638,13 @@ function flashInterface(data) {
if (process.platform == 'linux') {
//path.join(__dirname, "..", "lib", "resources", "vad.onnx"),
fs.chmodSync(path.join(__dirname, "./esptool.py").replace('app.asar', 'app.asar.unpacked'), 0o755);
var child = spawn(path.join(__dirname, "./esptool.py").replace('app.asar', 'app.asar.unpacked'), esptool_opts);
fs.chmodSync(path.join(__dirname, "./esptool-linux").replace('app.asar', 'app.asar.unpacked'), 0o755);
var child = spawn(path.join(__dirname, "./esptool-linux").replace('app.asar', 'app.asar.unpacked'), esptool_opts);
} else if (process.platform == 'win32') {
var child = spawn(path.join(__dirname, "./esptool.exe").replace('app.asar', 'app.asar.unpacked'), esptool_opts);
} else if (process.platform == 'darwin') {
fs.chmodSync(path.join(__dirname, "./esptool.py").replace('app.asar', 'app.asar.unpacked'), 0o755);
var child = spawn(path.join(__dirname, "./esptool.py").replace('app.asar', 'app.asar.unpacked'), esptool_opts);
fs.chmodSync(path.join(__dirname, "./esptool-mac").replace('app.asar', 'app.asar.unpacked'), 0o755);
var child = spawn(path.join(__dirname, "./esptool-mac").replace('app.asar', 'app.asar.unpacked'), esptool_opts);
}
@ -3731,14 +3731,14 @@ function flashGrblHal(data) {
}
if (process.platform == 'linux') {
fs.chmodSync(path.join(__dirname, "./esptool.py").replace('app.asar', 'app.asar.unpacked'), 0o755);
var child = spawn(path.join(__dirname, "./esptool.py").replace('app.asar', 'app.asar.unpacked'), esptool_opts);
fs.chmodSync(path.join(__dirname, "./esptool-linux").replace('app.asar', 'app.asar.unpacked'), 0o755);
var child = spawn(path.join(__dirname, "./esptool-linux").replace('app.asar', 'app.asar.unpacked'), esptool_opts);
} else if (process.platform == 'win32') {
var child = spawn(path.join(__dirname, "./esptool.exe").replace('app.asar', 'app.asar.unpacked'), esptool_opts);
} else if (process.platform == 'darwin') {
console.log("Running on MacOS")
fs.chmodSync(path.join(__dirname, "./esptool.py").replace('app.asar', 'app.asar.unpacked'), 0o755);
var child = spawn(path.join(__dirname, "./esptool.py").replace('app.asar', 'app.asar.unpacked'), esptool_opts);
fs.chmodSync(path.join(__dirname, "./esptool-mac").replace('app.asar', 'app.asar.unpacked'), 0o755);
var child = spawn(path.join(__dirname, "./esptool-mac").replace('app.asar', 'app.asar.unpacked'), esptool_opts);
}

Wyświetl plik

@ -133,7 +133,7 @@
"asarUnpack": [
"esptool.exe",
"esptool-mac",
"esptool.py",
"esptool-linux",
"*.bin"
],
"win": {