traintasticdiy: added loggin of dropped bytes
(untested)
Dieser Commit ist enthalten in:
Ursprung
03f56a2342
Commit
a4a1e39c25
@ -25,6 +25,7 @@
|
||||
#include "../messages.hpp"
|
||||
#include "../../../../core/eventloop.hpp"
|
||||
#include "../../../../log/log.hpp"
|
||||
#include "../../../../utils/tohex.hpp"
|
||||
|
||||
namespace TraintasticDIY {
|
||||
|
||||
@ -75,9 +76,9 @@ void HardwareIOHandler::processRead(size_t bytesTransferred)
|
||||
if(drop != 0)
|
||||
{
|
||||
EventLoop::call(
|
||||
[this, drop]()
|
||||
[this, drop, bytes=toHex(pos - drop, drop, true)]()
|
||||
{
|
||||
Log::log(m_kernel.logId, LogMessage::W2001_RECEIVED_MALFORMED_DATA_DROPPED_X_BYTES, drop);
|
||||
Log::log(m_kernel.logId, LogMessage::W2003_RECEIVED_MALFORMED_DATA_DROPPED_X_BYTES_X, drop, bytes);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
*
|
||||
* This file is part of the traintastic source code.
|
||||
*
|
||||
* Copyright (C) 2022 Reinder Feenstra
|
||||
* Copyright (C) 2022-2023 Reinder Feenstra
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@ -23,13 +23,17 @@
|
||||
#include "tohex.hpp"
|
||||
#include <cstdint>
|
||||
|
||||
std::string toHex(const void* buffer, const size_t size)
|
||||
std::string toHex(const void* buffer, const size_t size, const bool addSpaceSeperator)
|
||||
{
|
||||
std::string s;
|
||||
s.reserve(size * 2);
|
||||
s.reserve(size * (addSpaceSeperator ? 3 : 2));
|
||||
const uint8_t* p = reinterpret_cast<const uint8_t*>(buffer);
|
||||
for(size_t i = 0; i < size; i++, p++)
|
||||
{
|
||||
if(addSpaceSeperator && i != 0)
|
||||
{
|
||||
s.push_back(' ');
|
||||
}
|
||||
s.push_back(toHexDigits[*p >> 4]);
|
||||
s.push_back(toHexDigits[*p & 0x0F]);
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
*
|
||||
* This file is part of the traintastic source code.
|
||||
*
|
||||
* Copyright (C) 2019-2020,2022 Reinder Feenstra
|
||||
* Copyright (C) 2019-2020,2022-2023 Reinder Feenstra
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@ -38,7 +38,7 @@ std::string toHex(T value, size_t length = sizeof(T) * 2)
|
||||
return s;
|
||||
}
|
||||
|
||||
std::string toHex(const void* buffer, size_t size);
|
||||
std::string toHex(const void* buffer, size_t size, const bool addSpaceSeperator = false);
|
||||
|
||||
inline std::string toHex(std::string_view value)
|
||||
{
|
||||
|
||||
@ -139,6 +139,7 @@ enum class LogMessage : uint32_t
|
||||
W1003_READING_WORLD_X_FAILED_LIBARCHIVE_ERROR_X_X = LogMessageOffset::warning + 1003,
|
||||
W2001_RECEIVED_MALFORMED_DATA_DROPPED_X_BYTES = LogMessageOffset::warning + 2001,
|
||||
W2002_COMMAND_STATION_DOESNT_SUPPORT_FUNCTIONS_ABOVE_FX = LogMessageOffset::warning + 2002,
|
||||
W2003_RECEIVED_MALFORMED_DATA_DROPPED_X_BYTES_X = LogMessageOffset::warning + 2003,
|
||||
W2004_INPUT_ADDRESS_X_IS_INVALID = LogMessageOffset::warning + 2004,
|
||||
W2005_OUTPUT_ADDRESS_X_IS_INVALID = LogMessageOffset::warning + 2005,
|
||||
W2006_COMMAND_STATION_DOES_NOT_SUPPORT_LOCO_SLOT_X = LogMessageOffset::warning + 2006,
|
||||
|
||||
@ -2599,6 +2599,10 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "message:W2003",
|
||||
"definition": "Received malformed data dropped %1 bytes [%2]"
|
||||
},
|
||||
{
|
||||
"term": "message:W2004",
|
||||
"definition": "Input address %1 is invalid",
|
||||
|
||||
Laden…
x
In neuem Issue referenzieren
Einen Benutzer sperren