namespace and class outline
This commit is contained in:
parent
f93091a1ba
commit
9605766ddb
|
@ -65,7 +65,24 @@ set(SOURCE_FILES
|
|||
rdm/sensor.cpp
|
||||
rdm/status.h
|
||||
rdm/uid.h
|
||||
rdmnet/broker-protocol.h
|
||||
rdmnet/broker-protocol.cpp
|
||||
rdmnet/broker.h
|
||||
rdmnet/broker.cpp
|
||||
rdmnet/client.h
|
||||
rdmnet/client.cpp
|
||||
rdmnet/controller.h
|
||||
rdmnet/controller.cpp
|
||||
rdmnet/device.h
|
||||
rdmnet/device.cpp
|
||||
rdmnet/ept.h
|
||||
rdmnet/llrp.h
|
||||
rdmnet/manager.h
|
||||
rdmnet/manager.cpp
|
||||
rdmnet/rdmnet.h
|
||||
rdmnet/rpt.h
|
||||
rdmnet/target.h
|
||||
rdmnet/target.cpp
|
||||
sacn/data.cpp
|
||||
sacn/data.h
|
||||
sacn/extended.cpp
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
broker-protocol.cpp
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "broker-protocol.h"
|
||||
|
||||
namespace RDMnet {
|
||||
namespace BrokerProtocol {
|
||||
|
||||
/**
|
||||
* @brief Pdu::Pdu
|
||||
*/
|
||||
Pdu::Pdu()
|
||||
: ACN::PDU::Pdu(2)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Pdu::iStream
|
||||
* @param stream
|
||||
*/
|
||||
void Pdu::iStream([[maybe_unused]] ACN::PDU::Stream stream)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
} // namespace BrokerProtocol
|
||||
} // namespace RDMnet
|
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
broker-protocol.h
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "rdmnet.h"
|
||||
|
||||
namespace RDMnet {
|
||||
namespace BrokerProtocol {
|
||||
|
||||
/**
|
||||
* @brief 1.2.2 Broker Protocol
|
||||
*
|
||||
* The Broker Protocol enables the scalability and multi-controller
|
||||
* functionality of RDMnet. It uses a central server called a Broker to handle
|
||||
* discovery, maintain the state of the system and facilitate message routing.
|
||||
* The Broker routes messages between a set of other Components, which are
|
||||
* referred to as Clients. The Broker Protocol contains a small set of messages
|
||||
* that facilitate Client connection and discovery of other Clients.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @brief The BrokerProtocol::Pdu class
|
||||
*/
|
||||
class Pdu
|
||||
: public PDU::Pdu
|
||||
{
|
||||
public:
|
||||
Pdu();
|
||||
void iStream(PDU::Stream) override;
|
||||
};
|
||||
|
||||
} // namespace BrokerProtocol
|
||||
} // namespace RDMnet
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
broker.cpp
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
#include "broker.h"
|
||||
|
||||
namespace RDMnet {
|
||||
|
||||
/**
|
||||
* @brief Broker::Broker
|
||||
*/
|
||||
Broker::Broker()
|
||||
: ACN::Component()
|
||||
, LLRP::Target()
|
||||
, EPT::Client()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Broker::~Broker
|
||||
*/
|
||||
Broker::~Broker()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
} // namespace RDMnet
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
broker.h
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "acn/component.h"
|
||||
|
||||
#include "client.h"
|
||||
#include "rdmnet.h"
|
||||
#include "rpt.h"
|
||||
#include "target.h"
|
||||
|
||||
namespace RDMnet {
|
||||
|
||||
/**
|
||||
* @brief The Broker class
|
||||
*/
|
||||
class Broker
|
||||
: public ACN::Component
|
||||
, public LLRP::Target
|
||||
, public EPT::Client
|
||||
{
|
||||
public:
|
||||
Broker();
|
||||
virtual ~Broker();
|
||||
};
|
||||
|
||||
} // namespace RDMnet
|
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
client.cpp
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "client.h"
|
||||
|
||||
namespace RDMnet {
|
||||
namespace EPT {
|
||||
|
||||
/**
|
||||
* @brief Client::Client
|
||||
*/
|
||||
Client::Client()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Client::~Client
|
||||
*/
|
||||
Client::~Client()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
} // namespace EPT
|
||||
} // namespace RDMnet
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
client.h
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "ept.h"
|
||||
|
||||
namespace RDMnet {
|
||||
namespace EPT {
|
||||
|
||||
/**
|
||||
* @brief The EPT::Client class
|
||||
*/
|
||||
class Client
|
||||
{
|
||||
public:
|
||||
Client();
|
||||
virtual ~Client();
|
||||
};
|
||||
|
||||
} // namespace EPT
|
||||
} // namespace RDMnet
|
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
controller.cpp
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
#include "controller.h"
|
||||
|
||||
namespace RDMnet {
|
||||
|
||||
/**
|
||||
* @brief Controller::Controller
|
||||
*/
|
||||
Controller::Controller()
|
||||
: ACN::Component()
|
||||
, RDM::Controller()
|
||||
, LLRP::Target()
|
||||
, EPT::Client()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Controller::~Controller
|
||||
*/
|
||||
Controller::~Controller()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
} // namespace RDMnet
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
controller.h
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "acn/component.h"
|
||||
#include "rdm/controller.h"
|
||||
|
||||
#include "client.h"
|
||||
#include "rdmnet.h"
|
||||
#include "rpt.h"
|
||||
#include "target.h"
|
||||
|
||||
namespace RDMnet {
|
||||
|
||||
/**
|
||||
* @brief The Controller class
|
||||
*/
|
||||
class Controller
|
||||
: public ACN::Component
|
||||
, public RDM::Controller
|
||||
, public LLRP::Target
|
||||
, public EPT::Client
|
||||
{
|
||||
public:
|
||||
Controller();
|
||||
virtual ~Controller();
|
||||
};
|
||||
|
||||
} // namespace RDMnet
|
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
device.cpp
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
#include "device.h"
|
||||
|
||||
namespace RDMnet {
|
||||
|
||||
/**
|
||||
* @brief Controller::Controller
|
||||
*/
|
||||
Device::Device()
|
||||
: ACN::Component()
|
||||
, RDM::Responder()
|
||||
, LLRP::Target()
|
||||
, EPT::Client()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Controller::~Controller
|
||||
*/
|
||||
Device::~Device()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
} // namespace RDMnet
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
device.h
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "acn/component.h"
|
||||
#include "rdm/responder.h"
|
||||
|
||||
#include "client.h"
|
||||
#include "rdmnet.h"
|
||||
#include "rpt.h"
|
||||
#include "target.h"
|
||||
|
||||
namespace RDMnet {
|
||||
|
||||
/**
|
||||
* @brief The Device class
|
||||
*/
|
||||
class Device
|
||||
: public ACN::Component
|
||||
, public RDM::Responder
|
||||
, public LLRP::Target
|
||||
, public EPT::Client
|
||||
{
|
||||
public:
|
||||
Device();
|
||||
virtual ~Device();
|
||||
};
|
||||
|
||||
} // namespace RDMnet
|
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
ept.h
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
namespace RDMnet {
|
||||
namespace EPT {
|
||||
|
||||
/**
|
||||
* @brief 1.2.4 Extensible Packet Transport (EPT)
|
||||
*
|
||||
* EPT allows non-RDM data to be transmitted using a Broker. It uses a simple
|
||||
* message format which addresses Components solely by their CID, and allows
|
||||
* manufacturer-defined data to be transmitted between Components free from the
|
||||
* message format and behavioral restrictions of RDM.
|
||||
*/
|
||||
|
||||
|
||||
} // namespace EPT
|
||||
} // namespace RDMnet
|
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
llrp.h
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
namespace RDMnet {
|
||||
namespace LLRP {
|
||||
|
||||
/**
|
||||
* @brief 1.2.1 Low-Level Recovery Protocol (LLRP)
|
||||
*
|
||||
* LLRP is a multicast protocol that provides basic IP configuration. It has
|
||||
* its own limited discovery mechanism, which does not require a valid IP
|
||||
* configuration. LLRP is intended as a light-weight protocol, and as such it
|
||||
* is not designed for scalability or for discovery and normal operation on a
|
||||
* large network.
|
||||
*/
|
||||
|
||||
} // namespace LLRP
|
||||
} // namespace RDMnet
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
manager.cpp
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "manager.h"
|
||||
|
||||
namespace RDMnet {
|
||||
namespace LLRP {
|
||||
|
||||
/**
|
||||
* @brief Manager::Manager
|
||||
*/
|
||||
Manager::Manager()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Manager::~Manager
|
||||
*/
|
||||
Manager::~Manager()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
} // namespace LLRP
|
||||
} // namespace RDMnet
|
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
manager.h
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "rdmnet.h"
|
||||
#include "llrp.h"
|
||||
|
||||
namespace RDMnet {
|
||||
namespace LLRP {
|
||||
|
||||
/**
|
||||
* @brief The LLRP::Manager class
|
||||
*/
|
||||
class Manager
|
||||
{
|
||||
public:
|
||||
Manager();
|
||||
virtual ~Manager();
|
||||
};
|
||||
|
||||
} // namespace LLRP
|
||||
} // namespace RDMnet
|
|
@ -25,10 +25,12 @@
|
|||
|
||||
#include <string>
|
||||
#include "acn/acn.h"
|
||||
#include "rdm/rdm.h"
|
||||
#include "uuid/uuid.h"
|
||||
|
||||
namespace RDMnet {
|
||||
using namespace ACN;
|
||||
using namespace RDM;
|
||||
|
||||
/// Appendix A: Defined Parameters (Normative)
|
||||
// MDNS_IPV4_MULTICAST_ADDRESS 224.0.0.251 (Informative)
|
||||
|
@ -131,10 +133,10 @@ using namespace ACN;
|
|||
static const uint16_t VECTOR_EPT_STATUS_UNKNOWN_VECTOR = 0x0002; //!< Section 8.3.4.3
|
||||
|
||||
/// A.15 RDM Parameter ID
|
||||
static const uint16_t COMPONENT_SCOPE = 0x0800; //!< B/C/D
|
||||
static const uint16_t SEARCH_DOMAIN = 0x0801; //!< C/D
|
||||
static const uint16_t TCP_COMMS_STATUS = 0x0802; //!< C/D
|
||||
static const uint16_t BROKER_STATUS = 0x0803; //!< B
|
||||
static const PID COMPONENT_SCOPE = 0x0800; //!< B/C/D
|
||||
static const PID SEARCH_DOMAIN = 0x0801; //!< C/D
|
||||
static const PID TCP_COMMS_STATUS = 0x0802; //!< C/D
|
||||
static const PID BROKER_STATUS = 0x0803; //!< B
|
||||
|
||||
/// A.16 Additional Response NACK Reason Codes
|
||||
static const uint16_t NR_ACTION_NOT_SUPPORTED = 0x000B; //!< The specified action is not supported.
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
rpt.h
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
namespace RDMnet {
|
||||
namespace RPT {
|
||||
|
||||
/**
|
||||
* @brief 1.2.3 RDM Packet Transport (RPT)
|
||||
*
|
||||
* RPT transports RDM messages over IP and supports a multi-controller
|
||||
* environment. RPT equipment relies on initial configuration by LLRP, or by
|
||||
* alternative means, to operate correctly. The RPT protocol is designed to
|
||||
* scale communication to tens of thousands of Components via use of the Broker
|
||||
* Protocol. The ultimate limit to the size of a system is determined by the
|
||||
* infrastructure and not by the protocol itself.
|
||||
*/
|
||||
|
||||
|
||||
} // namespace RPT
|
||||
} // namespace RDMnet
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
target.cpp
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "target.h"
|
||||
|
||||
namespace RDMnet {
|
||||
namespace LLRP {
|
||||
|
||||
/**
|
||||
* @brief Target::Target
|
||||
*/
|
||||
Target::Target()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Target::~Target
|
||||
*/
|
||||
Target::~Target()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
} // namespace LLRP
|
||||
} // namespace RDMnet
|
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
target.h
|
||||
|
||||
Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "rdmnet.h"
|
||||
#include "llrp.h"
|
||||
|
||||
namespace RDMnet {
|
||||
namespace LLRP {
|
||||
|
||||
/**
|
||||
* @brief The LLRP::Target class
|
||||
*/
|
||||
class Target
|
||||
{
|
||||
public:
|
||||
Target();
|
||||
virtual ~Target();
|
||||
};
|
||||
|
||||
} // namespace LLRP
|
||||
} // namespace RDMnet
|
Loading…
Reference in New Issue