diff options
Diffstat (limited to 'src/GCodes/GCodeBuffer/BinaryParser.h')
-rw-r--r-- | src/GCodes/GCodeBuffer/BinaryParser.h | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/GCodes/GCodeBuffer/BinaryParser.h b/src/GCodes/GCodeBuffer/BinaryParser.h index 3495d9c8..adb2286b 100644 --- a/src/GCodes/GCodeBuffer/BinaryParser.h +++ b/src/GCodes/GCodeBuffer/BinaryParser.h @@ -24,10 +24,11 @@ class BinaryParser { public: BinaryParser(GCodeBuffer& gcodeBuffer) noexcept; - void Init() noexcept; // Set it up to parse another G-code - void Put(const uint32_t *data, size_t len) noexcept; // Add an entire binary code, overwriting any existing content - void DecodeCommand() noexcept; // Print the buffer content in debug mode and prepare for execution - bool Seen(char c) noexcept SPEED_CRITICAL; // Is a character present? + void Init() noexcept; // Set it up to parse another G-code + void Put(const uint32_t *data, size_t len) noexcept; // Add an entire binary code, overwriting any existing content + void DecodeCommand() noexcept; // Print the buffer content in debug mode and prepare for execution + bool Seen(char c) noexcept SPEED_CRITICAL; // Is a character present? + bool SeenAny(Bitmap<uint32_t> bm) const noexcept; // Return true if any of the parameter letters in the bitmap were seen char GetCommandLetter() const noexcept; bool HasCommandNumber() const noexcept; @@ -45,9 +46,9 @@ public: void GetCompleteParameters(const StringRef& str) THROWS(GCodeException); // Get the complete parameter string void GetQuotedString(const StringRef& str, bool allowEmpty) THROWS(GCodeException); // Get and copy a quoted string void GetPossiblyQuotedString(const StringRef& str, bool allowEmpty) THROWS(GCodeException); // Get and copy a string which may or may not be quoted - void GetFloatArray(float arr[], size_t& length, bool doPad) THROWS(GCodeException) SPEED_CRITICAL; // Get a colon-separated list of floats after a key letter - void GetIntArray(int32_t arr[], size_t& length, bool doPad) THROWS(GCodeException); // Get a :-separated list of ints after a key letter - void GetUnsignedArray(uint32_t arr[], size_t& length, bool doPad) THROWS(GCodeException); // Get a :-separated list of unsigned ints after a key letter + void GetFloatArray(float arr[], size_t& length) THROWS(GCodeException) SPEED_CRITICAL; // Get a colon-separated list of floats after a key letter + void GetIntArray(int32_t arr[], size_t& length) THROWS(GCodeException); // Get a :-separated list of ints after a key letter + void GetUnsignedArray(uint32_t arr[], size_t& length) THROWS(GCodeException); // Get a :-separated list of unsigned ints after a key letter void GetDriverIdArray(DriverId arr[], size_t& length) THROWS(GCodeException); // Get a :-separated list of drivers after a key letter void SetFinished() noexcept; // Set the G Code finished @@ -72,7 +73,7 @@ private: GCodeException ConstructParseException(const char *str, uint32_t param) const noexcept; size_t AddPadding(size_t bytesRead) const noexcept { return (bytesRead + 3u) & (~3u); } - template<typename T> void GetArray(T arr[], size_t& length, bool doPad, DataType type) THROWS(GCodeException) SPEED_CRITICAL; + template<typename T> void GetArray(T arr[], size_t& length) THROWS(GCodeException) SPEED_CRITICAL; void WriteParameters(const StringRef& s, bool quoteStrings) const noexcept; size_t bufferLength; |