The Arduino programming environment is bootstrapped with many preprocessor definition contant values, specifically created to make the programming experience more accessible to non-programmers. Some specific examples include:
- Analog Pins:
A0
: 14A1
: 15
- Modes:
INPUT
: 0OUTPUT
: 1
- Values:
HIGH
: 1LOW
: 0
Please post thoughts in the comments. I'd like to flesh out the lists below before making a decision.
- Easily memorized by users
- Increased accessibility for those familiar with Arduino IDE programming
- Potentially reduce user code errors (?)
- Global scope pollution
I also agree that they should be name-spaced. How about a controller namespace object (CTL?) that contains both generic (common to all controllers) values and controller-specific values. May be the same as what @dtex is talking about as IO. I don't have the familiarity with J5 to know whether or not that is structurally the right level.