kickingvegas / regfmt Goto Github PK
View Code? Open in Web Editor NEWRegister Formatter - Generate SVG diagrams of control register-style data formats
License: Other
Register Formatter - Generate SVG diagrams of control register-style data formats
License: Other
Implement documentation
Implement layout YAML directives.
Document code.
Integrate into Sphinx.
Package regfmt for pip
https://packaging.python.org/en/latest/tutorials/packaging-projects/
Apparently a float value put into the width
field is not flagged by the JSON validator. This is a bug.
# regfmt https://github.com/kickingvegas/regfmt
# ARM Coretex-M3 Program Status Register
# https://developer.arm.com/documentation/dui0552/a/the-cortex-m3-processor/programmers-model/core-registers
width: 32
endian: bigBit
layout:
field-name-align: stair-left
registers:
- name: "APSR: Application Program Status Register"
fields:
- name: "N: Negative flag"
width: 1.0
- name: "Z: Zero flag"
width: 1
- name: "C: Carry or borrow flag"
width: 1
- name: "V: Overflow flag"
width: 1
- name: "Q: Saturation flag"
width: 1
- name: Reserved
width: 27
Resulting output has float values in the field indexes.
Add option to create an example yaml and CSS file pair.
Documentation bug in https://github.com/kickingvegas/regfmt/blob/development/.github/README.org
YAML example with string "Interrupt" should be changed to "Interrupt Waiting"
Register CSS class does not cascade into Field class.
Fix codebase to be PEP 8 comformant
Current implementation uses adjacent rects which is problematic for borders between adjacent fields. Reimplement using line segment for border.
"Interrupt Mask" is truncated.
##
# Example YAML file for regfmt
width: 8
endian: bigBit
registers:
- name: R1
fields:
- width: 1
name: Coprocessor Usable
- width: 1
name: Boostrap Exception Vectors
- width: 2
name: Parity Errors
- width: 4
name: Interrupt Mask
layout:
field-name-align: stair-left
When width is left unspecified, the error message has a strange escape sequence appended to it.
# regfmt https://github.com/kickingvegas/regfmt
# ARM Coretex-M3 Program Status Register
# https://developer.arm.com/documentation/dui0552/a/the-cortex-m3-processor/programmers-model/core-registers
width: 32
endian: bigBit
layout:
field-name-align: stair-left
registers:
- name: "APSR: Application Program Status Register"
fields:
- name: "N: Negative flag"
width: 1
- name: "Z: Zero flag"
width:
- name: "C: Carry or borrow flag"
width: 1
- name: "V: Overflow flag"
width: 1
- name: "Q: Saturation flag"
width: 1
- name: Reserved
width: 27
Support build and test workflow on GH.
https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
Fix readme to support both github and pypi.
Support running regfmt as a local web service.
Implement stair layout
Support sub/super scripting in names. Apparently this is possible with <tspan>
via the dy
attribute.
example:
<text x="202.0" y="28.5" font-size="12pt" font-family="Futura,Helvetica,Arial,sans-serif" font-style="normal" font-weight="normal" text-anchor="start" fill="black">Control Register<tspan dy='-5' style='font-size: 8pt'>1</tspan></text>
Implement pip requirements.txt
Support field attributes, a list of strings to be drawn below the field.
Fix numerous SVG generation bugs:
Implement regfmt tests
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.