rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
Functions | Variables
can_filter.cpp File Reference

Functions

CanFiltergetFilterForId (size_t busIndex, int Id)
 
void resetLuaCanRx ()
 
void addLuaCanRxFilter (int32_t eid, uint32_t mask, int bus, int callback)
 

Variables

static size_t filterCount = 0
 
static CanFilter filters [LUA_RX_MAX_FILTER_COUNT]
 

Function Documentation

◆ addLuaCanRxFilter()

void addLuaCanRxFilter ( int32_t  eid,
uint32_t  mask,
int  bus,
int  callback 
)

Definition at line 31 of file can_filter.cpp.

31 {
32 if (filterCount >= LUA_RX_MAX_FILTER_COUNT) {
33 criticalError("Too many Lua CAN RX filters");
34 }
35
36 efiPrintf("Added Lua CAN RX filter id 0x%x mask 0x%x with%s custom function", (unsigned int)eid, (unsigned int)mask, (callback == -1 ? "out" : ""));
37
38 filters[filterCount].Id = eid;
39 filters[filterCount].Mask = mask;
40 filters[filterCount].Bus = bus;
41 filters[filterCount].Callback = callback;
42
44}
static size_t filterCount
Definition can_filter.cpp:9
static CanFilter filters[LUA_RX_MAX_FILTER_COUNT]
int32_t Id
Definition can_filter.h:10
int Callback
Definition can_filter.h:14
int32_t Mask
Definition can_filter.h:11

Referenced by lua_canRxAdd(), and lua_canRxAddMask().

Here is the caller graph for this function:

◆ getFilterForId()

CanFilter * getFilterForId ( size_t  busIndex,
int  Id 
)

Definition at line 12 of file can_filter.cpp.

12 {
13 for (size_t i = 0; i < filterCount; i++) {
14 auto& filter = filters[i];
15
16 if (filter.accept(Id)) {
17 if (filter.Bus == ANY_BUS || filter.Bus == (int)busIndex) {
18 return &filter;
19 }
20 }
21 }
22
23 return nullptr;
24}

Referenced by processLuaCan().

Here is the caller graph for this function:

◆ resetLuaCanRx()

void resetLuaCanRx ( )

Definition at line 26 of file can_filter.cpp.

26 {
27 // Clear all lua filters - reloading the script will reinit them
28 filterCount = 0;
29}

Referenced by resetLua().

Here is the caller graph for this function:

Variable Documentation

◆ filterCount

size_t filterCount = 0
static

Definition at line 9 of file can_filter.cpp.

Referenced by addLuaCanRxFilter(), getFilterForId(), and resetLuaCanRx().

◆ filters

CanFilter filters[LUA_RX_MAX_FILTER_COUNT]
static

Definition at line 10 of file can_filter.cpp.

Referenced by addLuaCanRxFilter(), and getFilterForId().

Go to the source code of this file.