Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing specification details #68

Open
bofh69 opened this issue Jan 26, 2025 · 0 comments
Open

Missing specification details #68

bofh69 opened this issue Jan 26, 2025 · 0 comments

Comments

@bofh69
Copy link

bofh69 commented Jan 26, 2025

The "Int" fields don't have a specified encoding. I assume they are unsigned numbers starting from 0 and in big or little endian format when they are bigger than a single byte.

"String" fields don't have a specified encoding. UTF-8? Its inefficient for CJK text though. It would perhaps be better to add a field that says the encoding for all text fields (except the URL, it should perhaps always be in ascii?). UTF-8 and UTF-16 would be enough I think.

The "Color Hex" field doesn't have a specified colour space. SGRB, Adobe RGB (1998) or something else? The field would also better be described as three separate bytes to reduce confusion about what each byte means.

Date and Time lacks time zone info. Perhaps always use UTC? They would also be better described as separate fields for each component. It would take just as many bytes to use 2 bytes for year, one for month and one for day, but no special code would be needed to make use of the fields. Same with time. 3 bytes with HH in one byte, MM in another and SS in the third. That would be harder to implement incorrectly and nothing is gained from using multiply and add to join them into a single number. When converting the number to text one most often want to handle them component by component anyway.

Many filaments today have printed info about bed and print temperatures given in ranges. I've never seen any such temp ending in anything but 0 or 5. So perhaps instead of using two fields with two bytes, use four fields (min/max print/bed), each with a single byte given in 5⁰C values. That would give a maximum temperature of 1275⁰C, which should be enough.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant