The sys.state variable is always set with =, never |=,
so the values are guaranteed to be unique. It was tested
sometimes by OR-ing with bitmasks, presumably for efficiency,
but that mixed usage led to code that could be confusing.
Splitting out those tests into chained comparisons is probably
marginally less efficient than the bitmask method, but in all
likelihood, not enough to matter.
* Changed STATUS_ defines to enum class Error
* Added license blocks to new files
* Suppress Compiling..Error.cpp build script output
The filters that look for errors in the output were
triggering on the filename Error.cpp
* Vewry Incomplete DO NOT USE
* Working on uart init
* Getting closer
Need to prevent multiple UART inits
* Basic functionality
* fixing variable
* Reading position is now working - Not ready for use though.
* Modified homing to add $<axis>/Home/Mpos feature
* Tweak to the debug reporting
* updates after homing
* added homing stuff
* Pulled in recent RC Servo changes
* cleanup machine defs
* updated servos
* Cleanup messages
* Update for PR
* Fixing travel vs. max_travel
* Formatting
* More cleanup
* Update after review
Co-authored-by: Bart Dring <bdring@buildlog.net>
The approach was
a) Split up the CoolantMode enum, which had become complicated because
it was trying to solve two incompatible requirements, into two
enums GCodeCoolant (a pure enumeration for the use of the GCode
parser) and CoolantState (a bitfield for runtime use where
independent turn-off is possible via overrides)
b) Fixed coolant_set_state() so it can turn off coolant bits
independently. Previously it could turn them on independently,
but only turn them off simultaneously. That was fine for M7 M8 M9,
but inadequate for realtime coolant overrides.
c) In the process, I refactored the code in CoolantControl.cpp with
the goal of "saying things once", thus reducing the number of
ifdefs. When we have the Pin class, the ifdefs will be reduced
even more, perhaps even eliminated. Meanwhile, this cleans up the
code and probably makes the transition to Pins easier.
d) I also fixed a bug in Report.cpp in which it was not possible to
report both M7 and M8 at the same time.
* To use a local library, simplify lib_deps
* Avoid using an incompatible version of the API
Change the version specification of TMCStepper to avoid the compatibility issues @teemuatlut mentioned before.
* Update the version
* Fixed all the braces
* Weeded out all `return (...);` with no additional value to the parenthesis.
* Fixed coolant control flags
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
* Replaced #defines with enums in GCode.h
* More #defines bit the dust
* Resolved review comments
* Some fixes
* Added parser test
* Fixed braces in GCode.cpp
* Clang format
* Revised delay value in tests/parser.nc
* Handles Tranimic drivers errors better
- If an unsupported driver is specified, it will give a message and not crash.
* Cleaned up unused files
Got rid of old unipolar files
Got rid of servo axis feature - it is a motor class now
Got rid of solenoid pen feature - never really used and it should be a motor class if it is.
* Fix ENABLE_AUTHENTICATION (#569)
* Fixed authentication code.
* Removed another const cast
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
* Fix step leakage with inverted steps (#570)
* Fix step leakage with inverted steps
* Update build date for merge
Co-authored-by: Bart Dring <bdring@buildlog.net>
Co-authored-by: Stefan de Bruijn <atlaste@users.noreply.github.com>
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
Co-authored-by: Bart Dring <bdring@buildlog.net>
Got rid of old unipolar files
Got rid of servo axis feature - it is a motor class now
Got rid of solenoid pen feature - never really used and it should be a motor class if it is.
* Dynamically changing the mode of I2S
* Fix invalid step pulse width in I2S static
* More accurate I2S stream stepping
Co-authored-by: bdring <barton.dring@gmail.com>
* Adding extended testing and status
- checks for shorts, opens, temt, p/s issues
* Update
- test function now looks for
- connectiviy
- motor power
- coil shorts
- temp issues
* Update Machine.h
* Update spi_daisy_4axis_xyyz.h
* Killed casts and .c_str() in WebServer.cpp
Most of them were unnecessary, as the methods
with which they were used accept String arguments.
* More casts gone in WebSettings.cpp
* Another one bites the dust
* Introduced namespace WebUI
* Fixed Custom code that depends on WebUI. Cleaned up WebUI code: fixed braces around 'if's, introduced enum classes where appropriate and moved a bit of code around.
* Removed 'using namespace'.
* Updated polar coaster code.
* Fixed WebUI:: bug in atari_1020. Added Grbl.ino.cpp to gitignore, as it shouldn't be committed.
* Fixed auth_level
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
* Renamed Huanyang to VFD for H2A work
* Fixed Huanyang spindle implementation again.
Fixed includes in vcxproj generator
* Changed the VFD implementation. Implemented H2A along the way.
UNTESTED!
* Fixed retry loop in VFD. Added SettingsDefinition. Fixed name conflict within GRBL (`init()`).
* Added VFD_DEBUG_MODE.
* Fixed usability of VFD_DEBUG_MODE. Added a TODO in the H2ASpindle code.
Removed it from the test machine config
* Fixed bug in VFD spindle: the uart should be set up first, before running the rs485 task.
* Fixed bug in VFD_DEBUG_MODE output. Fixed bug in RX length of set_speed command for Huanyang VFD.
* Fixed a bug in the spindle code with states. Also, VFD didn't update state correctly.
Updated TODO/FIXME
* Added some more functionality to the Null spindle, to aid testing purposes.
Fixed report compatibility with vanilla grbl. Some values were reported in a slightly different format.
* Fixed commands.h
* Fixed review by Mitch
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
* Fixed Laser Mode
Enablin pin was turning off, but not back on in laser mode
* Added Settings
- $Spindle/Enable/Invert=Off
- $Spindle/Enable/OffWithSpeed=Off
- $Spindle/PWM/Invert=Off
* Update build date
- Added X2_LIMIT_PIN thru C2_LIMIT_PIN
- The 2 switches are simply or'd in the logic
- Limit pin difintion now prints in boot MSG's
- Cleaned up MS3 logic to use an array and defaults like limit switches
- Added a new machine definition file to test new features
* Renamed files in the root folder. Haven't fixed includes yet.
* Renamed SD to SDCard to avoid name conflict
* Fixed all includes
* Fixed some "..." / <...> includes.
* Updated <Print.h> (caps!).
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>