assignable ID numbers at construction
This commit is contained in:
parent
16217879c1
commit
2ebc026af7
|
@ -30,15 +30,16 @@ namespace RDM {
|
|||
/**
|
||||
* @brief Device::Device
|
||||
*/
|
||||
Device::Device(Device* parent)
|
||||
Device::Device(UID id, Device* parent)
|
||||
: DMX::Device()
|
||||
, deviceModelID(0)
|
||||
, deviceModelDescription("Basic RDM Device")
|
||||
, deviceProductCategory(PRODUCT_CATEGORY_NOT_DECLARED)
|
||||
, id_(id)
|
||||
, parent_(parent)
|
||||
, status_reporting_threshold_(STATUS_ADVISORY)
|
||||
{
|
||||
id.manufacturer = MY_ESTA_MANUFACTURER_ID;
|
||||
id_.manufacturer = MY_ESTA_MANUFACTURER_ID;
|
||||
|
||||
queued_statuses_.emplace(STATUS_ADVISORY, std::queue<StatusPtr>());
|
||||
queued_statuses_.emplace(STATUS_WARNING, std::queue<StatusPtr>());
|
||||
|
|
|
@ -41,7 +41,7 @@ class Device
|
|||
: public DMX::Device
|
||||
{
|
||||
public:
|
||||
Device(Device* parent = nullptr);
|
||||
Device(UID id = UID(), Device* parent = nullptr);
|
||||
virtual ~Device();
|
||||
|
||||
void addSubDevice(uint16_t number, Device* dev);
|
||||
|
@ -55,13 +55,13 @@ public:
|
|||
virtual void identify(bool state) { identifying_ = state; }
|
||||
virtual void reset(bool hard) { (void)hard; }
|
||||
|
||||
UID id;
|
||||
uint16_t deviceModelID;
|
||||
std::string deviceModelDescription;
|
||||
uint16_t deviceProductCategory;
|
||||
|
||||
protected:
|
||||
friend class Responder;
|
||||
UID id_;
|
||||
std::unordered_map<uint16_t, Device*> sub_devices_;
|
||||
std::unordered_map<PID, Parameter*> parameters_;
|
||||
std::vector<Sensor*> sensors_;
|
||||
|
|
|
@ -31,8 +31,8 @@ namespace RDM {
|
|||
/**
|
||||
* @brief Responder::Responder
|
||||
*/
|
||||
Responder::Responder()
|
||||
: Device()
|
||||
Responder::Responder(UID id, Device* parent)
|
||||
: Device(id, parent)
|
||||
, control_field(0)
|
||||
{
|
||||
deviceModelID = 1;
|
||||
|
@ -169,7 +169,7 @@ void Responder::receive(const MsgPtr message)
|
|||
}
|
||||
|
||||
// RDM::UID::operator== also returns true for broadcast messages
|
||||
if (message->destination != id ||
|
||||
if (message->destination != id_ ||
|
||||
message->incorrect_sc ||
|
||||
message->incorrect_sub_sc)
|
||||
return;
|
||||
|
@ -199,7 +199,7 @@ void Responder::receive(const MsgPtr message)
|
|||
return;
|
||||
|
||||
auto response = MsgPtr(new Message());
|
||||
response->source = id;
|
||||
response->source = id_;
|
||||
response->destination = message->source;
|
||||
response->subDevice = message->subDevice;
|
||||
response->parameterId = message->parameterId;
|
||||
|
@ -362,19 +362,19 @@ void Responder::actionDiscoverUniqueBranch(const MsgPtr message, MsgPtr response
|
|||
upper.manufacturer = Message::readType<uint16_t>(*message->data(), 6);
|
||||
upper.device = Message::readType<uint32_t>(*message->data(), 8);
|
||||
|
||||
if (id.uid < lower.uid)
|
||||
if (id_.uid < lower.uid)
|
||||
{
|
||||
response->do_no_send = true;
|
||||
return;
|
||||
}
|
||||
if (id.uid > upper.uid)
|
||||
if (id_.uid > upper.uid)
|
||||
{
|
||||
response->do_no_send = true;
|
||||
return;
|
||||
}
|
||||
|
||||
response->appendData(id.manufacturer);
|
||||
response->appendData(id.device);
|
||||
response->appendData(id_.manufacturer);
|
||||
response->appendData(id_.device);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ class Responder
|
|||
: public Device
|
||||
{
|
||||
public:
|
||||
Responder();
|
||||
Responder(UID id, Device* parent = nullptr);
|
||||
virtual ~Responder();
|
||||
|
||||
union {
|
||||
|
|
|
@ -41,7 +41,7 @@ class Broker
|
|||
, public EPT::Client
|
||||
{
|
||||
public:
|
||||
Broker();
|
||||
Broker(UUID::uuid = UUID::uuid());
|
||||
virtual ~Broker();
|
||||
};
|
||||
|
||||
|
|
|
@ -28,11 +28,12 @@ namespace RDMnet {
|
|||
/**
|
||||
* @brief Controller::Controller
|
||||
*/
|
||||
Device::Device(UUID::uuid cid)
|
||||
Device::Device(UUID::uuid cid, UUID::uuid rid, RDM::UID uid)
|
||||
: ACN::Component(cid)
|
||||
, RDM::Responder()
|
||||
, RDM::Responder(uid)
|
||||
, LLRP::Target()
|
||||
, EPT::Client()
|
||||
, rid_(rid)
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -43,8 +43,13 @@ class Device
|
|||
, public EPT::Client
|
||||
{
|
||||
public:
|
||||
Device(UUID::uuid = UUID::uuid());
|
||||
Device(UUID::uuid cid = UUID::uuid(),
|
||||
UUID::uuid rid = UUID::uuid(),
|
||||
RDM::UID uid = RDM::UID());
|
||||
virtual ~Device();
|
||||
|
||||
private:
|
||||
UUID::uuid rid_;
|
||||
};
|
||||
|
||||
} // namespace RDMnet
|
||||
|
|
Loading…
Reference in New Issue