pull request corrections

This commit is contained in:
Ilia
2015-12-20 22:53:19 +00:00
parent c5a340719f
commit 292b06c2d8
3 changed files with 71 additions and 79 deletions
@@ -16,6 +16,8 @@ const unsigned CanAcceptanceFilterConfigurator::DefaultAnonMsgID;
int16_t CanAcceptanceFilterConfigurator::loadInputConfiguration(AnonymousMessages load_mode)
{
multiset_configs_.clear();
if (load_mode == AcceptAnonymousMessages)
{
CanFilterConfig anon_frame_cfg;
@@ -115,15 +117,15 @@ int16_t CanAcceptanceFilterConfigurator::applyConfiguration(void)
if (filter_array_size > acceptance_filters_number)
{
UAVCAN_TRACE("CanAcceptanceFilter", "Too many filter configurations. Executing computeConfiguration()");
computeConfiguration(IgnoreAnonymousMessages);
mergeConfigurations();
filter_array_size = multiset_configs_.getSize();
}
if (filter_array_size > MaxCanAcceptanceFilters)
{
UAVCAN_ASSERT(0);
return -ErrLogic;
UAVCAN_TRACE("CanAcceptanceFilter", "Failed to apply HW filter configuration");
return -ErrLogic;
}
for (uint16_t i = 0; i < filter_array_size; i++)
@@ -149,15 +151,15 @@ int16_t CanAcceptanceFilterConfigurator::applyConfiguration(void)
ICanIface* iface = can_driver.getIface(i);
if (iface == NULL)
{
return -ErrDriver;
UAVCAN_TRACE("CanAcceptanceFilter", "Failed to apply HW filter configuration");
return -ErrDriver;
}
int16_t num = iface->configureFilters(reinterpret_cast<CanFilterConfig*>(&filter_conf_array),
static_cast<uint16_t>(filter_array_size));
if (num < 0)
{
return -ErrDriver;
UAVCAN_TRACE("CanAcceptanceFilter", "Failed to apply HW filter configuration");
return -ErrDriver;
}
}
@@ -194,7 +196,7 @@ uint16_t CanAcceptanceFilterConfigurator::getNumFilters() const
if (filters_number_ == 0)
{
static const uint16_t InvalidOut = 0xFFFF;
uint16_t out = InvalidOut;
uint16_t out = InvalidOut;
ICanDriver& can_driver = node_.getDispatcher().getCanIOManager().getCanDriver();
for (uint8_t i = 0; i < node_.getDispatcher().getCanIOManager().getNumIfaces(); i++)
@@ -224,8 +226,7 @@ uint16_t CanAcceptanceFilterConfigurator::getNumFilters() const
int16_t CanAcceptanceFilterConfigurator::addFilterConfig(const CanFilterConfig& config)
{
CanFilterConfig supl_config = config;
if (multiset_configs_.emplace(supl_config) == NULL)
if (multiset_configs_.emplace<const CanFilterConfig&>(config) == NULL)
{
return -ErrMemory;
}
@@ -127,28 +127,20 @@ TEST(CanAcceptanceFilter, Basic_test)
uavcan::CanAcceptanceFilterConfigurator anon_test_configuration(node, 10);
uavcan::CanFilterConfig aux_config_1, aux_config_2;
aux_config_1.id = 0;
aux_config_1.mask = 1488;
aux_config_2.id = 24;
aux_config_2.mask = 72;
int configure_filters_assert;
configure_filters_assert = anon_test_configuration.addFilterConfig(aux_config_1);
ASSERT_EQ(configure_filters_assert, 0);
configure_filters_assert = anon_test_configuration.addFilterConfig(aux_config_2);
ASSERT_EQ(configure_filters_assert, 0);
configure_filters_assert = anon_test_configuration.computeConfiguration();
int configure_filters_assert = anon_test_configuration.computeConfiguration();
ASSERT_EQ(configure_filters_assert, 0);
std::cout << "Filters are calculated with anonymous configuration." << std::endl;
const auto& configure_array = anon_test_configuration.getConfiguration();
uint32_t configure_array_size = configure_array.getSize();
std::cout << "Number of configs after first time computeConfiguration() invoked: "
std::cout << "Number of configurations after first time computeConfiguration() invoked: "
<< configure_array_size << std::endl;
ASSERT_EQ(configure_array_size, 10);
ASSERT_EQ(configure_array_size, 9);
std::cout << "Adding two additional configurations ... " << std::endl;
uavcan::CanFilterConfig aux_config_1, aux_config_2;
aux_config_1.id = 911;
aux_config_1.mask = 1488;
aux_config_2.id = 999999;
aux_config_2.mask = 849128412;
configure_filters_assert = anon_test_configuration.addFilterConfig(aux_config_1);
@@ -157,7 +149,7 @@ TEST(CanAcceptanceFilter, Basic_test)
ASSERT_EQ(configure_filters_assert, 0);
configure_array_size = configure_array.getSize();
std::cout << "New configuration anon_container size: " << configure_array_size << std::endl;
ASSERT_EQ(configure_array_size, 12);
ASSERT_EQ(configure_array_size, 11);
std::cout << "Applying configuration ... " << std::endl;
configure_filters_assert = anon_test_configuration.applyConfiguration();
@@ -173,26 +165,26 @@ TEST(CanAcceptanceFilter, Basic_test)
std::cout << "config.MK [" << i << "]= " << configure_array.getByIndex(i)->mask << std::endl;
}
ASSERT_EQ(configure_array.getByIndex(0)->id, 2147489920);
ASSERT_EQ(configure_array.getByIndex(0)->mask, 3758129024);
ASSERT_EQ(configure_array.getByIndex(1)->id, 2147739648);
ASSERT_EQ(configure_array.getByIndex(1)->mask, 3774868352);
ASSERT_EQ(configure_array.getByIndex(2)->id, 0);
ASSERT_EQ(configure_array.getByIndex(2)->mask, 1488);
ASSERT_EQ(configure_array.getByIndex(3)->id, 999999);
ASSERT_EQ(configure_array.getByIndex(3)->mask, 849128412);
ASSERT_EQ(configure_array.getByIndex(4)->id, 2147745792);
ASSERT_EQ(configure_array.getByIndex(4)->mask, 3774872704);
ASSERT_EQ(configure_array.getByIndex(5)->id, 2147489920);
ASSERT_EQ(configure_array.getByIndex(5)->mask, 3758129024);
ASSERT_EQ(configure_array.getByIndex(6)->id, 2147745792);
ASSERT_EQ(configure_array.getByIndex(6)->mask, 3774868352);
ASSERT_EQ(configure_array.getByIndex(7)->id, 0);
ASSERT_EQ(configure_array.getByIndex(7)->mask, 1488);
ASSERT_EQ(configure_array.getByIndex(8)->id, 24);
ASSERT_EQ(configure_array.getByIndex(8)->mask, 72);
ASSERT_EQ(configure_array.getByIndex(9)->id, 2147483648);
ASSERT_EQ(configure_array.getByIndex(9)->mask, 3758096639);
ASSERT_EQ(configure_array.getByIndex(0)->id, 911);
ASSERT_EQ(configure_array.getByIndex(0)->mask, 1488);
ASSERT_EQ(configure_array.getByIndex(1)->id, 999999);
ASSERT_EQ(configure_array.getByIndex(1)->mask, 849128412);
ASSERT_EQ(configure_array.getByIndex(2)->id, 2147746048);
ASSERT_EQ(configure_array.getByIndex(2)->mask, 3774873472);
ASSERT_EQ(configure_array.getByIndex(3)->id, 2147744768);
ASSERT_EQ(configure_array.getByIndex(3)->mask, 3774873472);
ASSERT_EQ(configure_array.getByIndex(4)->id, 2147739648);
ASSERT_EQ(configure_array.getByIndex(4)->mask, 3774873472);
ASSERT_EQ(configure_array.getByIndex(5)->id, 2147746816);
ASSERT_EQ(configure_array.getByIndex(5)->mask, 3774873472);
ASSERT_EQ(configure_array.getByIndex(6)->id, 2147746304);
ASSERT_EQ(configure_array.getByIndex(6)->mask, 3774873472);
ASSERT_EQ(configure_array.getByIndex(7)->id, 2147483648);
ASSERT_EQ(configure_array.getByIndex(7)->mask, 3758096639);
ASSERT_EQ(configure_array.getByIndex(8)->id, 2147489920);
ASSERT_EQ(configure_array.getByIndex(8)->mask, 3758129024);
ASSERT_EQ(configure_array.getByIndex(9)->id, 2147749888);
ASSERT_EQ(configure_array.getByIndex(9)->mask, 3774873472);
uavcan::CanAcceptanceFilterConfigurator no_anon_test_confiruration(node, 4);
configure_filters_assert = no_anon_test_confiruration.computeConfiguration