X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=blobdiff_plain;f=HACKING;h=9f2f14392d45779bd7a18f8e18077572ec23e521;hp=c5f24f55d6fc493e0fe8e8cbe96f87ade33342b5;hb=11c6995e4bdaf176e1a38b8ee642217cdb98dfda;hpb=b7d7e99011eb2a4bfd493bfca2f386ad9916a6a2 diff --git a/HACKING b/HACKING index c5f24f5..9f2f143 100644 --- a/HACKING +++ b/HACKING @@ -150,6 +150,19 @@ Protocol decoder guidelines protocol decoder, e.g., UART) via "sigrok-cli -P uart --show", or in various other places in GUIs. + - Input IDs, output IDs, tags, channel IDs, option IDs, annotation class IDs, + annotation row IDs, and binary class IDs each must be unique. + + - Annotation class IDs must not overlap with annotation row IDs. + For example, you cannot have an annotation row named "foo" if you already + have an annotation class named "foo". This avoids confusion for users + and simplifies e.g. command-line usage of decoders. + + - Annotation class IDs should generally be singular, annotation row IDs + should generally be plural. Example: UART annotation classes could be + named "stop-bit" or "parity-bit" (singular), the annotation row containing + these annotation classes could be named "bits" (plural). + - Generally use strings for states (of the PD state machine), not integers. This avoids having to keep a list of state definitions at the top of file. The performance overhead for this is negligible in practice.