Crate logiops_core

Crate logiops_core 

Source
Expand description

Core HID++ protocol implementation and device features.

This crate provides the HID++ protocol layer for communicating with Logitech devices. It builds on top of hidpp-transport to provide higher-level device abstractions and feature implementations.

§Features

The HID++ 2.0 protocol uses a feature-based model where each capability (DPI control, SmartShift, etc.) is exposed as a feature with a unique ID. Feature indices are discovered at runtime since they can vary between devices and firmware versions.

§Device Initialization

use hidpp_transport::{create_hid_api, enumerate_hidpp_devices, HidapiChannel};
use logiops_core::HidppDevice;

let api = create_hid_api()?;
let devices = enumerate_hidpp_devices(&api);

if let Some(logi_dev) = devices.first() {
    let channel = HidapiChannel::open(&api, &logi_dev.path)?;
    let mut device = HidppDevice::direct(channel);

    // Initialize queries protocol version, name, and discovers features
    let info = device.initialize().await?;
    println!("Found: {} ({})", info.name, info.protocol_version);
}

Re-exports§

pub use device::DeviceInfo;
pub use device::HidppDevice;
pub use error::HidppErrorCode;
pub use error::ProtocolError;
pub use error::Result;
pub use features::device_name::DeviceKind;
pub use features::AdjustableDpiFeature;
pub use features::BatteryFeature;
pub use features::BatteryInfo;
pub use features::BatteryStatusFeature;
pub use features::ButtonEvent;
pub use features::ChargingStatus;
pub use features::CidReporting;
pub use features::ControlFlags;
pub use features::ControlInfo;
pub use features::FeatureInfo;
pub use features::FeatureSetFeature;
pub use features::FeatureType;
pub use features::ReprogControlsFeature;
pub use features::SensorInfo;
pub use features::SmartShiftConfig;
pub use features::SmartShiftFeature;
pub use features::UnifiedBatteryFeature;
pub use features::WheelMode;
pub use protocol::ProtocolVersion;
pub use hidpp_transport;

Modules§

device
Device abstraction for HID++ communication.
error
Error types for the logiops-core crate.
features
HID++ feature implementations.
protocol
HID++ protocol constants, types, and helpers.