1
0
Fork 0

namespace and class outline

This commit is contained in:
Kevin Matz 2021-08-12 13:13:00 -04:00
parent f93091a1ba
commit 9605766ddb
19 changed files with 818 additions and 4 deletions

View File

@ -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

View File

@ -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

55
rdmnet/broker-protocol.h Normal file
View File

@ -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

48
rdmnet/broker.cpp Normal file
View File

@ -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

48
rdmnet/broker.h Normal file
View File

@ -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

51
rdmnet/client.cpp Normal file
View File

@ -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

42
rdmnet/client.h Normal file
View File

@ -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

49
rdmnet/controller.cpp Normal file
View File

@ -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

50
rdmnet/controller.h Normal file
View File

@ -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

49
rdmnet/device.cpp Normal file
View File

@ -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

50
rdmnet/device.h Normal file
View File

@ -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

40
rdmnet/ept.h Normal file
View File

@ -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

40
rdmnet/llrp.h Normal file
View File

@ -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

48
rdmnet/manager.cpp Normal file
View File

@ -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

43
rdmnet/manager.h Normal file
View File

@ -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

View File

@ -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.

42
rdmnet/rpt.h Normal file
View File

@ -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

48
rdmnet/target.cpp Normal file
View File

@ -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

43
rdmnet/target.h Normal file
View File

@ -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