27 lines
1.6 KiB
Markdown
27 lines
1.6 KiB
Markdown
# Agent Guidelines for `eink_api`
|
|
|
|
These instructions apply to the entire repository.
|
|
|
|
## Code Style
|
|
- Follow existing Pico SDK patterns in `eink_api.c`; prefer straightforward, readable C without unnecessary abstractions.
|
|
- Match the project logging approach (`printf` for user feedback) and keep messages concise and informative.
|
|
- When modifying command handlers, mimic the `else if` chain style that ensures only one command executes per input.
|
|
- Avoid adding inline comments unless they clarify non-obvious logic.
|
|
|
|
## Command Handling
|
|
- Use fixed-length comparisons (`strncmp`) with explicit delimiter checks so longer commands do not trigger shorter prefixes (e.g., guard `draw_circle` vs. `draw_circle_fill`).
|
|
- Validate command arguments with `sscanf`, checking return counts before acting.
|
|
- Ensure screen-state guards (`screen_on`, `editor_mode`) remain intact around command logic.
|
|
|
|
## Display Operations
|
|
- Use the Waveshare `Paint_*` helpers already in use; do not introduce alternative drawing backends without a strong reason.
|
|
- Prefer existing constants (`BLACK`, `WHITE`, `DOT_PIXEL_1X1`, fill enums) for clarity and consistency.
|
|
|
|
## Build & Tooling
|
|
- Keep the CMake-based build flow unchanged (`cmake -S . -B build` / `cmake --build build`).
|
|
- Scripts under `scripts/` should remain POSIX shell compatible and should surface user-friendly errors tied to README guidance.
|
|
|
|
## Documentation
|
|
- Update the README table of commands whenever new commands are added or behaviors change.
|
|
- Maintain alignment between serial command descriptions and their implementation details.
|