Nice, I thought for a moment I could do SoC register diagrams with it as well but not so much:
./protocol "reserved:2,PLLSAI_RDY:1,PLLSAI_ON:1,PLI2S_RDY:1,PLL_RDY:1,PLL_ON:1,Reserved:4,CSS_ON:1,HSE_BYP:1,HSE_RDY:1,HSE_ON:1,HSICAL:8,HSITRIM:5,Reserved:1,HSI_RDY:1,HSI_ON:1"
Be careful when setting custom line widths, in the past i've run into situations where the last row of fields gets cutoff, depending on the line width.
As far as I can tell, it only deals with fixed width fields, and nothing of the detail inside them. No, notion, for example, of whether a field is big/little endian, protocols with delimited fields, variable length protocols with "length" followed by "field", etc.
This information belongs in manual pages on the system. On GNU/Linux operating systems, that's section 7; on illumos and SVR4 based systems, that'd be section 5.
Honest question: Is there an audience for this besides network engineers?
For anything else, I'd prefer either a human-readable text-based protocol or something like Protobuf that generates (de)serializing code from a schema definition.
Absolutely. I've had to implement protocols from a spec using various guides that had really bad diagrams of how the data is laid out. This tool could have made them a lot better. And as others have pointed out its extremely useful for binary file type diagrams.
http://asciiflow.com/