Skip to content

ithinuel/async-gcode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

79a543f · Aug 13, 2022

History

23 Commits
Aug 13, 2022
Jul 19, 2019
Aug 13, 2022
Aug 13, 2022
Aug 7, 2020
Aug 16, 2020
Aug 13, 2022
Jul 19, 2019
Aug 16, 2020
Aug 13, 2022

Repository files navigation

GCode Parser

This crate aims at providing a gcode parser to the rusty printer project (and other if it can fit).

The minimal footprint is achieved with all features disabled and is in the order of ~80B of RAM and around 2kB of Flash memory. The typical set of features ["parse-trailing-comment", "parse-checksum", "optional-value"] has a footprint of around 4kB of flash memory for around 80B of RAM. Finally with all features, the memory footprint reaches around 7kB in flash and around 170B in RAM.

Features

  • std : Enabled by default
  • parse-comments : enables the parser to return GCode::Comment(String); requires an allocator.
  • parse-trailing-comment: allows line to end with a ; comment.
  • parse-checksum : Enables the use of xorsum.
  • parse-parameters : Enables the use of # parameters ; requires an allocator. If string-value is enabled then parameters may use string index. If optional-value is enabled then parameters value may be omitted but NOT the indices.
  • parse-expressions : Enables parsing infix expressions ; requires an allocator.
  • optional-value : Allows to omit in RealValue in word and parameter value positions. Parameter indices cannot be omitted nor can be literals in expressions.
  • string-value : Allows RealValue to be a string. Any character preceded with \ will be used as is (useful for ", ) or new line).

Design

Constraints

  • No recursion.
  • Reduced RAM footprint
  • Reduced ROM footprint