1
2pub mod master;
3
4pub mod slave;
5
6pub mod data;
7
8pub mod statics;
9
10pub mod utils;
11
12pub mod logging;
13
14pub mod abstractions;
15
16pub mod sugar;
17
18pub use abstractions::{MailboxStatus, MailboxStatistics, MailboxProtocol, MailboxError, MailboxResult};
19
20pub use data::error::{
21 CiA402Mode, CiA402State, DarraError, EcState, FoEErrorCode,
22 LinkState, RedundancyState, SoEErrorCode, SyncWindowStatus, Result,
23 WcContribution,
24};
25pub use data::structures::{
26 constants, PdoStats, PdoMappingEntry, CommunicationStatsLocal,
27 SlaveInfo, RealtimeStats, FoEOptionsLocal, EcGroupConfigHelper,
28};
29pub use data::types::*;
30
31pub use utils::ffi::{
32 EmcyRecord, TopologyNode, SlaveIdentity, EsmTimeouts,
33 FoEOptions, CommunicationStats, RedundancyStatus,
34 WatchdogConfig, WatchdogStatus,
35 MasterIdentity, MasterDiagData,
36 AOENotificationCallback,
37 FsoeState, FsoeError, FsoeConfig, FsoeStatus, SafeMdpConfig,
38};
39pub use master::core::{EtherCATMaster, IomapGuard, BuildResult, MasterBuilder};
40pub use slave::core::Slave;
41
42#[cfg(feature = "async-tokio")]
43pub use master::async_isolation::{CancelToken, ProgressFn};
44
45pub use utils::ffi::{
46 TIMING_AFTER, TIMING_BEFORE,
47 TRANS_IP, TRANS_OS, TRANS_PI, TRANS_PS, TRANS_SO, TRANS_SP,
48};
49
50pub use utils::ffi::{
51 LogCallback, CrashNotifyCallback, ProcessDataCyclicCallback,
52 SlaveStateChangeCallback, EmergencyEventCallback, SlaveDiscoveryCallback,
53 RedundancyModeChangedCallback,
54 PDOFrameLossCallback, SlavePreOpReconfigCallback,
55 FoEProgressCallback, DCSyncLostCallback,
56};
57
58pub use master::{
59 MasterEvents, SlaveEvents, SlaveIdentityMismatch,
60 EmergencyMessage, EmcyRecorder,
61 MasterDiagnosticsInfo, MasterPDODiagnostics, BreakPointInfo, PDOFrameLossStats,
62 WdkRtCounters, WdkFrameStats, get_wdk_rt_counters, get_wdk_frame_stats,
63 get_wdk_jitter_hist_bin, get_wdk_diag_counter,
64 MasterConfig, save_master_settings, load_master_settings,
65 MasterObjectDictionary,
66 MailboxGatewayService, MailboxGateway, MbgNativeStats,
67 RedundancyManager, RedundancyInfo,
68 HotConnect, HotConnectGroup, HotConnectStatus, HotPlugIdentityMismatch,
69 MasterOdEtg1510,
70
71 AlStatusClass, esm_is_legal_transition, esm_legal_transitions, esm_default_timeout_ms,
72 esm_is_known_al_status_code, esm_classify_al_status_code, esm_master_class,
73};
74
75pub use slave::{
76 EcDataType, ObjAccess, ObjectEntry, OdObject, OdList,
77 SoEInstance, SoEParameter, SoEAttributes, SoEDataType,
78 EoEInstance, EoEPingResult, eoe_ping,
79 FoEInstance,
80 AoEInstance, AoeTransMode, AoeSubscription, AoeSubscriptionManager,
81 VoEInstance, VoEResponse,
82 FsoeCrc16, SafetyManager, SafeMdp, FsoeConnectionInfo,
83 SlaveDC,
84 PdoMonitor,
85 SlavePdo,
86 CiA401, CiA401ErrorMode,
87 CiA402Instance, StateCiA402, ModeCiA402,
88 PdoMapEntry, Cia402PdoMap,
89 Cia402ReadStatus, Cia402ReadResult, Cia402Readable,
90 MdpModule, MdpModuleClass, MdpModuleProfile,
91 EsiLoader, EsiStartupParam, extract_startup_parameters,
92 StartupParameter, StartupParameterList,
93 SlaveTopology,
94};
95
96pub use slave::cia402::{
97 OD_CONTROLWORD, OD_STATUSWORD, OD_MODES_OF_OPERATION, OD_MODES_OF_OPERATION_DISPLAY,
98 OD_TARGET_POSITION, OD_POSITION_ACTUAL, OD_TARGET_VELOCITY, OD_VELOCITY_ACTUAL,
99 OD_TARGET_TORQUE, OD_TORQUE_ACTUAL, OD_PROFILE_VELOCITY, OD_PROFILE_ACCELERATION,
100 OD_PROFILE_DECELERATION, OD_QUICK_STOP_DECELERATION, OD_HOMING_METHOD, OD_HOMING_SPEEDS,
101 OD_HOME_OFFSET, OD_SUPPORTED_DRIVE_MODES, OD_DIGITAL_INPUTS, OD_DIGITAL_OUTPUTS,
102 OD_ERROR_CODE, OD_DRIVE_DATA,
103 CW_SHUTDOWN, CW_SWITCH_ON, CW_ENABLE_OPERATION, CW_DISABLE_VOLTAGE,
104 CW_QUICK_STOP, CW_FAULT_RESET, CW_HALT,
105 SW_FAULT, SW_TARGET_REACHED, SW_WARNING, SW_REMOTE,
106};
107
108pub use statics::{
109 ScannedSlaveInfo, NetworkInfo, get_scanned_slaves, get_network_adapters,
110 DllVersion, dll_version,
111 LicenseStatus, Authorization,
112};
113
114pub use statics::network::{EnumeratedNetworkInfo, enumerate_network_info};
115
116pub use utils::{
117 BaseData, EcValue, type_size, convert_from_bytes, convert_to_bytes, default_value,
118 ExpectedSlaveConfig, ActualSlaveInfo, SlaveVerifyDetail,
119 VerificationResult, verify_configuration,
120};
121
122pub use utils::kernel_guard;
123pub use utils::kernel_guard::{DarraKernelStatus, DarraKernelNotAvailableError};
124
125pub use utils::esi::{
126 EsiPhysicsPortType, EsiRevisionCheckStrategy,
127 EsiBootstrapInfo, EsiCoEDetails, EsiDcOpMode, EsiDcConfiguration,
128 EsiEepromConfiguration, EsiElectricalInfo, EsiIdentification, EsiMailboxTimeout,
129 EsiPdoEntry, EsiPdoInfo, EsiPdoConfiguration, EsiPhysicsPort, EsiPhysicsInfo,
130 EsiPortInfo, EsiStartupSdo, EsiStatistics, EsiSyncManagerInfo, EsiDeviceInfo,
131 calculate_eeprom_crc, validate_eeprom_crc, match_revision,
132};
133
134pub use logging::{LogManager, LogCategory, LogEntry, LogView, LogUpdatedCallback};