Basic introspection for device supported networks

This commit is contained in:
Paul Hollinsky
2019-01-03 17:00:15 -05:00
parent efd5547e5c
commit 7e9fbc4959
17 changed files with 317 additions and 38 deletions
+15 -2
View File
@@ -22,11 +22,24 @@ public:
return found;
}
static constexpr Network::NetID SUPPORTED_NETWORKS[] = {
Network::NetID::HSCAN
};
protected:
void setupEncoder(Encoder* encoder) override {
encoder->supportCANFD = false; // VCAN 4-1 does not support CAN FD
void setupEncoder(Encoder& encoder) override {
ValueCAN4::setupEncoder(encoder);
encoder.supportCANFD = false; // VCAN 4-1 does not support CAN FD
}
virtual void setupSupportedRXNetworks(std::vector<Network>& rxNetworks) override {
for(auto& netid : SUPPORTED_NETWORKS)
rxNetworks.emplace_back(netid);
}
// The supported TX networks are the same as the supported RX networks for this device
virtual void setupSupportedTXNetworks(std::vector<Network>& txNetworks) override { setupSupportedRXNetworks(txNetworks); }
private:
ValueCAN4_1(neodevice_t neodevice) : ValueCAN4(neodevice) {
initialize<STM32, ValueCAN4_1Settings>();
@@ -22,6 +22,20 @@ public:
return found;
}
static constexpr Network::NetID SUPPORTED_NETWORKS[] = {
Network::NetID::HSCAN,
Network::NetID::HSCAN2
};
protected:
virtual void setupSupportedRXNetworks(std::vector<Network>& rxNetworks) override {
for(auto& netid : SUPPORTED_NETWORKS)
rxNetworks.emplace_back(netid);
}
// The supported TX networks are the same as the supported RX networks for this device
virtual void setupSupportedTXNetworks(std::vector<Network>& txNetworks) override { setupSupportedRXNetworks(txNetworks); }
private:
ValueCAN4_2(neodevice_t neodevice) : ValueCAN4(neodevice) {
initialize<STM32, ValueCAN4_2Settings>();
@@ -22,6 +22,22 @@ public:
return found;
}
static constexpr Network::NetID SUPPORTED_NETWORKS[] = {
Network::NetID::HSCAN,
Network::NetID::HSCAN2,
Network::NetID::Ethernet
};
protected:
virtual void setupSupportedRXNetworks(std::vector<Network>& rxNetworks) override {
for(auto& netid : SUPPORTED_NETWORKS)
rxNetworks.emplace_back(netid);
}
// The supported TX networks are the same as the supported RX networks for this device
virtual void setupSupportedTXNetworks(std::vector<Network>& txNetworks) override { setupSupportedRXNetworks(txNetworks); }
private:
ValueCAN4_2EL(neodevice_t neodevice) : ValueCAN4(neodevice) {
initialize<STM32, ValueCAN4_2ELSettings>();
@@ -22,6 +22,22 @@ public:
return found;
}
static constexpr Network::NetID SUPPORTED_NETWORKS[] = {
Network::NetID::HSCAN,
Network::NetID::HSCAN2,
Network::NetID::HSCAN3,
Network::NetID::HSCAN4
};
protected:
virtual void setupSupportedRXNetworks(std::vector<Network>& rxNetworks) override {
for(auto& netid : SUPPORTED_NETWORKS)
rxNetworks.emplace_back(netid);
}
// The supported TX networks are the same as the supported RX networks for this device
virtual void setupSupportedTXNetworks(std::vector<Network>& txNetworks) override { setupSupportedRXNetworks(txNetworks); }
private:
ValueCAN4_4(neodevice_t neodevice) : ValueCAN4(neodevice) {
initialize<STM32, ValueCAN4_4Settings>();
+3 -2
View File
@@ -12,8 +12,9 @@ public:
static constexpr const uint16_t PRODUCT_ID = 0x1101;
protected:
virtual void setupEncoder(Encoder* encoder) override {
encoder->supportCANFD = true;
virtual void setupEncoder(Encoder& encoder) override {
Device::setupEncoder(encoder);
encoder.supportCANFD = true;
}
ValueCAN4(neodevice_t neodevice) : Device(neodevice) {