{control.elements.map((element) => {
+ if (element.type === 'm2') {
+ return (
+
+ )
+ } else
if (element.type === 'button') {
let classname = 'tooltip'
return (
@@ -474,6 +490,15 @@ const ProbePanel = () => {
element.options
)[0].value
}
+ if (typeof element.step!=="undefined") {
+ //hack to avoid float precision issue
+ const mult=1/element.step
+ console.log(element.value.current,element.step,mult, (element.value.current * mult ) % (element.step* mult))
+ if ((element.value.current * mult ) % (element.step* mult) != 0) {
+ console.log("not valid", )
+ validation.valid = false
+ }
+ }
if (
element.type ===
'number' &&
@@ -490,6 +515,7 @@ const ProbePanel = () => {
// validation.message = T("S42");
validation.valid = false
}
+
element.value.valid =
validation.valid
return validation
@@ -526,6 +552,7 @@ const ProbePanel = () => {
)}
min={element.min}
max={element.max}
+ step={element.step}
value={
element.value
.current
diff --git a/src/tabs/interface/index.js b/src/tabs/interface/index.js
index 998bc8e93..7107d314b 100644
--- a/src/tabs/interface/index.js
+++ b/src/tabs/interface/index.js
@@ -119,12 +119,14 @@ const InterfaceTab = () => {
})
}
} else {
- if (fieldData.step) {
- if (fieldData.value % fieldData.step !== 0) {
+ if (typeof fieldData.step!=="undefined") {
+ //hack to avoid float precision issue
+ const mult=1/fieldData.step
+ if ((fieldData.value * mult ) % (fieldData.step* mult) != 0) {
validation.message =
validation.valid = false
}
- }
+ }
if (fieldData.type == "list") {
const stringified = JSON.stringify(fieldData.value)
//check new item or modified item
diff --git a/src/targets/CNC/preferences.json b/src/targets/CNC/preferences.json
index e83896caa..6c90da5d3 100644
--- a/src/targets/CNC/preferences.json
+++ b/src/targets/CNC/preferences.json
@@ -41,13 +41,14 @@
"label": "CN93",
"value": 15,
"append": "CN96",
- "min": 1
+ "min": 0
},
{
"id": "probethickness",
"type": "number",
"label": "CN94",
"value": "1",
+ "step": "0.1",
"append": "CN96",
"min": 0
},
diff --git a/src/targets/CNC/translations/en.json b/src/targets/CNC/translations/en.json
index 34fb5287e..6bbb1611e 100644
--- a/src/targets/CNC/translations/en.json
+++ b/src/targets/CNC/translations/en.json
@@ -68,10 +68,10 @@
"CN77": "Enable mist coolant",
"CN78": "Enable flood coolant",
"CN79": "Disable coolant",
- "CN80": "Toogle controls",
- "CN81": "Toogle spindle state",
- "CN82": "Toogle flood state",
- "CN83": "Toogle mist state",
+ "CN80": "Toggle controls",
+ "CN81": "Toggle spindle state",
+ "CN82": "Toggle flood state",
+ "CN83": "Toggle mist state",
"CN84": "Maximum power",
"CN85": "Test duration",
"CN86": "Test",
diff --git a/src/targets/Plotter/HP-GL/translations/en.json b/src/targets/Plotter/HP-GL/translations/en.json
index 02949a07b..36b8d8c0d 100644
--- a/src/targets/Plotter/HP-GL/translations/en.json
+++ b/src/targets/Plotter/HP-GL/translations/en.json
@@ -15,7 +15,7 @@
"btnjogup": "Button jog top",
"btnjogdown": "Button jog bottom",
"btnpark": "Park Pen",
- "btnPen": "Toogle Pen",
+ "btnPen": "Toggle Pen",
"btndistSel+": "Next jog distance",
"btndistSel-": "Previous jog distance",
"btnStop": "Stop",
diff --git a/src/targets/Printer3D/Marlin-embedded/filters.js b/src/targets/Printer3D/Marlin-embedded/filters.js
index d0f0e5d5a..eca9aaf0b 100644
--- a/src/targets/Printer3D/Marlin-embedded/filters.js
+++ b/src/targets/Printer3D/Marlin-embedded/filters.js
@@ -252,7 +252,7 @@ const getFeedRate = (str) => {
////////////////////////////////////////////////////////
//
-// Printer capabbility
+// Printer capabilities
//Format is:
//FIRMWARE_NAME:Marlin 2.0.9.1 (Sep 8 2021 17:07:06) SOURCE_CODE_URL:github.com/MarlinFirmware/Marlin PROTOCOL_VERSION:1.0 MACHINE_TYPE:MRR ESPA EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff
//Cap:SERIAL_XON_XOFF:0
diff --git a/src/targets/Printer3D/Repetier/filters.js b/src/targets/Printer3D/Repetier/filters.js
index d9c269364..84965e737 100644
--- a/src/targets/Printer3D/Repetier/filters.js
+++ b/src/targets/Printer3D/Repetier/filters.js
@@ -252,7 +252,7 @@ const getFlowRate = (str) => {
////////////////////////////////////////////////////////
//
-// Printer capabbility
+// Printer capabilities
//Format is:
//FIRMWARE_NAME:Repetier_1.0.4 COMPILED:Apr 30 2022 FIRMWARE_URL:https://github.com/repetier/Repetier-Firmware/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Mendel EXTRUDER_COUNT:1 REPETIER_PROTOCOL:3
//Cap:PROGRESS:1
diff --git a/src/targets/Printer3D/Smoothieware/filters.js b/src/targets/Printer3D/Smoothieware/filters.js
index a1e85af8c..b46119bb6 100644
--- a/src/targets/Printer3D/Smoothieware/filters.js
+++ b/src/targets/Printer3D/Smoothieware/filters.js
@@ -236,7 +236,7 @@ const getFeedRate = (str) => {
////////////////////////////////////////////////////////
//
-// Printer capabbility
+// Printer capabilities
//Format is:
//FIRMWARE_NAME:Smoothieware, FIRMWARE_URL:http%3A//smoothieware.org, X-SOURCE_CODE_URL:https://github.com/Smoothieware/Smoothieware, FIRMWARE_VERSION:edge-f7df5f1, PROTOCOL_VERSION:1.0, X-FIRMWARE_BUILD_DATE:Aug 14 2021 21:01:19, X-SYSTEM_CLOCK:100MHz, X-AXES:5, X-GRBL_MODE:0, X-ARCS:1, X-CNC:0, X-MSD:1, X-WARNING:deprecated_MCU
//...