# Device

If you are building a new device API, read in this order:

1. [Base Device](base_device.md)
2. [Parameter System](param_system.md)
3. [Function System](func_system.md)
4. [Command Solver](cmd_solver.md)
5. [Traffic Manager](traffic_manager.md)
6. [Error Handling](error_handling.md)
7. [Logging System](logging_system.md)
8. [Auto Test](auto_test.md)

## Topic Guide

### Core Architecture

1. [Base Device](base_device.md): Defines the synchronized device abstraction and lifecycle.
2. [Traffic Manager](traffic_manager.md): Implements transport communication (Serial, VISA, TCP/IP).
3. [Command Solver](cmd_solver.md): Maps standardized operations to protocol commands.

### Metadata and API Contracts

1. [Parameter System](param_system.md): Declares configuration parameters, constraints, and parsing rules.
2. [Function System](func_system.md): Declares operation signatures, validates inputs/outputs, and binds execution.

### Runtime Utilities

1. [Error Handling](error_handling.md): Standard error propagation and contextual wrapping.
2. [Logging System](logging_system.md): Process-level logging setup and usage patterns.
3. [Auto Test](auto_test.md): Automated smoke tests for configuration and operation workflows.

