Simulate domain state
This commit is contained in:
parent
4795be145a
commit
013aafc329
|
|
@ -26,9 +26,9 @@
|
|||
#include <sstream>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
#include <unordered_set>
|
||||
#include <iterator>
|
||||
|
||||
|
||||
static std::vector<size_t> getPermutationVector(size_t count);
|
||||
|
||||
size_t pdo::sizeInBytes() const
|
||||
|
|
@ -61,10 +61,13 @@ ec_domain::ec_domain(rtipc *rtipc, const char *prefix) : rt_group(rtipc_create_g
|
|||
|
||||
int ec_domain::activate(int domain_id)
|
||||
{
|
||||
std::unordered_set<uint32_t> slaves;
|
||||
|
||||
connected.resize(mapped_pdos.size());
|
||||
size_t idx = 0;
|
||||
for (const auto &pdo : mapped_pdos)
|
||||
{
|
||||
slaves.insert(pdo.slave_address.getCombined());
|
||||
void *rt_pdo = nullptr;
|
||||
char buf[512];
|
||||
const auto fmt = snprintf(buf, sizeof(buf), "%s/%d/%08X/%04X", prefix, domain_id, pdo.slave_address.getCombined(), pdo.pdo_index);
|
||||
|
|
@ -95,6 +98,7 @@ int ec_domain::activate(int domain_id)
|
|||
++idx;
|
||||
}
|
||||
activated_ = true;
|
||||
numSlaves = slaves.size();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -153,6 +157,9 @@ int ecrt_domain_state(
|
|||
information. */
|
||||
)
|
||||
{
|
||||
state->working_counter = domain->getNumSlaves();
|
||||
state->redundancy_active = 0;
|
||||
state->wc_state = EC_WC_COMPLETE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -165,6 +165,7 @@ private:
|
|||
rtipc_group *rt_group;
|
||||
const char *prefix;
|
||||
bool activated_ = false;
|
||||
size_t numSlaves = 0;
|
||||
|
||||
public:
|
||||
explicit ec_domain(struct rtipc *rtipc, const char *prefix);
|
||||
|
|
@ -180,6 +181,8 @@ public:
|
|||
int process();
|
||||
int queue();
|
||||
|
||||
size_t getNumSlaves() const { return numSlaves; }
|
||||
|
||||
ssize_t map(ec_slave_config const &config, unsigned int syncManager,
|
||||
uint16_t pdo_index);
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue