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:
Ursprung
52fdb3371e
Commit
0a5e654df7
@ -99,7 +99,7 @@ bool SimulationIOHandler::send(const Message& message)
|
||||
}
|
||||
break;
|
||||
|
||||
case 0xE3:
|
||||
case LAN_X_GET_LOCO_INFO:
|
||||
if(const auto& getLocoInfo = static_cast<const LanXGetLocoInfo&>(message);
|
||||
getLocoInfo.db0 == 0xF0)
|
||||
{
|
||||
@ -107,7 +107,7 @@ bool SimulationIOHandler::send(const Message& message)
|
||||
}
|
||||
break;
|
||||
|
||||
case 0xE4:
|
||||
case LAN_X_SET_LOCO:
|
||||
if(const auto& setLocoDrive = static_cast<const LanXSetLocoDrive&>(message);
|
||||
setLocoDrive.db0 >= 0x10 && setLocoDrive.db0 <= 0x13)
|
||||
{
|
||||
@ -121,7 +121,7 @@ bool SimulationIOHandler::send(const Message& message)
|
||||
}
|
||||
break;
|
||||
|
||||
case 0xF1:
|
||||
case LAN_X_GET_FIRMWARE_VERSION:
|
||||
if(message == LanXGetFirmwareVersion())
|
||||
{
|
||||
reply(LanXGetFirmwareVersionReply(firmwareVersionMajor, ServerConfig::firmwareVersionMinor));
|
||||
|
||||
@ -71,7 +71,7 @@ std::string toString(const Message& message, bool raw)
|
||||
switch(message.header())
|
||||
{
|
||||
case LAN_LOGOFF:
|
||||
if(message.dataLen() != sizeof(Z21::LanLogoff))
|
||||
if(message.dataLen() != sizeof(LanLogoff))
|
||||
raw = true;
|
||||
break;
|
||||
|
||||
@ -91,7 +91,7 @@ std::string toString(const Message& message, bool raw)
|
||||
raw = true;
|
||||
break;
|
||||
|
||||
case 0x53:
|
||||
case LAN_X_SET_TURNOUT:
|
||||
{
|
||||
const auto& setTurnout = static_cast<const LanXSetTurnout&>(message);
|
||||
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");
|
||||
break;
|
||||
}
|
||||
|
||||
case LAN_X_BC:
|
||||
if(message == LanXBCTrackPowerOff())
|
||||
s = "LAN_X_BC_TRACK_POWER_OFF";
|
||||
@ -113,7 +114,7 @@ std::string toString(const Message& message, bool raw)
|
||||
raw = true;
|
||||
break;
|
||||
|
||||
case 0x62:
|
||||
case LAN_X_STATUS_CHANGED:
|
||||
if(const LanXStatusChanged& statusChanged = static_cast<const LanXStatusChanged&>(message); statusChanged.db0 == 0x22)
|
||||
{
|
||||
s = "LAN_X_STATUS_CHANGED";
|
||||
@ -140,7 +141,7 @@ std::string toString(const Message& message, bool raw)
|
||||
raw = true;
|
||||
break;
|
||||
|
||||
case 0xE3:
|
||||
case LAN_X_GET_LOCO_INFO:
|
||||
if(const auto& getLocoInfo = static_cast<const LanXGetLocoInfo&>(message); getLocoInfo.db0 == 0xF0)
|
||||
{
|
||||
s = "LAN_X_GET_LOCO_INFO";
|
||||
@ -152,7 +153,7 @@ std::string toString(const Message& message, bool raw)
|
||||
raw = true;
|
||||
break;
|
||||
|
||||
case 0xE4:
|
||||
case LAN_X_SET_LOCO:
|
||||
if(const auto& setLocoDrive = static_cast<const LanXSetLocoDrive&>(message);
|
||||
setLocoDrive.db0 >= 0x10 && setLocoDrive.db0 <= 0x13)
|
||||
{
|
||||
@ -181,7 +182,7 @@ std::string toString(const Message& message, bool raw)
|
||||
raw = true;
|
||||
break;
|
||||
|
||||
case 0xEF:
|
||||
case LAN_X_LOCO_INFO:
|
||||
{
|
||||
const auto& locoInfo = static_cast<const LanXLocoInfo&>(message);
|
||||
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");
|
||||
break;
|
||||
}
|
||||
case 0xF1:
|
||||
|
||||
case LAN_X_GET_FIRMWARE_VERSION:
|
||||
if(message == LanXGetFirmwareVersion())
|
||||
s = "LAN_X_GET_FIRMWARE_VERSION";
|
||||
else
|
||||
raw = true;
|
||||
break;
|
||||
|
||||
case 0xF3:
|
||||
case LAN_X_GET_FIRMWARE_VERSION_REPLY:
|
||||
if(message.dataLen() == sizeof(LanXGetFirmwareVersionReply))
|
||||
{
|
||||
const auto& getFirmwareVersion = static_cast<const LanXGetFirmwareVersionReply&>(message);
|
||||
@ -237,7 +239,7 @@ std::string toString(const Message& message, bool raw)
|
||||
break;
|
||||
|
||||
case LAN_SET_BROADCASTFLAGS:
|
||||
if(message.dataLen() == sizeof(Z21::LanSetBroadcastFlags))
|
||||
if(message.dataLen() == sizeof(LanSetBroadcastFlags))
|
||||
{
|
||||
s = "LAN_SET_BROADCASTFLAGS";
|
||||
s.append(" flags=0x").append(toHex(static_cast<std::underlying_type_t<BroadcastFlags>>(static_cast<const LanSetBroadcastFlags&>(message).broadcastFlags())));
|
||||
|
||||
@ -142,18 +142,37 @@ enum LocoMode : uint8_t
|
||||
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_SET_TURNOUT = 0x53;
|
||||
|
||||
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_ON = 0x01;
|
||||
//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_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
|
||||
{
|
||||
@ -332,7 +351,7 @@ struct LanXGetFirmwareVersion : LanX
|
||||
uint8_t checksum = 0xFB;
|
||||
|
||||
LanXGetFirmwareVersion() :
|
||||
LanX(sizeof(LanXGetFirmwareVersion), 0xF1)
|
||||
LanX(sizeof(LanXGetFirmwareVersion), LAN_X_GET_FIRMWARE_VERSION)
|
||||
{
|
||||
}
|
||||
} ATTRIBUTE_PACKED;
|
||||
@ -354,7 +373,7 @@ static_assert(sizeof(LanXGetStatus) == 7);
|
||||
// LAN_X_SET_TRACK_POWER_OFF
|
||||
struct LanXSetTrackPowerOff : LanX
|
||||
{
|
||||
uint8_t db0 = 0x80;
|
||||
uint8_t db0 = LAN_X_SET_TRACK_POWER_OFF;
|
||||
uint8_t checksum = 0xa1;
|
||||
|
||||
LanXSetTrackPowerOff() :
|
||||
@ -367,7 +386,7 @@ static_assert(sizeof(LanXSetTrackPowerOff) == 7);
|
||||
// LAN_X_SET_TRACK_POWER_ON
|
||||
struct LanXSetTrackPowerOn : LanX
|
||||
{
|
||||
uint8_t db0 = 0x81;
|
||||
uint8_t db0 = LAN_X_SET_TRACK_POWER_OFF;
|
||||
uint8_t checksum = 0xa0;
|
||||
|
||||
LanXSetTrackPowerOn() :
|
||||
@ -422,7 +441,7 @@ struct LanXSetTurnout : LanX
|
||||
uint8_t checksum;
|
||||
|
||||
LanXSetTurnout(uint16_t linearAddress, bool activate, bool queue = false)
|
||||
: LanX(sizeof(LanXSetTurnout), 0x53)
|
||||
: LanX(sizeof(LanXSetTurnout), LAN_X_SET_TURNOUT)
|
||||
, db0(linearAddress >> 9)
|
||||
, db1((linearAddress >> 1) & 0xFF)
|
||||
{
|
||||
@ -484,7 +503,7 @@ struct LanXGetLocoInfo : LanX
|
||||
uint8_t checksum;
|
||||
|
||||
LanXGetLocoInfo(uint16_t address, bool longAddress) :
|
||||
LanX(sizeof(LanXGetLocoInfo), 0xE3)
|
||||
LanX(sizeof(LanXGetLocoInfo), LAN_X_GET_LOCO_INFO)
|
||||
{
|
||||
setAddress(address, longAddress);
|
||||
updateChecksum();
|
||||
@ -518,7 +537,7 @@ struct LanXSetLocoDrive : LanX
|
||||
uint8_t checksum;
|
||||
|
||||
LanXSetLocoDrive() :
|
||||
LanX(sizeof(LanXSetLocoDrive), 0xE4)
|
||||
LanX(sizeof(LanXSetLocoDrive), LAN_X_SET_LOCO)
|
||||
{
|
||||
}
|
||||
|
||||
@ -623,7 +642,7 @@ struct LanXSetLocoFunction : LanX
|
||||
uint8_t checksum;
|
||||
|
||||
LanXSetLocoFunction() :
|
||||
LanX(sizeof(LanXSetLocoFunction), 0xE4)
|
||||
LanX(sizeof(LanXSetLocoFunction), LAN_X_SET_LOCO)
|
||||
{
|
||||
}
|
||||
|
||||
@ -909,7 +928,7 @@ struct LanXGetVersionReply : LanX
|
||||
uint8_t checksum;
|
||||
|
||||
LanXGetVersionReply()
|
||||
: LanX(sizeof(LanXGetVersionReply), 0x63)
|
||||
: LanX(sizeof(LanXGetVersionReply), LAN_X_GET_VERSION_REPLY)
|
||||
{
|
||||
}
|
||||
|
||||
@ -945,7 +964,7 @@ struct LanXGetFirmwareVersionReply : LanX
|
||||
uint8_t checksum;
|
||||
|
||||
LanXGetFirmwareVersionReply() :
|
||||
LanX(sizeof(LanXGetFirmwareVersionReply), 0xF3)
|
||||
LanX(sizeof(LanXGetFirmwareVersionReply), LAN_X_GET_FIRMWARE_VERSION_REPLY)
|
||||
{
|
||||
}
|
||||
|
||||
@ -1068,7 +1087,7 @@ struct LanXStatusChanged : LanX
|
||||
uint8_t checksum;
|
||||
|
||||
LanXStatusChanged() :
|
||||
LanX(sizeof(LanXStatusChanged), 0x62)
|
||||
LanX(sizeof(LanXStatusChanged), LAN_X_STATUS_CHANGED)
|
||||
{
|
||||
}
|
||||
} ATTRIBUTE_PACKED;
|
||||
|
||||
@ -150,7 +150,7 @@ void ServerKernel::receiveFrom(const Message& message, IOHandler::ClientId clien
|
||||
}
|
||||
break;
|
||||
|
||||
case 0xE3:
|
||||
case LAN_X_GET_LOCO_INFO:
|
||||
if(const auto& getLocoInfo = static_cast<const LanXGetLocoInfo&>(message);
|
||||
getLocoInfo.db0 == 0xF0)
|
||||
{
|
||||
@ -165,7 +165,7 @@ void ServerKernel::receiveFrom(const Message& message, IOHandler::ClientId clien
|
||||
}
|
||||
break;
|
||||
|
||||
case 0xE4:
|
||||
case LAN_X_SET_LOCO:
|
||||
if(const auto& setLocoDrive = static_cast<const LanXSetLocoDrive&>(message);
|
||||
setLocoDrive.db0 >= 0x10 && setLocoDrive.db0 <= 0x13)
|
||||
{
|
||||
@ -221,7 +221,7 @@ void ServerKernel::receiveFrom(const Message& message, IOHandler::ClientId clien
|
||||
}
|
||||
break;
|
||||
|
||||
case 0xF1:
|
||||
case LAN_X_GET_FIRMWARE_VERSION:
|
||||
if(message == LanXGetFirmwareVersion())
|
||||
sendTo(LanXGetFirmwareVersionReply(ServerConfig::firmwareVersionMajor, ServerConfig::firmwareVersionMinor), clientId);
|
||||
break;
|
||||
|
||||
Laden…
x
In neuem Issue referenzieren
Einen Benutzer sperren