Communication: EthernetStatusMessage: Add BASE-T support
parent
f3cb41d60b
commit
d51f88d023
|
|
@ -22,7 +22,8 @@ void init_ethernetstatusmessage(pybind11::module_& m) {
|
||||||
.value("LinkModeAuto", EthernetStatusMessage::LinkMode::LinkModeAuto)
|
.value("LinkModeAuto", EthernetStatusMessage::LinkMode::LinkModeAuto)
|
||||||
.value("LinkModeMaster", EthernetStatusMessage::LinkMode::LinkModeMaster)
|
.value("LinkModeMaster", EthernetStatusMessage::LinkMode::LinkModeMaster)
|
||||||
.value("LinkModeSlave", EthernetStatusMessage::LinkMode::LinkModeSlave)
|
.value("LinkModeSlave", EthernetStatusMessage::LinkMode::LinkModeSlave)
|
||||||
.value("LinkModeInvalid", EthernetStatusMessage::LinkMode::LinkModeInvalid);
|
.value("LinkModeInvalid", EthernetStatusMessage::LinkMode::LinkModeInvalid)
|
||||||
|
.value("LinkModeNone", EthernetStatusMessage::LinkMode::LinkModeNone);
|
||||||
|
|
||||||
ethernetStatusMessage
|
ethernetStatusMessage
|
||||||
.def_readonly("network", &EthernetStatusMessage::network)
|
.def_readonly("network", &EthernetStatusMessage::network)
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,14 @@ enum LinkSpeed {
|
||||||
ethSpeed10000,
|
ethSpeed10000,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum LinkMode {
|
enum TLinkMode {
|
||||||
|
T_LINK_NONE,
|
||||||
|
T_LINK_MASTER,
|
||||||
|
T_LINK_SLAVE,
|
||||||
|
T_LINK_AUTO,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum AELinkMode {
|
||||||
AE_LINK_AUTO,
|
AE_LINK_AUTO,
|
||||||
AE_LINK_MASTER,
|
AE_LINK_MASTER,
|
||||||
AE_LINK_SLAVE,
|
AE_LINK_SLAVE,
|
||||||
|
|
@ -46,11 +53,25 @@ std::shared_ptr<Message> EthernetStatusMessage::DecodeToMessage(const std::vecto
|
||||||
default: return nullptr;
|
default: return nullptr;
|
||||||
}
|
}
|
||||||
LinkMode mode;
|
LinkMode mode;
|
||||||
switch(packet->mode) {
|
switch(Network(packet->network).getType()) {
|
||||||
case AE_LINK_INVALID: mode = EthernetStatusMessage::LinkMode::LinkModeInvalid; break;
|
case Network::Type::Ethernet:
|
||||||
case AE_LINK_AUTO: mode = EthernetStatusMessage::LinkMode::LinkModeAuto; break;
|
switch(packet->mode) {
|
||||||
case AE_LINK_MASTER: mode = EthernetStatusMessage::LinkMode::LinkModeMaster; break;
|
case T_LINK_NONE: mode = EthernetStatusMessage::LinkMode::LinkModeNone; break;
|
||||||
case AE_LINK_SLAVE: mode = EthernetStatusMessage::LinkMode::LinkModeSlave; break;
|
case T_LINK_MASTER: mode = EthernetStatusMessage::LinkMode::LinkModeMaster; break;
|
||||||
|
case T_LINK_SLAVE: mode = EthernetStatusMessage::LinkMode::LinkModeSlave; break;
|
||||||
|
case T_LINK_AUTO: mode = EthernetStatusMessage::LinkMode::LinkModeAuto; break;
|
||||||
|
default: return nullptr;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Network::Type::AutomotiveEthernet:
|
||||||
|
switch(packet->mode) {
|
||||||
|
case AE_LINK_AUTO: mode = EthernetStatusMessage::LinkMode::LinkModeAuto; break;
|
||||||
|
case AE_LINK_MASTER: mode = EthernetStatusMessage::LinkMode::LinkModeMaster; break;
|
||||||
|
case AE_LINK_SLAVE: mode = EthernetStatusMessage::LinkMode::LinkModeSlave; break;
|
||||||
|
case AE_LINK_INVALID: mode = EthernetStatusMessage::LinkMode::LinkModeInvalid; break;
|
||||||
|
default: return nullptr;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default: return nullptr;
|
default: return nullptr;
|
||||||
}
|
}
|
||||||
return std::make_shared<EthernetStatusMessage>(packet->network, packet->state, speed, packet->duplex, mode);
|
return std::make_shared<EthernetStatusMessage>(packet->network, packet->state, speed, packet->duplex, mode);
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ public:
|
||||||
LinkModeMaster,
|
LinkModeMaster,
|
||||||
LinkModeSlave,
|
LinkModeSlave,
|
||||||
LinkModeInvalid,
|
LinkModeInvalid,
|
||||||
|
LinkModeNone,
|
||||||
};
|
};
|
||||||
EthernetStatusMessage(Network net, bool state, LinkSpeed speed, bool duplex, LinkMode mode) : Message(Type::EthernetStatus),
|
EthernetStatusMessage(Network net, bool state, LinkSpeed speed, bool duplex, LinkMode mode) : Message(Type::EthernetStatus),
|
||||||
network(net), state(state), speed(speed), duplex(duplex), mode(mode) {}
|
network(net), state(state), speed(speed), duplex(duplex), mode(mode) {}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue