server: Z21 use less hardcoded values

- Add new labels for message values
- Remove unneeded Z21 namespace prefix
- Fix newlines after case
Dieser Commit ist enthalten in:
Filippo Gentile 2023-06-24 15:41:08 +02:00
Ursprung 52fdb3371e
Commit 0a5e654df7
4 geänderte Dateien mit 52 neuen und 31 gelöschten Zeilen

Datei anzeigen

@ -99,7 +99,7 @@ bool SimulationIOHandler::send(const Message& message)
} }
break; break;
case 0xE3: case LAN_X_GET_LOCO_INFO:
if(const auto& getLocoInfo = static_cast<const LanXGetLocoInfo&>(message); if(const auto& getLocoInfo = static_cast<const LanXGetLocoInfo&>(message);
getLocoInfo.db0 == 0xF0) getLocoInfo.db0 == 0xF0)
{ {
@ -107,7 +107,7 @@ bool SimulationIOHandler::send(const Message& message)
} }
break; break;
case 0xE4: case LAN_X_SET_LOCO:
if(const auto& setLocoDrive = static_cast<const LanXSetLocoDrive&>(message); if(const auto& setLocoDrive = static_cast<const LanXSetLocoDrive&>(message);
setLocoDrive.db0 >= 0x10 && setLocoDrive.db0 <= 0x13) setLocoDrive.db0 >= 0x10 && setLocoDrive.db0 <= 0x13)
{ {
@ -121,7 +121,7 @@ bool SimulationIOHandler::send(const Message& message)
} }
break; break;
case 0xF1: case LAN_X_GET_FIRMWARE_VERSION:
if(message == LanXGetFirmwareVersion()) if(message == LanXGetFirmwareVersion())
{ {
reply(LanXGetFirmwareVersionReply(firmwareVersionMajor, ServerConfig::firmwareVersionMinor)); reply(LanXGetFirmwareVersionReply(firmwareVersionMajor, ServerConfig::firmwareVersionMinor));

Datei anzeigen

@ -71,7 +71,7 @@ std::string toString(const Message& message, bool raw)
switch(message.header()) switch(message.header())
{ {
case LAN_LOGOFF: case LAN_LOGOFF:
if(message.dataLen() != sizeof(Z21::LanLogoff)) if(message.dataLen() != sizeof(LanLogoff))
raw = true; raw = true;
break; break;
@ -91,7 +91,7 @@ std::string toString(const Message& message, bool raw)
raw = true; raw = true;
break; break;
case 0x53: case LAN_X_SET_TURNOUT:
{ {
const auto& setTurnout = static_cast<const LanXSetTurnout&>(message); const auto& setTurnout = static_cast<const LanXSetTurnout&>(message);
s = "LAN_X_SET_TURNOUT"; s = "LAN_X_SET_TURNOUT";
@ -102,6 +102,7 @@ std::string toString(const Message& message, bool raw)
s.append(" queue=").append(setTurnout.queue() ? "yes" : "no"); s.append(" queue=").append(setTurnout.queue() ? "yes" : "no");
break; break;
} }
case LAN_X_BC: case LAN_X_BC:
if(message == LanXBCTrackPowerOff()) if(message == LanXBCTrackPowerOff())
s = "LAN_X_BC_TRACK_POWER_OFF"; s = "LAN_X_BC_TRACK_POWER_OFF";
@ -113,7 +114,7 @@ std::string toString(const Message& message, bool raw)
raw = true; raw = true;
break; break;
case 0x62: case LAN_X_STATUS_CHANGED:
if(const LanXStatusChanged& statusChanged = static_cast<const LanXStatusChanged&>(message); statusChanged.db0 == 0x22) if(const LanXStatusChanged& statusChanged = static_cast<const LanXStatusChanged&>(message); statusChanged.db0 == 0x22)
{ {
s = "LAN_X_STATUS_CHANGED"; s = "LAN_X_STATUS_CHANGED";
@ -140,7 +141,7 @@ std::string toString(const Message& message, bool raw)
raw = true; raw = true;
break; break;
case 0xE3: case LAN_X_GET_LOCO_INFO:
if(const auto& getLocoInfo = static_cast<const LanXGetLocoInfo&>(message); getLocoInfo.db0 == 0xF0) if(const auto& getLocoInfo = static_cast<const LanXGetLocoInfo&>(message); getLocoInfo.db0 == 0xF0)
{ {
s = "LAN_X_GET_LOCO_INFO"; s = "LAN_X_GET_LOCO_INFO";
@ -152,7 +153,7 @@ std::string toString(const Message& message, bool raw)
raw = true; raw = true;
break; break;
case 0xE4: case LAN_X_SET_LOCO:
if(const auto& setLocoDrive = static_cast<const LanXSetLocoDrive&>(message); if(const auto& setLocoDrive = static_cast<const LanXSetLocoDrive&>(message);
setLocoDrive.db0 >= 0x10 && setLocoDrive.db0 <= 0x13) setLocoDrive.db0 >= 0x10 && setLocoDrive.db0 <= 0x13)
{ {
@ -181,7 +182,7 @@ std::string toString(const Message& message, bool raw)
raw = true; raw = true;
break; break;
case 0xEF: case LAN_X_LOCO_INFO:
{ {
const auto& locoInfo = static_cast<const LanXLocoInfo&>(message); const auto& locoInfo = static_cast<const LanXLocoInfo&>(message);
s = "LAN_X_LOCO_INFO"; s = "LAN_X_LOCO_INFO";
@ -199,14 +200,15 @@ std::string toString(const Message& message, bool raw)
s.append(" busy=").append(locoInfo.isBusy() ? "1" : "0"); s.append(" busy=").append(locoInfo.isBusy() ? "1" : "0");
break; break;
} }
case 0xF1:
case LAN_X_GET_FIRMWARE_VERSION:
if(message == LanXGetFirmwareVersion()) if(message == LanXGetFirmwareVersion())
s = "LAN_X_GET_FIRMWARE_VERSION"; s = "LAN_X_GET_FIRMWARE_VERSION";
else else
raw = true; raw = true;
break; break;
case 0xF3: case LAN_X_GET_FIRMWARE_VERSION_REPLY:
if(message.dataLen() == sizeof(LanXGetFirmwareVersionReply)) if(message.dataLen() == sizeof(LanXGetFirmwareVersionReply))
{ {
const auto& getFirmwareVersion = static_cast<const LanXGetFirmwareVersionReply&>(message); const auto& getFirmwareVersion = static_cast<const LanXGetFirmwareVersionReply&>(message);
@ -237,7 +239,7 @@ std::string toString(const Message& message, bool raw)
break; break;
case LAN_SET_BROADCASTFLAGS: case LAN_SET_BROADCASTFLAGS:
if(message.dataLen() == sizeof(Z21::LanSetBroadcastFlags)) if(message.dataLen() == sizeof(LanSetBroadcastFlags))
{ {
s = "LAN_SET_BROADCASTFLAGS"; s = "LAN_SET_BROADCASTFLAGS";
s.append(" flags=0x").append(toHex(static_cast<std::underlying_type_t<BroadcastFlags>>(static_cast<const LanSetBroadcastFlags&>(message).broadcastFlags()))); s.append(" flags=0x").append(toHex(static_cast<std::underlying_type_t<BroadcastFlags>>(static_cast<const LanSetBroadcastFlags&>(message).broadcastFlags())));

Datei anzeigen

@ -142,18 +142,37 @@ enum LocoMode : uint8_t
Motorola = 1, Motorola = 1,
}; };
static constexpr uint8_t LAN_X_SET_STOP = 0x80;
static constexpr uint8_t LAN_X_TURNOUT_INFO = 0x43; static constexpr uint8_t LAN_X_TURNOUT_INFO = 0x43;
static constexpr uint8_t LAN_X_SET_TURNOUT = 0x53;
static constexpr uint8_t LAN_X_BC = 0x61; static constexpr uint8_t LAN_X_BC = 0x61;
static constexpr uint8_t LAN_X_STATUS_CHANGED = 0x62;
static constexpr uint8_t LAN_X_GET_VERSION_REPLY = 0x63;
//static constexpr uint8_t LAN_X_CV_NACK_SC = 0x12;
//static constexpr uint8_t LAN_X_CV_NACK = 0x13;
//static constexpr uint8_t LAN_X_UNKNOWN_COMMAND = 0x82;
static constexpr uint8_t LAN_X_SET_STOP = 0x80;
static constexpr uint8_t LAN_X_BC_STOPPED = 0x81;
static constexpr uint8_t LAN_X_GET_LOCO_INFO = 0xE3;
static constexpr uint8_t LAN_X_SET_LOCO = 0xE4;
static constexpr uint8_t LAN_X_LOCO_INFO = 0xEF;
static constexpr uint8_t LAN_X_GET_FIRMWARE_VERSION = 0xF1;
static constexpr uint8_t LAN_X_GET_FIRMWARE_VERSION_REPLY = 0xF3;
// db0 for xHeader 0x21
static constexpr uint8_t LAN_X_SET_TRACK_POWER_OFF = 0x80;
static constexpr uint8_t LAN_X_SET_TRACK_POWER_ON = 0x81;
// db0 for xHeader LAN_X_BC
static constexpr uint8_t LAN_X_BC_TRACK_POWER_OFF = 0x00; static constexpr uint8_t LAN_X_BC_TRACK_POWER_OFF = 0x00;
static constexpr uint8_t LAN_X_BC_TRACK_POWER_ON = 0x01; static constexpr uint8_t LAN_X_BC_TRACK_POWER_ON = 0x01;
//static constexpr uint8_t LAN_X_BC_PROGRAMMING_MODE = 0x02; //static constexpr uint8_t LAN_X_BC_PROGRAMMING_MODE = 0x02;
static constexpr uint8_t LAN_X_BC_TRACK_SHORT_CIRCUIT = 0x08; static constexpr uint8_t LAN_X_BC_TRACK_SHORT_CIRCUIT = 0x08;
//static constexpr uint8_t LAN_X_CV_NACK_SC = 0x12;
//static constexpr uint8_t LAN_X_CV_NACK = 0x13;
//static constexpr uint8_t LAN_X_UNKNOWN_COMMAND = 0x82;
static constexpr uint8_t LAN_X_BC_STOPPED = 0x81;
static constexpr uint8_t LAN_X_LOCO_INFO = 0xEF;
enum HardwareType : uint32_t enum HardwareType : uint32_t
{ {
@ -332,7 +351,7 @@ struct LanXGetFirmwareVersion : LanX
uint8_t checksum = 0xFB; uint8_t checksum = 0xFB;
LanXGetFirmwareVersion() : LanXGetFirmwareVersion() :
LanX(sizeof(LanXGetFirmwareVersion), 0xF1) LanX(sizeof(LanXGetFirmwareVersion), LAN_X_GET_FIRMWARE_VERSION)
{ {
} }
} ATTRIBUTE_PACKED; } ATTRIBUTE_PACKED;
@ -354,7 +373,7 @@ static_assert(sizeof(LanXGetStatus) == 7);
// LAN_X_SET_TRACK_POWER_OFF // LAN_X_SET_TRACK_POWER_OFF
struct LanXSetTrackPowerOff : LanX struct LanXSetTrackPowerOff : LanX
{ {
uint8_t db0 = 0x80; uint8_t db0 = LAN_X_SET_TRACK_POWER_OFF;
uint8_t checksum = 0xa1; uint8_t checksum = 0xa1;
LanXSetTrackPowerOff() : LanXSetTrackPowerOff() :
@ -367,7 +386,7 @@ static_assert(sizeof(LanXSetTrackPowerOff) == 7);
// LAN_X_SET_TRACK_POWER_ON // LAN_X_SET_TRACK_POWER_ON
struct LanXSetTrackPowerOn : LanX struct LanXSetTrackPowerOn : LanX
{ {
uint8_t db0 = 0x81; uint8_t db0 = LAN_X_SET_TRACK_POWER_OFF;
uint8_t checksum = 0xa0; uint8_t checksum = 0xa0;
LanXSetTrackPowerOn() : LanXSetTrackPowerOn() :
@ -422,7 +441,7 @@ struct LanXSetTurnout : LanX
uint8_t checksum; uint8_t checksum;
LanXSetTurnout(uint16_t linearAddress, bool activate, bool queue = false) LanXSetTurnout(uint16_t linearAddress, bool activate, bool queue = false)
: LanX(sizeof(LanXSetTurnout), 0x53) : LanX(sizeof(LanXSetTurnout), LAN_X_SET_TURNOUT)
, db0(linearAddress >> 9) , db0(linearAddress >> 9)
, db1((linearAddress >> 1) & 0xFF) , db1((linearAddress >> 1) & 0xFF)
{ {
@ -484,7 +503,7 @@ struct LanXGetLocoInfo : LanX
uint8_t checksum; uint8_t checksum;
LanXGetLocoInfo(uint16_t address, bool longAddress) : LanXGetLocoInfo(uint16_t address, bool longAddress) :
LanX(sizeof(LanXGetLocoInfo), 0xE3) LanX(sizeof(LanXGetLocoInfo), LAN_X_GET_LOCO_INFO)
{ {
setAddress(address, longAddress); setAddress(address, longAddress);
updateChecksum(); updateChecksum();
@ -518,7 +537,7 @@ struct LanXSetLocoDrive : LanX
uint8_t checksum; uint8_t checksum;
LanXSetLocoDrive() : LanXSetLocoDrive() :
LanX(sizeof(LanXSetLocoDrive), 0xE4) LanX(sizeof(LanXSetLocoDrive), LAN_X_SET_LOCO)
{ {
} }
@ -623,7 +642,7 @@ struct LanXSetLocoFunction : LanX
uint8_t checksum; uint8_t checksum;
LanXSetLocoFunction() : LanXSetLocoFunction() :
LanX(sizeof(LanXSetLocoFunction), 0xE4) LanX(sizeof(LanXSetLocoFunction), LAN_X_SET_LOCO)
{ {
} }
@ -909,7 +928,7 @@ struct LanXGetVersionReply : LanX
uint8_t checksum; uint8_t checksum;
LanXGetVersionReply() LanXGetVersionReply()
: LanX(sizeof(LanXGetVersionReply), 0x63) : LanX(sizeof(LanXGetVersionReply), LAN_X_GET_VERSION_REPLY)
{ {
} }
@ -945,7 +964,7 @@ struct LanXGetFirmwareVersionReply : LanX
uint8_t checksum; uint8_t checksum;
LanXGetFirmwareVersionReply() : LanXGetFirmwareVersionReply() :
LanX(sizeof(LanXGetFirmwareVersionReply), 0xF3) LanX(sizeof(LanXGetFirmwareVersionReply), LAN_X_GET_FIRMWARE_VERSION_REPLY)
{ {
} }
@ -1068,7 +1087,7 @@ struct LanXStatusChanged : LanX
uint8_t checksum; uint8_t checksum;
LanXStatusChanged() : LanXStatusChanged() :
LanX(sizeof(LanXStatusChanged), 0x62) LanX(sizeof(LanXStatusChanged), LAN_X_STATUS_CHANGED)
{ {
} }
} ATTRIBUTE_PACKED; } ATTRIBUTE_PACKED;

Datei anzeigen

@ -150,7 +150,7 @@ void ServerKernel::receiveFrom(const Message& message, IOHandler::ClientId clien
} }
break; break;
case 0xE3: case LAN_X_GET_LOCO_INFO:
if(const auto& getLocoInfo = static_cast<const LanXGetLocoInfo&>(message); if(const auto& getLocoInfo = static_cast<const LanXGetLocoInfo&>(message);
getLocoInfo.db0 == 0xF0) getLocoInfo.db0 == 0xF0)
{ {
@ -165,7 +165,7 @@ void ServerKernel::receiveFrom(const Message& message, IOHandler::ClientId clien
} }
break; break;
case 0xE4: case LAN_X_SET_LOCO:
if(const auto& setLocoDrive = static_cast<const LanXSetLocoDrive&>(message); if(const auto& setLocoDrive = static_cast<const LanXSetLocoDrive&>(message);
setLocoDrive.db0 >= 0x10 && setLocoDrive.db0 <= 0x13) setLocoDrive.db0 >= 0x10 && setLocoDrive.db0 <= 0x13)
{ {
@ -221,7 +221,7 @@ void ServerKernel::receiveFrom(const Message& message, IOHandler::ClientId clien
} }
break; break;
case 0xF1: case LAN_X_GET_FIRMWARE_VERSION:
if(message == LanXGetFirmwareVersion()) if(message == LanXGetFirmwareVersion())
sendTo(LanXGetFirmwareVersionReply(ServerConfig::firmwareVersionMajor, ServerConfig::firmwareVersionMinor), clientId); sendTo(LanXGetFirmwareVersionReply(ServerConfig::firmwareVersionMajor, ServerConfig::firmwareVersionMinor), clientId);
break; break;