Motion Master
Loading...
Searching...
No Matches
ethernet_master.h
Go to the documentation of this file.
1#include <chrono>
2#include <map>
3#include <memory>
4#include <string>
5#include <thread>
6
7#include "ethercat_master.h"
8#include "ethercat_slave.h"
9#include "notifier.h"
10
12 Notifier &notifier_;
13 std::vector<std::string> ipAddresses_;
14 std::atomic_bool running_;
15 bool pdo_communication_possible_ = false;
16
17 public:
36 static std::map<uint16_t, std::unique_ptr<EthercatSlave>> slaveMap;
37 explicit EthernetMaster(Notifier &notifier,
38 const std::vector<std::string> ipAddresses);
39 ~EthernetMaster() override;
40 size_t start() override;
41 void stop() override;
42 size_t restart() override;
43 int32_t execute(uint64_t pending_signals) override;
44 bool is_running() override;
45 int get_slaves_responding() override;
46 std::list<VirtualDevice *> get_slaves() override;
47 bool disable_all_slaves() override;
48 void abort_all_client_requests() override {};
49 static void wait_for_slaves(Notifier &notifier,
50 const std::vector<std::string> ipAddresses);
51};
Definition: ethercat_master.h:9
Definition: ethernet_master.h:11
void abort_all_client_requests() override
Definition: ethernet_master.h:48
size_t start() override
Start the EtherCAT master.
Definition: ethernet_master.cc:49
bool disable_all_slaves() override
Switch all slaves to PREOP.
Definition: ethernet_master.cc:110
int32_t execute(uint64_t pending_signals) override
Main EtherCAT master loop function to be executed at one millisecond interval.
Definition: ethernet_master.cc:82
std::list< VirtualDevice * > get_slaves() override
Get all of the available slaves.
Definition: ethernet_master.cc:102
static std::map< uint16_t, std::unique_ptr< EthercatSlave > > slaveMap
Static map of EtherCAT slave instances.
Definition: ethernet_master.h:36
bool is_running() override
Check if the EtherCAT master is currently running.
Definition: ethernet_master.cc:98
size_t restart() override
Returns the number of EtherCAT slaves during a restart.
Definition: ethernet_master.cc:80
~EthernetMaster() override
Definition: ethernet_master.cc:44
void stop() override
Stop the EtherCAT master.
Definition: ethernet_master.cc:60
int get_slaves_responding() override
Return the number of slaves actually responding on the bus.
Definition: ethernet_master.cc:100
static void wait_for_slaves(Notifier &notifier, const std::vector< std::string > ipAddresses)
Definition: ethernet_master.cc:115
Definition: notifier.h:10