mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-11 23:43:35 +08:00
Acceptance filter update for new transport layer corrections_2
This commit is contained in:
@@ -16,9 +16,6 @@
|
||||
|
||||
namespace uavcan
|
||||
{
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* This class configures hardware acceptance filters (if this feature is present on the particular CAN driver) to
|
||||
* preclude reception of irrelevant CAN frames on the hardware level.
|
||||
@@ -40,7 +37,7 @@ public:
|
||||
/**
|
||||
* These arguments defines whether acceptance filter configuration has anonymous messages or not
|
||||
*/
|
||||
enum AnonMessagePresence {WithAnonMsg,NoAnonMsg};
|
||||
enum AnonymousMessages {AcceptAnonymousMessages,IgnoreAnonymousMessages};
|
||||
|
||||
private:
|
||||
/**
|
||||
@@ -61,7 +58,7 @@ private:
|
||||
static const unsigned DefaultFilterMsgMask = 0xFFFF80;
|
||||
static const unsigned DefaultFilterServiceMask = 0x7F80;
|
||||
static const unsigned DefaultFilterServiceID = 0x80;
|
||||
static const unsigned DefaultAnonMsgMask = 0xF;
|
||||
static const unsigned DefaultAnonMsgMask = 0xFF;
|
||||
static const unsigned DefaultAnonMsgID = 0x0;
|
||||
|
||||
typedef uavcan::Multiset<CanFilterConfig, 1> MultisetConfigContainer;
|
||||
@@ -73,7 +70,7 @@ private:
|
||||
/**
|
||||
* Fills the multiset_configs_ to proceed it with computeConfiguration()
|
||||
*/
|
||||
int16_t loadInputConfiguration(AnonMessagePresence load_mode);
|
||||
int16_t loadInputConfiguration(AnonymousMessages load_mode);
|
||||
|
||||
/**
|
||||
* This method merges several listeners's filter configurations by predetermined algorithm
|
||||
@@ -101,7 +98,7 @@ public:
|
||||
* @return 0 = success, negative for error. Input argument defines the presence of anonymous messages
|
||||
* WithAnonMsg(default)/NoAnonMsg.
|
||||
*/
|
||||
int configureFilters(AnonMessagePresence mode = WithAnonMsg);
|
||||
int configureFilters(AnonymousMessages mode = AcceptAnonymousMessages);
|
||||
|
||||
/**
|
||||
* Returns the configuration computed with computeConfiguration().
|
||||
|
||||
@@ -14,11 +14,11 @@ const unsigned CanAcceptanceFilterConfigurator::DefaultFilterServiceMask;
|
||||
const unsigned CanAcceptanceFilterConfigurator::DefaultAnonMsgMask;
|
||||
const unsigned CanAcceptanceFilterConfigurator::DefaultAnonMsgID;
|
||||
|
||||
int16_t CanAcceptanceFilterConfigurator::loadInputConfiguration(AnonMessagePresence load_mode)
|
||||
int16_t CanAcceptanceFilterConfigurator::loadInputConfiguration(AnonymousMessages load_mode)
|
||||
{
|
||||
multiset_configs_.clear();
|
||||
|
||||
if (load_mode == WithAnonMsg)
|
||||
if (load_mode == AcceptAnonymousMessages)
|
||||
{
|
||||
CanFilterConfig anon_frame_cfg;
|
||||
anon_frame_cfg.id = DefaultAnonMsgID;
|
||||
@@ -149,7 +149,7 @@ int16_t CanAcceptanceFilterConfigurator::applyConfiguration(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int CanAcceptanceFilterConfigurator::configureFilters(AnonMessagePresence mode)
|
||||
int CanAcceptanceFilterConfigurator::configureFilters(AnonymousMessages mode)
|
||||
{
|
||||
if (getNumFilters() == 0)
|
||||
{
|
||||
|
||||
@@ -146,7 +146,7 @@ TEST(CanAcceptanceFilter, Basic_test)
|
||||
}
|
||||
|
||||
ASSERT_EQ(configure_array.getByIndex(0)->id, 0);
|
||||
ASSERT_EQ(configure_array.getByIndex(0)->mask, 15);
|
||||
ASSERT_EQ(configure_array.getByIndex(0)->mask, 255);
|
||||
ASSERT_EQ(configure_array.getByIndex(1)->id, 256000);
|
||||
ASSERT_EQ(configure_array.getByIndex(1)->mask, 16771968);
|
||||
ASSERT_EQ(configure_array.getByIndex(2)->id, 6272);
|
||||
@@ -157,7 +157,7 @@ TEST(CanAcceptanceFilter, Basic_test)
|
||||
|
||||
uavcan::CanAcceptanceFilterConfigurator no_anon_test_confiruration(node);
|
||||
configure_filters_assert = no_anon_test_confiruration.configureFilters
|
||||
(uavcan::CanAcceptanceFilterConfigurator::NoAnonMsg);
|
||||
(uavcan::CanAcceptanceFilterConfigurator::IgnoreAnonymousMessages);
|
||||
if (configure_filters_assert == 0)
|
||||
{
|
||||
std::cout << "Filters are configured without anonymous configuration..." << std::endl;
|
||||
|
||||
Reference in New Issue
Block a user