1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
//! # PoKeys Core Library - Pure Rust Implementation
//!
//! This is the **core library** of the PoKeys ecosystem, providing a pure Rust implementation
//! of the PoKeysLib functionality for controlling PoKeys devices without external dependencies.
//!
//! ## Core Features
//!
//! ### Device Connectivity
//! - USB and Network device enumeration and connection
//! - Auto-detection of connection types
//! - Multi-device concurrent management
//!
//! ### Digital & Analog I/O
//! - Digital I/O operations with bulk configuration
//! - Multi-channel analog input with configurable reference voltage
//! - Pin function validation and safety checks
//!
//! ### Advanced Control Systems
//! - PWM control with configurable frequency and duty cycle
//! - Quadrature encoder support (4x/2x sampling modes)
//! - Matrix keyboard scanning and LED matrix control
//!
//! ### Communication Protocols
//! - **SPI**: Full master support with multiple chip select pins
//! - **I2C**: Master operations with device scanning
//! - **1-Wire**: Temperature sensor support
//! - **CAN Bus**: Message transmission and reception
//! - **UART**: Serial communication
//!
//! ### Display & Interface Support
//! - LCD display control and management
//! - Seven-segment character mapping utilities
//!
//! ### Sensor Integration
//! - EasySensors support and data acquisition
//! - Real-time clock operations and synchronization
//! - Temperature sensor integration
//!
//! ### Safety & Reliability
//! - Device model validation with pin capability checks
//! - Comprehensive error handling with context
//! - Thread-safe concurrent device access
//! - Configurable failsafe behavior
//! - SPI pin reservation and conflict prevention
//!
//! ## Performance Optimizations
//!
//! - **Bulk Operations**: 28x faster pin configuration (96.4% time reduction)
//! - **Single Enumeration**: 3x faster multi-device sync (65% improvement)
//! - **Encoder Fix**: Correct pin numbering conversion
//!
//! ## Usage
//!
//! ```rust,no_run
//! use pokeys_lib::{enumerate_usb_devices, connect_to_device, PinFunction, Result};
//!
//! fn main() -> Result<()> {
//! // Enumerate available devices
//! let device_count = enumerate_usb_devices()?;
//!
//! // Connect to first device
//! if device_count > 0 {
//! let mut device = connect_to_device(0)?;
//!
//! // Read device information
//! device.get_device_data()?;
//!
//! // Set pin as digital output
//! device.set_pin_function(1, PinFunction::DigitalOutput)?;
//!
//! // Set pin high
//! device.set_digital_output(1, true)?;
//! }
//!
//! Ok(())
//! }
//! ```
// Allow clippy warnings for cleanup PR - these will be addressed in a separate PR
pub use *;
pub use *;
pub use PulseEngineConfig;
pub use *;
// Re-export main functionality
pub use ;
pub use ;
pub use MatrixKeyboard;
pub use ModelManager;
pub use ;
// Re-export OEM parameter constants
pub use ;
// Re-export LED matrix functionality
pub use ;
// Re-export network configuration helpers
pub use NetworkDeviceConfig;
// Re-export protocol convenience functions
pub use ;
// Re-export uSPIBridge functionality
pub use ;
// Re-export servo control functionality
pub use ;
/// Library version information
pub const VERSION_MAJOR: u8 = 0;
pub const VERSION_MINOR: u8 = 3;
pub const VERSION_PATCH: u8 = 0;
/// Get library version as string