mirror of
https://github.com/grblHAL/core.git
synced 2026-08-18 17:07:20 +08:00
Added some RGB LED strip properties, improved handling of single meaning G-code words claimed by user M-codes.
This commit is contained in:
@@ -13,7 +13,7 @@ It has been written to complement grblHAL and has features such as proper keyboa
|
||||
|
||||
---
|
||||
|
||||
Latest build date is 20240903, see the [changelog](changelog.md) for details.
|
||||
Latest build date is 20240907, see the [changelog](changelog.md) for details.
|
||||
|
||||
__NOTE:__ Build 20240222 has moved the probe input to the ioPorts pool of inputs and will be allocated from it when configured.
|
||||
The change is major and _potentially dangerous_, it may damage your probe, so please _verify correct operation_ after installing this, or later, builds.
|
||||
|
||||
+19
-1
@@ -1,5 +1,23 @@
|
||||
## grblHAL changelog
|
||||
|
||||
<a name="20240907">Build 20240907
|
||||
|
||||
Core:
|
||||
|
||||
* Added some RGB LED strip properties, improved handling of single meaning G-code words claimed by user M-codes.
|
||||
|
||||
Plugins:
|
||||
|
||||
* Misc: updated for new RGB LED strip properties.
|
||||
|
||||
Drivers:
|
||||
|
||||
* iMRX1062, STM32F4xx and STM32F7xx: updated for new RGB LED strip properties.
|
||||
|
||||
* RP2040: revised pin mappings for BTT SKR Pico board. Added misc. plugins to compilation.
|
||||
|
||||
---
|
||||
|
||||
<a name="20240903">Build 20240903
|
||||
|
||||
Core:
|
||||
@@ -8,7 +26,7 @@ Core:
|
||||
|
||||
Drivers:
|
||||
|
||||
* ESP32, RP2040, STM32F4xx, STM32F7xx: updated for core changes related to the RGB HAL.
|
||||
* ESP32, RP2040, STM32F4xx and STM32F7xx: updated for core changes related to the RGB HAL.
|
||||
|
||||
* RP2040: renamed bluetooth files to avoid conflict with SDK.
|
||||
|
||||
|
||||
@@ -804,6 +804,12 @@ status_code_t gc_execute_block (char *block)
|
||||
#endif
|
||||
|
||||
char *message = NULL;
|
||||
struct {
|
||||
float f;
|
||||
uint32_t o;
|
||||
float s;
|
||||
tool_id_t t;
|
||||
} single_meaning_value = {0};
|
||||
|
||||
block = gc_normalize_block(block, &message);
|
||||
|
||||
@@ -1694,7 +1700,22 @@ status_code_t gc_execute_block (char *block)
|
||||
ijk_words.j = Off;
|
||||
if(user_words.k)
|
||||
ijk_words.k = Off;
|
||||
|
||||
if(user_words.f) {
|
||||
single_meaning_value.f = gc_block.values.f;
|
||||
gc_block.values.f = 0.0f;
|
||||
}
|
||||
if(user_words.o) {
|
||||
single_meaning_value.o = gc_block.values.o;
|
||||
gc_block.values.o = 0;
|
||||
}
|
||||
if(user_words.s) {
|
||||
single_meaning_value.s = gc_block.values.s;
|
||||
gc_block.values.s = 0.0f;
|
||||
}
|
||||
if(user_words.t) {
|
||||
single_meaning_value.t = gc_block.values.t;
|
||||
gc_block.values.t = (tool_id_t)0;
|
||||
}
|
||||
axis_words.mask = 0;
|
||||
}
|
||||
|
||||
@@ -3313,7 +3334,12 @@ status_code_t gc_execute_block (char *block)
|
||||
|
||||
if(gc_block.user_mcode_sync)
|
||||
protocol_buffer_synchronize(); // Ensure user defined mcode is executed when specified in program.
|
||||
|
||||
gc_block.words.mask = user_words.mask;
|
||||
gc_block.values.f = single_meaning_value.f;
|
||||
gc_block.values.o = single_meaning_value.o;
|
||||
gc_block.values.s = single_meaning_value.s;
|
||||
gc_block.values.t = single_meaning_value.t;
|
||||
hal.user_mcode.execute(state_get(), &gc_block);
|
||||
gc_block.words.mask = 0;
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
#else
|
||||
#define GRBL_VERSION "1.1f"
|
||||
#endif
|
||||
#define GRBL_BUILD 20240903
|
||||
#define GRBL_BUILD 20240907
|
||||
|
||||
#define GRBL_URL "https://github.com/grblHAL"
|
||||
|
||||
|
||||
@@ -41,6 +41,15 @@ typedef union {
|
||||
};
|
||||
} rgb_color_t;
|
||||
|
||||
typedef union {
|
||||
uint8_t mask;
|
||||
struct {
|
||||
uint8_t is_blocking :1,
|
||||
is_strip :1,
|
||||
unassigned :6;
|
||||
};
|
||||
} rgb_properties_t;
|
||||
|
||||
/*! \brief Pointer to function for setting RGB (LED) output.
|
||||
\param color a \a rgb_color_t union.
|
||||
*/
|
||||
@@ -68,6 +77,7 @@ typedef struct {
|
||||
rgb_write_ptr write; //!< Optional handler for outputting data to Neopixel strip.
|
||||
rgb_set_intensity_ptr set_intensity; //!< Optional handler for setting intensity, range 0 - 255.
|
||||
rgb_color_t cap; //!< Driver capability, color value: 0 - not available, 1 - on off, > 1 - intensity range 0 - n.
|
||||
rgb_properties_t flags; //!< Driver property flags.
|
||||
uint16_t num_devices; //!< Number of devices (LEDs) available.
|
||||
} rgb_ptr_t;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user