XpressNet: add more message to logger
Dieser Commit ist enthalten in:
Ursprung
71ccb413b0
Commit
b78cdd46b7
@ -44,13 +44,61 @@ bool isChecksumValid(const Message& msg, const int dataSize)
|
||||
return calcChecksum(msg, dataSize) == *(reinterpret_cast<const uint8_t*>(&msg) + dataSize + 1);
|
||||
}
|
||||
|
||||
std::string toString(const Message& message)
|
||||
std::string toString(const Message& message, bool raw)
|
||||
{
|
||||
std::string s;
|
||||
std::string s = toHex(message.identification());
|
||||
|
||||
// Human readable:
|
||||
switch(message.header)
|
||||
switch(message.identification())
|
||||
{
|
||||
case 0x21:
|
||||
{
|
||||
if(message == ResumeOperationsRequest())
|
||||
{
|
||||
s = "RESUME_OPERATIONS_REQUEST";
|
||||
}
|
||||
else if(message == StopOperationsRequest())
|
||||
{
|
||||
s = "STOP_OPERATIONS_REQUEST";
|
||||
}
|
||||
else
|
||||
raw = true;
|
||||
break;
|
||||
}
|
||||
case 0x61:
|
||||
{
|
||||
if(message == NormalOperationResumed())
|
||||
{
|
||||
s = "NORMAL_OPERATIONS_RESUMED";
|
||||
}
|
||||
else if(message == TrackPowerOff())
|
||||
{
|
||||
s = "TRACK_POWER_OFF";
|
||||
}
|
||||
else
|
||||
raw = true;
|
||||
break;
|
||||
}
|
||||
case 0x80:
|
||||
{
|
||||
if(message == StopAllLocomotivesRequest())
|
||||
{
|
||||
s = "STOP_ALL_LOCO_REQUEST";
|
||||
}
|
||||
else
|
||||
raw = true;
|
||||
break;
|
||||
}
|
||||
case 0x81:
|
||||
{
|
||||
if(message == EmergencyStop())
|
||||
{
|
||||
s = "EMERGENCY_STOP";
|
||||
}
|
||||
else
|
||||
raw = true;
|
||||
break;
|
||||
}
|
||||
case 0x52:
|
||||
{
|
||||
const auto& req = static_cast<const AccessoryDecoderOperationRequest&>(message);
|
||||
@ -60,13 +108,21 @@ std::string toString(const Message& message)
|
||||
s.append(req.activate() ? " activate" : " deactivate");
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
raw = true;
|
||||
break;
|
||||
}
|
||||
// FIXME: add all messages
|
||||
}
|
||||
|
||||
// Raw data:
|
||||
s.append(" [");
|
||||
s.append(toHex(reinterpret_cast<const uint8_t*>(&message), message.size(), true));
|
||||
s.append("]");
|
||||
if(raw)
|
||||
{
|
||||
// Raw data:
|
||||
s.append(" [");
|
||||
s.append(toHex(reinterpret_cast<const uint8_t*>(&message), message.size(), true));
|
||||
s.append("]");
|
||||
}
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ void updateChecksum(Message& msg);
|
||||
inline bool isChecksumValid(const Message& msg);
|
||||
bool isChecksumValid(const Message& msg, const int dataSize);
|
||||
|
||||
std::string toString(const Message& message);
|
||||
std::string toString(const Message& message, bool raw = false);
|
||||
|
||||
struct Message
|
||||
{
|
||||
|
||||
Laden…
x
In neuem Issue referenzieren
Einen Benutzer sperren