prusa3d / prusa3d/libbgcode

Unclear binary gcode specification: tables of key value pairs

Open
#33 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
G-code
Stars
73
Forks
23
PR merge metrics
No merged PRs in 30d

Description

https://github.com/prusa3d/libbgcode/blob/bc390aab4427589a6402b4c7f65cf4d0a8f987ec/doc/specifications.md is a bit unclear in my opinion: It says that several of the blocks are "tables of key-value pairs". No where is the format of that table defined.

I'm guessing based on the encoding "0 = INI encoding" that it it is encoded as an .ini file would be. But what are the valid keys and values? What are the valid section headers? Are keys before the first section allowed? Are sections even allowed? What line ending should be used (LF, CRLF)? Should the lines be formatted as key=value or key = value? How is non-ASCII encoded (UTF-8)?

There is probably a ton more ambiguity than the questions I listed above.

The specification here is clearly somewhat underspecified.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with doc/specifications.md and review each block described as a table of key-value pairs, including the stated “0 = INI encoding” note. Determine the missing syntax, allowed keys, values, sections, line endings, spacing, and character encoding from the repository or format requirements. Done means the specification unambiguously defines the table format.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.