1
0
Fork 0

construct specialized Packets around preexisting data

This commit is contained in:
Kevin Matz 2023-05-20 14:39:50 -04:00
parent 33c6e35228
commit 9114e227f7
3 changed files with 138 additions and 52 deletions

View File

@ -37,13 +37,10 @@ Controller::Controller()
*/
void Controller::txArtPoll(TalkToMe talkToMe, Priority priority) const
{
auto packet = std::make_shared<ArtPoll>();
auto data_opt = packet->data<poll_data>();
if (!data_opt.has_value())
return;
auto data = data_opt.value();
auto data = std::make_shared<poll_data>();
data->talk_to_me = talkToMe;
data->diagnostic_level = priority;
auto packet = std::make_shared<ArtPoll>(data);
send(packet, broadcastIp());
}

View File

@ -553,8 +553,10 @@ void Device::rxArtDirectoryReply(std::shared_ptr<ArtDirectoryReply> packet)
*/
void Device::txArtPollReply()
{
auto packet = std::make_shared<ArtPollReply>();
auto data = std::make_shared<pollreply_data>();
/// \todo impliment txArtPollReply
auto packet = std::make_shared<ArtPollReply>(data);
send(packet, broadcastIp());
}
@ -563,7 +565,6 @@ void Device::txArtPollReply()
*/
void Device::txArtDiagData()
{
auto packet = std::make_shared<ArtDiagData>();
/// \todo impliment txArtDiagData
}

View File

@ -578,8 +578,12 @@ protected:
struct ArtPoll
: public Packet
{
ArtPoll()
: Packet(OpPoll, std::make_shared<poll_data>())
/**
* @brief ArtPoll
* @param data
*/
ArtPoll(std::shared_ptr<poll_data> data = std::make_shared<poll_data>())
: Packet(OpPoll, data)
{}
};
@ -590,8 +594,12 @@ struct ArtPoll
struct ArtPollReply
: public Packet
{
ArtPollReply()
: Packet(OpPollReply, std::make_shared<pollreply_data>())
/**
* @brief ArtPollReply
* @param data
*/
ArtPollReply(std::shared_ptr<pollreply_data> data = std::make_shared<pollreply_data>())
: Packet(OpPollReply, data)
{}
};
@ -602,8 +610,12 @@ struct ArtPollReply
struct ArtIpProg
: public Packet
{
ArtIpProg()
: Packet(OpIpProg, std::make_shared<ipprog_data>())
/**
* @brief ArtIpProg
* @param data
*/
ArtIpProg(std::shared_ptr<ipprog_data> data = std::make_shared<ipprog_data>())
: Packet(OpIpProg, data)
{}
};
@ -614,8 +626,12 @@ struct ArtIpProg
struct ArtIpProgReply
: public Packet
{
ArtIpProgReply()
: Packet(OpIpProgReply, std::make_shared<ipprogreply_data>())
/**
* @brief ArtIpProgReply
* @param data
*/
ArtIpProgReply(std::shared_ptr<ipprogreply_data> data = std::make_shared<ipprogreply_data>())
: Packet(OpIpProgReply, data)
{}
};
@ -626,8 +642,12 @@ struct ArtIpProgReply
struct ArtAddress
: public Packet
{
ArtAddress()
: Packet(OpAddress, std::make_shared<address_data>())
/**
* @brief ArtAddress
* @param data
*/
ArtAddress(std::shared_ptr<address_data> data = std::make_shared<address_data>())
: Packet(OpAddress, data)
{}
};
@ -638,13 +658,19 @@ struct ArtAddress
struct ArtDiagData
: public Packet
{
ArtDiagData()
: Packet(OpDiagData, std::make_shared<diagdata_data>())
/**
* @brief ArtDiagData
* @param data
*/
ArtDiagData(std::shared_ptr<diagdata_data> data = std::make_shared<diagdata_data>())
: Packet(OpDiagData, data)
{}
};
/**
* @brief The ArtDirectory class
*/
struct ArtDirectory
: public Packet
{
@ -654,7 +680,9 @@ struct ArtDirectory
};
/**
* @brief The ArtDirectoryReply class
*/
struct ArtDirectoryReply
: public Packet
{
@ -754,8 +782,12 @@ struct ArtMediaControlReply
struct ArtTimeCode
: public Packet
{
ArtTimeCode()
: Packet(OpTimeCode, std::make_shared<timecode_data>())
/**
* @brief ArtTimeCode
* @param data
*/
ArtTimeCode(std::shared_ptr<timecode_data> data = std::make_shared<timecode_data>())
: Packet(OpTimeCode, data)
{}
};
@ -773,13 +805,17 @@ struct ArtTimeSync
/**
* @brief The ArtCommand Packet
* @brief The ArtCommand class
*/
struct ArtCommand
: public Packet
{
ArtCommand()
: Packet(OpCommand, std::make_shared<command_data>())
/**
* @brief ArtCommand
* @param data
*/
ArtCommand(std::shared_ptr<command_data> data = std::make_shared<command_data>())
: Packet(OpCommand, data)
{}
};
@ -790,8 +826,12 @@ struct ArtCommand
struct ArtTrigger
: public Packet
{
ArtTrigger()
: Packet(OpTrigger, std::make_shared<trigger_data>())
/**
* @brief ArtTrigger
* @param data
*/
ArtTrigger(std::shared_ptr<trigger_data> data = std::make_shared<trigger_data>())
: Packet(OpTrigger, data)
{}
};
@ -802,8 +842,12 @@ struct ArtTrigger
struct ArtDmx
: public Packet
{
ArtDmx()
: Packet(OpDmx, std::make_shared<dmx_data>())
/**
* @brief ArtDmx
* @param data
*/
ArtDmx(std::shared_ptr<dmx_data> data = std::make_shared<dmx_data>())
: Packet(OpDmx, data)
{}
};
@ -814,8 +858,12 @@ struct ArtDmx
struct ArtSync
: public Packet
{
ArtSync()
: Packet(OpSync, std::make_shared<sync_data>())
/**
* @brief ArtSync
* @param data
*/
ArtSync(std::shared_ptr<sync_data> data = std::make_shared<sync_data>())
: Packet(OpSync, data)
{}
};
@ -826,8 +874,12 @@ struct ArtSync
struct ArtNzs
: public Packet
{
ArtNzs()
: Packet(OpNzs, std::make_shared<nzs_data>())
/**
* @brief ArtNzs
* @param data
*/
ArtNzs(std::shared_ptr<nzs_data> data = std::make_shared<nzs_data>())
: Packet(OpNzs, data)
{}
/**
@ -850,8 +902,12 @@ struct ArtNzs
struct ArtVlc
: public Packet
{
ArtVlc()
: Packet(OpNzs, std::make_shared<vlc_data>())
/**
* @brief ArtVlc
* @param data
*/
ArtVlc(std::shared_ptr<vlc_data> data = std::make_shared<vlc_data>())
: Packet(OpNzs, data)
{}
};
@ -862,8 +918,12 @@ struct ArtVlc
struct ArtInput
: public Packet
{
ArtInput()
: Packet(OpInput, std::make_shared<input_data>())
/**
* @brief ArtInput
* @param data
*/
ArtInput(std::shared_ptr<input_data> data = std::make_shared<input_data>())
: Packet(OpInput, data)
{}
};
@ -874,8 +934,12 @@ struct ArtInput
struct ArtFirmwareMaster
: public Packet
{
ArtFirmwareMaster()
: Packet(OpFirmwareMaster, std::make_shared<firmwaremaster_data>())
/**
* @brief ArtFirmwareMaster
* @param data
*/
ArtFirmwareMaster(std::shared_ptr<firmwaremaster_data> data = std::make_shared<firmwaremaster_data>())
: Packet(OpFirmwareMaster, data)
{}
};
@ -886,8 +950,12 @@ struct ArtFirmwareMaster
struct ArtFirmwareReply
: public Packet
{
ArtFirmwareReply()
: Packet(OpFirmwareReply, std::make_shared<firmwarereply_data>())
/**
* @brief ArtFirmwareReply
* @param data
*/
ArtFirmwareReply(std::shared_ptr<firmwarereply_data> data = std::make_shared<firmwarereply_data>())
: Packet(OpFirmwareReply, data)
{}
};
@ -898,8 +966,12 @@ struct ArtFirmwareReply
struct ArtTodRequest
: public Packet
{
ArtTodRequest()
: Packet(OpTodRequest, std::make_shared<todrequest_data>())
/**
* @brief ArtTodRequest
* @param data
*/
ArtTodRequest(std::shared_ptr<todrequest_data> data = std::make_shared<todrequest_data>())
: Packet(OpTodRequest, data)
{}
};
@ -910,8 +982,12 @@ struct ArtTodRequest
struct ArtTodData
: public Packet
{
ArtTodData()
: Packet(OpTodData, std::make_shared<toddata_data>())
/**
* @brief ArtTodData
* @param data
*/
ArtTodData(std::shared_ptr<toddata_data> data = std::make_shared<toddata_data>())
: Packet(OpTodData, data)
{}
};
@ -922,8 +998,12 @@ struct ArtTodData
struct ArtTodControl
: public Packet
{
ArtTodControl()
: Packet(OpTodControl, std::make_shared<todcontrol_data>())
/**
* @brief ArtTodControl
* @param data
*/
ArtTodControl(std::shared_ptr<todcontrol_data> data = std::make_shared<todcontrol_data>())
: Packet(OpTodControl, data)
{}
};
@ -934,8 +1014,12 @@ struct ArtTodControl
struct ArtRdm
: public Packet
{
ArtRdm()
: Packet(OpRdm, std::make_shared<rdm_data>())
/**
* @brief ArtRdm
* @param data
*/
ArtRdm(std::shared_ptr<rdm_data> data = std::make_shared<rdm_data>())
: Packet(OpRdm, data)
{}
};
@ -946,8 +1030,12 @@ struct ArtRdm
struct ArtRdmSub
: public Packet
{
ArtRdmSub()
: Packet(OpRdmSub, std::make_shared<rdmsub_data>())
/**
* @brief ArtRdmSub
* @param data
*/
ArtRdmSub(std::shared_ptr<rdmsub_data> data = std::make_shared<rdmsub_data>())
: Packet(OpRdmSub, data)
{}
};