Skip to main content

darra_ethercat/
lib.rs

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};