TransportCRC --> TransferCRC

This commit is contained in:
Pavel Kirienko
2014-02-26 18:16:14 +04:00
parent dc2460f264
commit 121f8d2dee
9 changed files with 16 additions and 16 deletions
@@ -23,7 +23,7 @@ namespace uavcan
* crc.hexdigest()
* '29B1'
*/
class TransportCRC
class TransferCRC
{
static const uint16_t Table[256];
uint16_t value_;
@@ -31,11 +31,11 @@ class TransportCRC
public:
enum { NumBytes = 2 };
TransportCRC()
TransferCRC()
: value_(0xFFFF)
{ }
TransportCRC(const uint8_t* bytes, unsigned int len)
TransferCRC(const uint8_t* bytes, unsigned int len)
: value_(0xFFFF)
{
add(bytes, len);
@@ -88,7 +88,7 @@ public:
class TransferListenerBase : public LinkedListNode<TransferListenerBase>
{
const DataTypeDescriptor& data_type_;
const TransportCRC crc_base_; ///< Pre-initialized with data type hash, thus constant
const TransferCRC crc_base_; ///< Pre-initialized with data type hash, thus constant
bool checkPayloadCrc(const uint16_t compare_with, const ITransferBuffer& tbb) const;
@@ -21,7 +21,7 @@ class TransferSender
const uint64_t max_transfer_interval_;
const DataTypeDescriptor& data_type_;
const CanTxQueue::Qos qos_;
const TransportCRC crc_base_;
const TransferCRC crc_base_;
Dispatcher& dispatcher_;
+1 -1
View File
@@ -9,7 +9,7 @@ namespace uavcan
{
// print ', '.join(map(lambda x: '%04x' % x, map(lambda x: int(x, 0), c.crc_ccitt_tab)))
const uint16_t TransportCRC::Table[256] =
const uint16_t TransferCRC::Table[256] =
{
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
@@ -67,7 +67,7 @@ int MultiFrameIncomingTransfer::read(unsigned int offset, uint8_t* data, unsigne
*/
bool TransferListenerBase::checkPayloadCrc(const uint16_t compare_with, const ITransferBuffer& tbb) const
{
TransportCRC crc = crc_base_;
TransferCRC crc = crc_base_;
unsigned int offset = 0;
while (true)
{
@@ -56,7 +56,7 @@ bool TransferReceiver::validate(const RxFrame& frame) const
if (iface_index_ != frame.getIfaceIndex())
return false;
if (frame.isFirst() && !frame.isLast() && (frame.getPayloadLen() < TransportCRC::NumBytes))
if (frame.isFirst() && !frame.isLast() && (frame.getPayloadLen() < TransferCRC::NumBytes))
{
UAVCAN_TRACE("TransferReceiver", "CRC expected, %s", frame.toString().c_str());
return false;
@@ -90,13 +90,13 @@ bool TransferReceiver::writePayload(const RxFrame& frame, ITransferBuffer& buf)
if (frame.isFirst()) // First frame contains CRC, we need to extract it now
{
if (frame.getPayloadLen() < TransportCRC::NumBytes) // Must have been validated earlier though. I think I'm paranoid.
if (frame.getPayloadLen() < TransferCRC::NumBytes) // Must have been validated earlier though. I think I'm paranoid.
return false;
this_transfer_crc_ = (payload[0] & 0xFF) | (uint16_t(payload[1] & 0xFF) << 8); // Little endian.
const int effective_payload_len = payload_len - TransportCRC::NumBytes;
const int res = buf.write(buffer_write_pos_, payload + TransportCRC::NumBytes, effective_payload_len);
const int effective_payload_len = payload_len - TransferCRC::NumBytes;
const int res = buf.write(buffer_write_pos_, payload + TransferCRC::NumBytes, effective_payload_len);
const bool success = res == effective_payload_len;
if (success)
buffer_write_pos_ += effective_payload_len;
+1 -1
View File
@@ -33,7 +33,7 @@ int TransferSender::send(const uint8_t* payload, int payload_len, uint64_t monot
{
int offset = 0;
{
TransportCRC crc = crc_base_;
TransferCRC crc = crc_base_;
crc.add(payload, payload_len);
static const int BUFLEN = sizeof(CanFrame::data);
+3 -3
View File
@@ -16,9 +16,9 @@
'29B1'
*/
TEST(TransportCRC, Correctness)
TEST(TransferCRC, Correctness)
{
uavcan::TransportCRC crc;
uavcan::TransferCRC crc;
ASSERT_EQ(0xFFFF, crc.get());
@@ -31,5 +31,5 @@ TEST(TransportCRC, Correctness)
ASSERT_EQ(0x29B1, crc.get());
// Initializing constructor
ASSERT_EQ(crc.get(), uavcan::TransportCRC(reinterpret_cast<const uint8_t*>("123456789"), 9).get());
ASSERT_EQ(crc.get(), uavcan::TransferCRC(reinterpret_cast<const uint8_t*>("123456789"), 9).get());
}
@@ -165,7 +165,7 @@ std::vector<uavcan::RxFrame> serializeTransfer(const Transfer& transfer)
std::vector<uint8_t> raw_payload;
if (need_crc)
{
uavcan::TransportCRC payload_crc(transfer.data_type.hash.value, uavcan::DataTypeHash::NumBytes);
uavcan::TransferCRC payload_crc(transfer.data_type.hash.value, uavcan::DataTypeHash::NumBytes);
payload_crc.add(reinterpret_cast<const uint8_t*>(transfer.payload.c_str()), transfer.payload.length());
// Little endian
raw_payload.push_back(payload_crc.get() & 0xFF);