Skip to main content

plc_comm_hostlink/
lib.rs

1//! Async Rust client for KEYENCE KV Host Link.
2//!
3//! The crate keeps the same high-level helper semantics as the sibling
4//! `.NET` and Python libraries in this workspace.
5
6mod address;
7mod client;
8mod device_ranges;
9mod error;
10mod helpers;
11mod model;
12mod protocol;
13
14pub use address::{
15    HostLinkAddress, KvDeviceAddress, KvLogicalAddress, normalize_suffix, parse_device,
16    parse_logical_address, resolve_effective_format, validate_device_count, validate_device_span,
17    validate_device_type, validate_expansion_buffer_count, validate_expansion_buffer_span,
18};
19pub use client::{
20    HostLinkClient, HostLinkClientFactory, HostLinkPayloadValue, QueuedHostLinkClient,
21    open_and_connect,
22};
23pub use device_ranges::{
24    KvDeviceRangeCatalog, KvDeviceRangeCategory, KvDeviceRangeEntry, KvDeviceRangeNotation,
25    KvDeviceRangeSegment, available_device_range_models, device_range_catalog_for_model,
26};
27pub use error::{HostLinkError, decode_error_code};
28pub use helpers::{
29    HostLinkValue, NamedSnapshot, TimerCounterValue, poll, read_comments, read_counter,
30    read_dwords, read_dwords_chunked, read_dwords_single_request, read_named, read_timer,
31    read_timer_counter, read_typed, read_words, read_words_chunked, read_words_single_request,
32    write_bit_in_word, write_dwords_chunked, write_dwords_single_request, write_typed,
33    write_words_chunked, write_words_single_request,
34};
35pub use model::{
36    HostLinkClock, HostLinkConnectionOptions, HostLinkTraceDirection, HostLinkTraceFrame,
37    HostLinkTransportMode, KvModelInfo, KvPlcMode, TraceHook,
38};