1
0
Fork 0

remove unnecessary template parameter declarations

This commit is contained in:
Kevin Matz 2021-08-11 09:42:43 -04:00
parent 6684a90b4e
commit e273f2ffa6
4 changed files with 93 additions and 88 deletions

View File

@ -335,7 +335,7 @@ void Device::actionGetSupportedParameters(const Message *message, Message *respo
std::advance(pid, first);
while (pid != parameters_.end() && response->length() < 0xfe)
{
response->appendData<PID>(pid->first);
response->appendData(pid->first);
pid++;
}
}
@ -352,16 +352,16 @@ void Device::actionGetDeviceInfo(const Message *message, Message *response)
return;
response->responseType = RESPONSE_TYPE_ACK;
response->appendData<uint16_t>(RDM_PROTOCOL_VERSION);
response->appendData<uint16_t>(deviceModelID);
response->appendData<uint16_t>(deviceProductCategory);
response->appendData<uint32_t>(LIB_VERSION);
response->appendData<uint16_t>(DMX::Device::footprint());
response->appendData<uint8_t> (DMX::Device::personality());
response->appendData<uint8_t> (DMX::Device::personalityCount());
response->appendData<uint16_t>(DMX::Device::address());
response->appendData<uint16_t>(subDeviceCount());
response->appendData<uint8_t> (sensors_.size());
response->appendData(RDM_PROTOCOL_VERSION);
response->appendData(deviceModelID);
response->appendData(deviceProductCategory);
response->appendData(LIB_VERSION);
response->appendData(DMX::Device::footprint());
response->appendData(DMX::Device::personality());
response->appendData(DMX::Device::personalityCount());
response->appendData(DMX::Device::address());
response->appendData(subDeviceCount());
response->appendData<uint8_t>(sensors_.size());
}
@ -378,11 +378,11 @@ void Device::actionGetProductDetailIdList(const Message *message, Message *respo
response->responseType = RESPONSE_TYPE_ACK;
if (product_detail_list_.empty())
{
response->appendData<uint16_t>(PRODUCT_DETAIL_NOT_DECLARED);
response->appendData(PRODUCT_DETAIL_NOT_DECLARED);
return;
}
for ( uint16_t id : product_detail_list_ )
response->appendData<uint16_t>(id);
for ( uint16_t detail : product_detail_list_ )
response->appendData(detail);
}
@ -401,7 +401,7 @@ void Device::actionGetDevModelDescription(const Message *message, Message *respo
{
if (i > 32)
break;
response->appendData<char>(deviceModelDescription.at(i));
response->appendData(deviceModelDescription.at(i));
}
}
@ -422,7 +422,7 @@ void Device::actionGetManufacturerLabel(const Message *message, Message *respons
{
if (i > 32)
break;
response->appendData<char>(label.at(i));
response->appendData(label.at(i));
}
}
@ -440,7 +440,7 @@ void Device::actionGetLanguage(const Message *message, Message *response)
response->responseType = RESPONSE_TYPE_ACK;
std::string label = std::string("en");
for (char& c : label)
response->appendData<char>(c);
response->appendData(c);
}
@ -484,7 +484,7 @@ void Device::actionGetSoftwareVersionLabel(const Message *message, Message *resp
{
if (i > 32)
break;
response->appendData<char>(label.at(i));
response->appendData(label.at(i));
}
}
@ -500,8 +500,8 @@ void Device::actionGetDmxPersonality(const Message *message, Message *response)
return;
response->responseType = RESPONSE_TYPE_ACK;
response->appendData<uint8_t>(DMX::Device::personality());
response->appendData<uint8_t>(DMX::Device::personalityCount());
response->appendData(DMX::Device::personality());
response->appendData(DMX::Device::personalityCount());
}
@ -522,8 +522,10 @@ void Device::actionSetDmxPersonality(const Message *message, Message *response)
response->nak(NR_DATA_OUT_OF_RANGE);
return;
}
response->responseType = RESPONSE_TYPE_ACK;
setPersonality(mode);
response->responseType = RESPONSE_TYPE_ACK;
}
@ -545,13 +547,13 @@ void Device::actionGetDmxPersonalityDesc(const Message *message, Message *respon
return;
}
response->responseType = RESPONSE_TYPE_ACK;
response->appendData<uint8_t>(mode);
response->appendData<uint16_t>(personalities_.at(mode)->footprint());
response->appendData(mode);
response->appendData(personalities_.at(mode)->footprint());
for (size_t i = 0; i < personalities_.at(mode)->description.size(); i++)
{
if (i > 32)
break;
response->appendData<char>(personalities_.at(mode)->description.at(i));
response->appendData(personalities_.at(mode)->description.at(i));
}
}
@ -570,7 +572,7 @@ void Device::actionGetDmxStartAddress(const Message *message, Message *response)
if (footprint() == 0)
response->appendData<uint16_t>(0xFFFF);
else
response->appendData<uint16_t>(address());
response->appendData(address());
}

View File

@ -123,13 +123,13 @@ void Message::read(const std::vector<uint8_t> &data)
// 6.2.4 Destination UID
// The Destination UID is the UID of the target device(s).
destination.manufacturer = Message::readType<uint16_t>(data, 3);
destination.device = Message::readType<uint32_t>(data, 5);
destination.manufacturer = readType<uint16_t>(data, 3);
destination.device = readType<uint32_t>(data, 5);
// 6.2.5 Source UID
// The Source UID is the UID of the device originating this packet.
source.manufacturer = Message::readType<uint16_t>(data, 9);
source.device = Message::readType<uint32_t>(data, 11);
source.manufacturer = readType<uint16_t>(data, 9);
source.device = readType<uint32_t>(data, 11);
// 6.2.6 Transaction Number (TN)
// Controller generated packets increment this field every time an RDM packet
@ -162,7 +162,7 @@ void Message::read(const std::vector<uint8_t> &data)
// not belong to any sub-device module.
// The Parameter ID designates which parameter on the sub-device is being
// addressed. The use of Sub-Devices is described further in Section 9.
subDevice = Message::readType<uint16_t>(data, 18);
subDevice = readType<uint16_t>(data, 18);
// 6.2.10.1 Command Class (CC)
commandClass = data[20];
@ -174,7 +174,7 @@ void Message::read(const std::vector<uint8_t> &data)
// Manufacturer-specific parameter whose details are either published by the
// Manufacturer for third-party support or proprietary for the Manufacturers
// own use.
propertyID = Message::readType<uint16_t>(data, 21);
propertyID = readType<uint16_t>(data, 21);
// 6.2.10.3 Parameter Data Length (PDL)
// The Parameter Data Length (PDL) is the number of slots included in the
@ -185,12 +185,12 @@ void Message::read(const std::vector<uint8_t> &data)
// 6.2.10.4 Parameter Data (PD)
// The Parameter Data is of variable length.
for (int i = 0; i < pdl; i++)
appendData<uint8_t>(data[24+i]);
appendData(data[24+i]);
// 6.2.11 Checksum
// If the checksum field in the packet does not match the calculated checksum,
// then the packet shall be discarded and no response sent.
auto chksum = Message::readType<uint16_t>(data, data.size() - 2);
auto chksum = readType<uint16_t>(data, data.size() - 2);
if (chksum != checksum())
{
checksum_fail = true;
@ -214,19 +214,19 @@ void Message::write(std::vector<uint8_t> &data) const
data.push_back(SC_RDM);
data.push_back(SC_SUB_MESSAGE);
data.push_back(24 + length());
writeType<uint16_t>(data, destination.manufacturer);
writeType<uint32_t>(data, destination.device);
writeType<uint16_t>(data, source.manufacturer);
writeType<uint32_t>(data, source.device);
writeType(data, destination.manufacturer);
writeType(data, destination.device);
writeType(data, source.manufacturer);
writeType(data, source.device);
data.push_back(transaction);
data.push_back(portID);
data.push_back(messageCount);
writeType<uint16_t>(data, subDevice);
writeType(data, subDevice);
data.push_back(commandClass);
writeType<uint16_t>(data, propertyID);
writeType(data, propertyID);
data.push_back(length());
data.insert(data.end(), data_.begin(), data_.end());
writeType<uint16_t>(data, checksum());
writeType(data, checksum());
}
@ -242,7 +242,7 @@ void Message::writeDiscBranch(std::vector<uint8_t> &data) const
uint16_t sum = 0;
for ( const uint8_t& v : data_)
sum = addSum_<uint8_t>(sum, v);
sum = addSum_(sum, v);
std::vector<uint8_t> d = data_;
writeType<uint16_t>(d, sum);
@ -263,7 +263,7 @@ void Message::nak(uint16_t reason)
{
data_.clear();
responseType = RESPONSE_TYPE_NACK_REASON;
appendData<uint16_t>(reason);
appendData(reason);
}
@ -276,22 +276,22 @@ uint16_t Message::checksum() const
{
uint16_t sum = 0;
sum = addSum_<uint8_t> (sum, SC_RDM);
sum = addSum_<uint8_t> (sum, SC_SUB_MESSAGE);
sum = addSum_<uint8_t> (sum, 24 + length());
sum = addSum_<uint16_t>(sum, source.manufacturer);
sum = addSum_<uint32_t>(sum, source.device);
sum = addSum_<uint16_t>(sum, destination.manufacturer);
sum = addSum_<uint32_t>(sum, destination.device);
sum = addSum_<uint8_t> (sum, transaction);
sum = addSum_<uint8_t> (sum, portID);
sum = addSum_<uint8_t> (sum, messageCount);
sum = addSum_<uint16_t>(sum, subDevice);
sum = addSum_<uint8_t> (sum, commandClass);
sum = addSum_<uint16_t>(sum, propertyID);
sum = addSum_<uint8_t> (sum, length());
sum = addSum_(sum, SC_RDM);
sum = addSum_(sum, SC_SUB_MESSAGE);
sum = addSum_(sum, 24 + length());
sum = addSum_(sum, source.manufacturer);
sum = addSum_(sum, source.device);
sum = addSum_(sum, destination.manufacturer);
sum = addSum_(sum, destination.device);
sum = addSum_(sum, transaction);
sum = addSum_(sum, portID);
sum = addSum_(sum, messageCount);
sum = addSum_(sum, subDevice);
sum = addSum_(sum, commandClass);
sum = addSum_(sum, propertyID);
sum = addSum_(sum, length());
for (uint8_t val : data_)
sum = addSum_<uint8_t>(sum, val);
sum = addSum_(sum, val);
return sum;
}

View File

@ -23,6 +23,7 @@
*/
#include "responder.h"
#include <algorithm>
#include <limits>
namespace RDM {
@ -98,20 +99,22 @@ void Responder::send(Message *response)
if (!response)
return;
if (response->do_no_send)
{
delete response;
return;
}
// 6.2.8.2 Message Count field for Responder Generated Messages
// If a responder has more than 255 messages queued, then the Message Count
// field shall remain at 255 until the number of queued messages is reduced
// below that number.
if (queued_messages_.size() > std::numeric_limits<uint8_t>::max())
response->messageCount = std::numeric_limits<uint8_t>::max();
else
response->messageCount = queued_messages_.size();
response->messageCount = std::min(queued_messages_.size(),
(size_t)std::numeric_limits<uint8_t>::max());
std::vector<uint8_t> data;
response->write(data);
send(data);
delete response;
response = nullptr;
}
@ -214,7 +217,7 @@ void Responder::receive(const Message *message)
return;
}
queued_messages_.push(response);
send(response);
}
@ -355,8 +358,8 @@ void Responder::actionDiscoverUniqueBranch(const Message *message, Message *resp
return;
}
response->appendData<uint16_t>(id.manufacturer);
response->appendData<uint16_t>(id.device);
response->appendData(id.manufacturer);
response->appendData(id.device);
}
@ -373,7 +376,7 @@ void Responder::actionDiscoveryMute(const Message *message, Message *response)
discovery_mute_flag_ = true;
response->responseType = RESPONSE_TYPE_ACK;
response->appendData<uint16_t>(control_field);
response->appendData(control_field);
}
@ -390,7 +393,7 @@ void Responder::actionDiscoveryUnmute(const Message *message, Message *response)
discovery_mute_flag_ = false;
response->responseType = RESPONSE_TYPE_ACK;
response->appendData<uint16_t>(control_field);
response->appendData(control_field);
}
} // namespace RDM

View File

@ -120,20 +120,20 @@ void Sensor::clearMemory()
void Sensor::actionGetSensorDefinition(uint8_t index, Message *response)
{
response->responseType = RESPONSE_TYPE_ACK;
response->appendData<uint8_t>(index);
response->appendData<uint8_t>(type);
response->appendData<uint8_t>(unit);
response->appendData<uint8_t>(unitPrefix);
response->appendData<int16_t>(minLimit);
response->appendData<int16_t>(maxLimit);
response->appendData<int16_t>(minNominal);
response->appendData<int16_t>(maxNominal);
response->appendData<uint8_t>(recordedValueSupport);
response->appendData(index);
response->appendData(type);
response->appendData(unit);
response->appendData(unitPrefix);
response->appendData(minLimit);
response->appendData(maxLimit);
response->appendData(minNominal);
response->appendData(maxNominal);
response->appendData(recordedValueSupport);
for (size_t i = 0; i < description.size(); i++)
{
if (i > 32)
break;
response->appendData<char>(description.at(i));
response->appendData(description.at(i));
}
}
@ -146,11 +146,11 @@ void Sensor::actionGetSensorDefinition(uint8_t index, Message *response)
void Sensor::actionGetSensorValue(uint8_t index, Message *response)
{
response->responseType = RESPONSE_TYPE_ACK;
response->appendData<uint8_t>(index);
response->appendData<int16_t>(value());
response->appendData<int16_t>(minimum());
response->appendData<int16_t>(maximum());
response->appendData<int16_t>(saved());
response->appendData(index);
response->appendData(value());
response->appendData(minimum());
response->appendData(maximum());
response->appendData(saved());
}
@ -176,11 +176,11 @@ void Sensor::actionSetSensorValue(uint8_t index, Message *response)
}
response->responseType = RESPONSE_TYPE_ACK;
response->appendData<uint8_t>(index);
response->appendData<int16_t>(val);
response->appendData<int16_t>(min);
response->appendData<int16_t>(max);
response->appendData<int16_t>(mem);
response->appendData(index);
response->appendData(val);
response->appendData(min);
response->appendData(max);
response->appendData(mem);
}