System for configuring filter objects for a controller-area-network control system

By adding non-network message identifiers and simplifying Boolean expressions, the method optimizes filter object configuration in CAN controllers, reducing resource consumption and processing demands while maintaining effective message filtering.

DE102019111564B4Active Publication Date: 2026-05-07GM GLOBAL TECHNOLOGY OPERATIONS LLC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
GM GLOBAL TECHNOLOGY OPERATIONS LLC
Filing Date
2019-05-03
Publication Date
2026-05-07

AI Technical Summary

Technical Problem

Conventional methods for configuring filter objects in Controller Area Network (CAN) controllers require multiple hardware and software implementations, leading to resource exhaustion and increased processing power demands as the number of relevant messages increases, which is inefficient and undesirable.

Method used

The method involves selectively adding message identifiers that do not correspond to any message on the network bus to the set of relevant message identifiers, performing Boolean factorization to simplify the function representing these identifiers, and configuring filter objects based on the simplified Boolean expression to reduce the number of required filter objects.

Benefits of technology

This approach reduces the number of filter objects needed, conserves computing resources, and eliminates the need for additional software implementation, thereby optimizing hardware usage and processing power.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

System (800), comprising: an electronic processor (802) configured to: Determine (710) a plurality of message identifiers (410, 610) of messages to be captured by a filter object (140); Performing (720) the factorization of a function (630) representing the plurality of message identifiers (410, 610) to generate a simplified function (640); and Configure (730) at least one filter object (140) based on the generated simplified function (640); wherein the electronic processor (802) is further configured to add at least one message identifier (510, 520, 530) to the plurality of message identifiers (410, 610), wherein the added at least one message identifier (510, 520, 530) does not correspond to any message that is transmitted on a network bus, and the addition of the at least one message identifier (510, 520, 530) results in a simplified function (640) that is simpler than a simplified function (640) that is generated without the added at least one message identifier (510, 520, 530); wherein the messages to be captured by the filter object (140) correspond to messages to be received and processed by a controller (130) of a controller area network via a network bus (130).
Need to check novelty before this filing date? Find Prior Art

Description

Technical field

[0001] The embodiments in question relate to the configuration of filter objects for a Controller Area Network (CAN) controller. In particular, one or more embodiments may relate to the configuration of a filter object that filters messages received on a network bus of the Controller Area Network. One or more embodiments may filter the messages of the network bus to determine one or more messages that are relevant, for example, to one or more controllers. Introduction

[0002] A CAN controller is a software and / or hardware interface for a vehicle control system that communicates via the Controller Area Network (CAN) protocol. The CAN protocol is a communication standard that enables communication between controllers on a network. The protocol can be used in a wide variety of applications, including, but not limited to, automotive applications, factory automation, industrial and commercial buildings, and more. Because messages are transmitted over a serial bus and each controller receives the messages, each controller uses one or more filter objects to determine which of the received messages are relevant to its operation.As described in more detail below, each received message has a corresponding message identifier, and determining whether a received message is relevant for a specific controller is done by comparing the received message identifier with a list of identifiers for messages that the respective controller must process. If a filter object in the CAN controller determines that a message is relevant for the controller, the corresponding message is made available to the controller for further processing.

[0003] US 2008 / 0263093A1 describes a method, system, and computer program product for achieving a balance between prefilter efficiency and prefilter throughput. Event subscriptions are retrieved for a given event consumer. The event subscriptions define the events to be forwarded to that event consumer. Based on these event subscriptions, prefilters of varying complexity and filtering performance are created. A balance between prefilter efficiency and prefilter throughput can be achieved by selecting the best prefilter from these created prefilters to filter events to the associated event consumer. The best prefilter is selected by combining a complexity threshold (e.g., a limit on the number of atomic Boolean expressions in a prefilter) with the actual complexity (e.g., the number of atomic Boolean expressions in a prefilter).The actual number of atomic Boolean expressions) for each created prefilter is compared, and the most complex prefilter is selected without exceeding the threshold.

[0004] US 6 732 254 B1 describes a CAN device that supports a plurality n (where n >= 3) of message objects, including a plurality of registers associated with each message object, including at least one object match ID register containing a multi-bit object match ID field, and at least one object mask register containing a multi-bit object mask field; and a CAN / CAL module that processes incoming messages.The CAN / CAL module assembles a multi-bit screener ID from selected bits of each incoming message to be accepted, compares the bits comprising the screener ID with the corresponding bits of the object match ID field assigned to each of the at least designated of the plurality n message objects, ignoring all bits of each object match ID field that are masked by corresponding bits of the associated object mask field, and then determines whether any of the comparisons result in a match.Each selected bit or bits of the object match ID field, which is associated with each of the multiple n message objects, can be set to "1" or "0", and each selected one or more bits of the object mask field, which is associated with each of the multiple n message objects, can be set to "1" or "0" to mask each selected one or more bits of the associated object match ID field, thus forming a fully programmable match and mask filter through the combination of the object match ID field and the object mask field, which is associated with each of the multiple n message objects. The CAN / CAL module is capable of subjecting incoming messages, which represent either standard or extended CAN frames, to acceptance filtering.If more than one match is found, the message object with the lowest number (or alternatively, the highest number) is designated as the matching message object. Description of the invention

[0005] The invention is defined by the claims.

[0006] According to an exemplary embodiment, a method may involve a processor determining a plurality of message identifiers of messages to be captured by a filter object. The method may also involve factoring a function representing the plurality of message identifiers to generate a simplified function, where the function is a sum of Boolean products. The method may also include configuring at least one filter object based on the generated simplified function.

[0007] In another exemplary embodiment, the method can also involve adding at least one message identifier to the plurality of message identifiers. The added at least one message identifier does not correspond to any message transmitted on a network bus, and the addition of the at least one message identifier results in a simplified function that is simpler than a simplified function generated without the additional at least one message identifier.

[0008] In another exemplary embodiment, the messages to be captured by the filter object correspond to messages to be received and processed by a controller of a Controller Area Network via a network bus.

[0009] In another exemplary embodiment, the added at least one message identifier does not correspond to any message that is transmitted on the network bus of the Controller Area Network.

[0010] In another exemplary embodiment, performing the factorization of the function involves performing a Boolean factorization of the function.

[0011] In another exemplary embodiment, performing Boolean factorization involves simplifying the function to obtain a minimal set of Boolean products.

[0012] In another exemplary embodiment, each message identifier added to the plurality of message identifiers differs from another message identifier in the plurality of message identifiers by a single bit.

[0013] In another exemplary embodiment, configuring the at least one filter object involves configuring a set of identifier bits and a set of mask bits.

[0014] In another exemplary embodiment, the control of one controller corresponds to a plurality of controllers of the Controller Area Network.

[0015] In another exemplary embodiment, adding the at least one message identifier involves adding different combinations of message identifiers to determine which combination results in a simplest simplified function.

[0016] In another exemplary embodiment, a system includes an electronic processor configured to determine a plurality of message identifiers of messages to be captured by a filter object. The electronic processor is also configured to perform the factorization of a function representing the plurality of message identifiers to generate a simplified function. The electronic processor is also configured to configure at least one filter object based on the generated simplified function.

[0017] In another exemplary embodiment, the electronic processor is further configured to add at least one message identifier to the plurality of message identifiers. The added at least one message identifier does not correspond to any message transmitted on a network bus, and the addition of the at least one message identifier results in a simplified function that is simpler than a simplified function generated without the additional at least one message identifier.

[0018] In another exemplary embodiment, the messages to be captured by the filter object correspond to messages to be received and processed by a controller of a Controller Area Network via a network bus.

[0019] In another exemplary embodiment, the added at least one message identifier does not correspond to any message that is transmitted on the network bus of the Controller Area Network.

[0020] In another exemplary embodiment, performing the factorization of the function involves performing a Boolean factorization of the function.

[0021] In another exemplary embodiment, performing Boolean factorization involves simplifying the function to obtain a minimal set of Boolean products.

[0022] In another exemplary embodiment, each message identifier added to the plurality of message identifiers differs from another message identifier in the plurality of message identifiers by a single bit.

[0023] In another exemplary embodiment, configuring the at least one filter object involves configuring a set of identifier bits and a set of mask bits.

[0024] In another exemplary embodiment, the control of one controller corresponds to a plurality of controllers of the Controller Area Network.

[0025] In another exemplary embodiment, adding the at least one message identifier involves adding different combinations of message identifiers to determine which combination results in a simplest simplified function.

[0026] The aforementioned properties and advantages, as well as other properties and functions of the present disclosure, will become readily apparent from the following detailed description in conjunction with the accompanying drawings. Brief description of the drawings

[0027] Other features, advantages and details appear, only by way of example, in the following detailed description of the embodiments, the detailed description referring to the drawings, wherein the following applies: Fig. Figure 1 illustrates the filtering of messages transmitted over a bus; Fig. Figure 2 illustrates a format of a message identifier of a Controller Area Network message according to one or more embodiments; Fig. 3 illustrates components of a filter object according to one or more embodiments; Fig. Figure 4 illustrates an exemplary variety of message identifiers of the Controller Area Network that are captured by multiple filters according to one or more embodiments; Fig. Figure 5 illustrates the addition of message identifiers to the multitude of message identifiers that are to be captured by a single filter according to one or more embodiments; Fig. Figure 6 illustrates the configuration of exemplary filter objects according to one or more embodiments; Fig. Figure 7 illustrates a flowchart of a process according to one or more embodiments; and Fig. Figure 8 illustrates a high-level block diagram of a computer system that can be used to implement one or more embodiments. Detailed description

[0028] The following description is merely exemplary and is not intended to limit the present disclosure in its applications or uses. The term "module" as used herein refers to a processing circuit that may include an application-specific integrated circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or grouped), and memory executing one or more software or firmware programs, a combinational logic circuit, and / or other suitable components that provide the described functionality.

[0029] Fig. Figure 1 illustrates the filtering of messages transmitted over a bus. As previously described, CAN messages are transmitted over a network bus within a Controller Area Network to facilitate communication between microcontrollers, electronic control units, and / or devices. In the example of Fig. 1. CAN messages are transmitted on a CAN bus 101 between controller 110, controller 120, and controller 130. Each controller can use at least one filter object to determine which messages are relevant to its function. The messages captured by the at least one filter can be considered relevant to the controller corresponding to that filter. The messages captured by the at least one filter are thus processed by the corresponding controller. The messages can be filtered based on the message identifiers assigned to them. In the example of Fig. 1. Filter object 140 performs the filtering of messages transmitted on the CAN bus by the controller 130. The controller 130 uses filter object 140 to determine / capture a set of message identifiers 150 from messages that are relevant to the controller 130. In the example of Fig. 1 includes the set of relevant message identifiers 150 of messages relevant to the control 130, the message identifiers 0x1FF, 0x2FA and 0x603, where these message identifiers are represented in a 3-digit hexadecimal format.

[0030] In conventional approaches to configuring filter objects, a separate filter object is configured for each relevant message identifier. In other words, conventional approaches generally establish a one-to-one correspondence between each relevant message identifier and each configured filter object. Each configured filter object can be implemented in hardware within its corresponding CAN controller. However, since the hardware resources that can be allocated to each filter object are limited, the capacity of the hardware-implemented filter objects can be exceeded as the number of relevant messages increases over the controller's lifetime.When the capacity / capability of the hardware-implemented filter objects is exceeded, conventional approaches generally supplement one or more hardware filter objects with a software-implemented filter to ensure that the required filtering function continues to be performed correctly. However, the conventional approach of using an additional software-implemented filter is generally undesirable because this additional filter typically requires additional processor processing power to perform the necessary filtering functions, and the capacity / capability of this processor can eventually be exceeded as more and more messages are added to the set of messages relevant to each control.

[0031] As described in more detail below, one or more embodiments can increase the number of identifiers captured by a filter object, thereby reducing the number of filter objects required. In particular, one or more embodiments can reduce the number of filter objects and thus the amount of hardware memory resources needed to configure them. By reducing the resources required to configure the filter objects, one or more embodiments can enable the configured filter objects to be implemented in hardware without the need for additional software implementation. This allows controllers to conserve computing power and resources.One or more embodiments can increase the number of identifiers captured by a filter object (and thus reduce the number of required filter objects) by selectively adding at least one message identifier to the set of relevant message identifiers. The selective addition of the at least one message identifier enables one or more embodiments to reduce the number of filter objects required to implement the filtering of the relevant message identifiers. In particular, as described in more detail herein, one or more embodiments can reduce the number of required configured filter objects by simplifying a function that represents the relevant message identifiers.In one exemplary embodiment, simplifying the function corresponds to minimizing a two-stage Boolean logic expression representing the relevant message identifiers. Minimizing a Boolean logic expression generally refers to reducing or minimizing the cost of implementing the Boolean expression.

[0032] Fig. Figure 2 illustrates a format of a message identifier for a Controller Area Network message according to one or more embodiments. In the example of Fig. 2. Any message identifier can be expressed as a multitude of binary bits. In particular, the exemplary message identifier of Fig. 2 11 binary bits (i.e., "01000001011"). Other embodiments can be applied to identifiers with any number of bits. As previously described, a controller with a configured filter object can determine whether to accept or reject a message (i.e., whether the message is relevant or irrelevant to the controller). The filter objects are configured to parse the binary bits of each message identifier of every message transmitted on the network bus, and the filter objects can thus determine which (if any) of the messages are relevant.

[0033] Fig. Figure 3 illustrates components of a filter object according to one or more embodiments. As previously described, Controller Area Network messages can be filtered by using one or more configured filter objects. Each filter object can include a set of identifier bits 310 and a set of masking bits 320. In one or more embodiments, the set of identifier bits 310 identifies which bits of a message identifier must be examined by the filter object. In the example of Fig. For example, the set of identifier bits 310 indicates that the last seven bits must be examined by the CAN controller to determine whether a message is a relevant message. The seven most significant bits of the identifier bit set 310 have a value of "1", while the four most significant bits have a value of "0". Although the identifier bit set 310 indicates which bits the CAN controller should examine, the masking bit set 320 indicates the specific bits with which the examined bits must match for the filter to consider the identifier of the examined message as the identifier of a relevant message.For example, the set of masking bits 320 indicates that the seven most significant bits of a message identifier must match "1001101" for the message identifier to be considered by the filter as the identifier of a relevant message. Since the identifier bits 310 indicate that the four rightmost bits do not need to be examined, the four rightmost bits of the masking bits are not configured. In other words, the four rightmost bits of a message identifier must be ignored by the CAN controller when filtering the message identifier using the filter object. Fig. 3 will not be taken into account.

[0034] Fig. Figure 4 illustrates an exemplary variety of message identifiers 410 of the Controller Area Network that are captured by multiple filters according to one or more embodiments. Fig. Figure 4 illustrates five exemplary message identifiers of relevant messages. The message identifiers (expressed by a hexadecimal representation) are: 0x010, 0x011, 0x014, 0x016, and 0x017. As previously described, conventional approaches typically configure a separate filter object for each relevant message identifier. Therefore, to filter the five exemplary message identifiers of Fig. To filter 4, conventional approaches would typically configure five separate filter objects. Since each filter object would also need to be implemented with a set of identifier bits and a set of masking bits, conventional approaches to configuring filter objects would be very resource-intensive.

[0035] In contrast to conventional approaches, one or more embodiments can generate at least one filter object that captures more relevant message identifiers by selectively adding at least one message identifier to the set of relevant message identifiers, where the relevant message identifiers correspond to the messages to be captured by the filter objects. The selective addition of at least one message identifier enables one or more embodiments to generate a filter object that captures more relevant message identifiers, thereby reducing the number of filter objects required to implement the filtering of the relevant message identifiers.After the at least one set of message identifiers has been added to the set of relevant message identifiers, one or more embodiments can perform the factorization of a function representing the entire set of message identifiers. In one or more embodiments, performing the factorization of the function can involve simplifying / minimizing a Boolean logic expression representing a new set of message identifiers. Finally, by configuring the filter objects according to the simplified function, one or more embodiments can reduce the number of filter objects required to implement the desired filtering, as described in more detail below.

[0036] Fig. Figure 5 illustrates the addition of message identifiers (510, 520, and 530) (corresponding to messages that are not to be transmitted on the bus) to the plurality of message identifiers that are to be detected by the filter according to one or more embodiments. Each message identifier of a relevant message (that is to be detected by the filter) can be represented as a numerical value. Fig. Figure 5 illustrates a set of relevant message identifiers that includes the identifiers 0x010, 0x011, 0x014, 0x016, and 0x017, which are the same set of relevant message identifiers as in Fig. Figure 4 illustrates this. One or more embodiments can selectively add at least one message identifier to the set of relevant message identifiers to reduce the number of filter objects required to filter the set of relevant message identifiers. In the example of Fig. For example, message identifier 510, message identifier 520 and message identifier 530 are added to the set of relevant message identifiers.

[0037] By selectively adding these message identifiers, one or more embodiments can increase the number of message identifiers that a filter object can capture. Thus, by increasing the number of message identifiers that one or more filter objects can capture, one or more embodiments can reduce the number of filter objects required to perform the filtering. Referring again to Fig. For example, by selectively adding the message identifier 530, which corresponds to the identifier 0x015 (i.e., 00000010101), to the set of relevant message identifiers, the need for separate filter objects to capture messages 0x014, 0x016, and 0x017 is eliminated, and only one filter object is required to capture messages 0x014, 0x016, and 0x017. In other words, in this example, the single filter can now ignore the first two bits from the right (i.e., the two least significant bits). By further adding additional message identifiers to the set of relevant message identifiers, one or more embodiments can further reduce the number of filter objects required to perform the filtering.After adding message identifiers 510, 520, and 530, a single filter object mask 512 can be used to filter for all eight message identifiers of the respective set of identifiers 511. The single filter object mask 512 (i.e., 00000010---) considers the leftmost eight bits of a message identifier when examining the message identifier to determine if the corresponding message is relevant, while ignoring the rightmost three bits of the message identifier.

[0038] In one or more embodiments, each of the selectively added message identifiers can correspond to messages that are never transmitted on the network bus. If the added message identifiers correspond to messages that do not appear on the network bus, then adding these message identifiers to the set of relevant message identifiers does not cause the configured filter object to consider an irrelevant message identifier as a relevant message identifier. In one or more embodiments, each selectively added message identifier can be a message identifier that differs from another message identifier (from the set of identifiers) by a single bit.By adding a message identifier that differs from another message identifier by a single bit, one or more embodiments eliminate the need for a filter to distinguish between these two message identifiers as previously described.

[0039] Fig. Figure 6 illustrates the configuration of exemplary filter objects according to one or more embodiments. One or more embodiments can first determine a set of relevant message identifiers 610. As already described, the set of relevant message identifiers 610 can include selectively added message identifiers, which can reduce the number of required filter objects.

[0040] The message identifiers 610 considered relevant can be represented by corresponding Boolean products 620. The Boolean products 620, which represent the relevant message identifiers 610, can in turn be expressed as a Boolean function 630. One or more embodiments can thus represent the message identifiers as a function. One or more embodiments can then simplify the function. For example, one or more embodiments can perform a Boolean simplification of the Boolean function 630. One or more embodiments can thus determine a simplified expression 640 (i.e., "~x + xy"). One or more embodiments can then configure filter objects based on the simplified Boolean expression 640. In the example of Fig. 6 corresponds to the simplified expression 640 “~x + xy”. Thus, the relevant message identifiers of Fig. 6. Filtering can be achieved by configuring two filter objects (where one filter object corresponds to "~x" and the other to "xy"). Thus, instead of configuring a separate filter object for each message identifier of the message identifiers 610, one or more embodiments can reduce and simplify the filter objects to be configured by configuring the filter objects based on the simplified Boolean expression 640.

[0041] Fig. Figure 7 depicts a flowchart of a process 700 according to one or more embodiments. The process of Fig. Step 7 can be used to configure a filter object for a Controller Area Network. The procedure of Fig. 7 can be performed by an automated algorithm running on a computer to configure the filter objects used by the CAN controllers. For example, the procedure of Fig. 7. The method is executed by an automated algorithm running on a computer that configures filter objects used by a vehicle's Controller Area Network. In one embodiment, sections of the method can be executed by a system separate from the vehicle. In another embodiment, sections of the method can be executed by a vehicle system. At block 710, the method may involve a processor determining a plurality of message identifiers of messages to be captured by a filter object. At block 720, the method may also involve factoring a function representing the plurality of message identifiers to generate a simplified function. At block 730, the method may also involve configuring at least one filter object based on the generated simplified function.

[0042] Fig.Figure 8 illustrates a high-level block diagram of a Computer System 800, which can be used to implement one or more embodiments. The Computer System 800 can correspond to at least one system that configures a filter object for a Controller Area Network. With one or more embodiments, the Controller Area Network can be provided and configured within an electric vehicle architecture, implementing, but not limited to, the physical and logical layers of the CAN protocol. The Computer System 800 can be used to implement hardware components of the system capable of performing the procedures described herein. Although an exemplary Computer System 800 is shown, the Computer System 800 includes a communication path 826 that connects the Computer System 800 to additional systems (not shown).The Computer System 800 and an additional system are connected to each other via the Communication Path 826, e.g. to transfer data between them.

[0043] The 800 computer system includes one or more processors, such as the 802 processor. The 802 processor is connected to a communication infrastructure 804 (e.g., a communication bus, a crossover rail, or a network). The 800 computer system may include a display interface 806, which forwards graphics, text, or other data from the communication infrastructure 804 (or a frame buffer not shown) for display on the display unit 808. The 800 computer system also includes main memory 810, preferably a hard disk drive (RAM), and may also include secondary memory 812. The secondary memory 812 may also contain one or more drives 814. The removable storage drive 816 reads from and / or writes to the removable storage unit 818.As can be seen, the removable storage unit 818 includes a computer-readable storage medium on which computer software and / or data are stored.

[0044] In alternative embodiments, the secondary memory 812 may include other similar means that enable the loading of computer programs or other instructions into the computer system. Such means may, for example, include a removable storage unit 820 and an interface 822.

[0045] In this description, the terms "computer program medium," "computer-usable medium," and "computer-readable medium" are used to refer generally to media such as main memory 810 and secondary memory 812, removable storage drives 816, and a hard disk installed in the hard disk drive 814. Computer programs (also called computer control logic) are stored in main memory 810 and / or secondary memory 812. Computer programs can also be received via communication interface 824. When such computer programs are executed, they enable the computer system to perform the features discussed herein. In particular, when executed, the computer programs enable the processor 802 to perform the features of the computer system.Thus, it is evident from the preceding detailed description that one or more embodiments provide technical benefits and advantages.

Claims

[1] System (800), comprising: an electronic processor (802) configured to: Determine (710) a plurality of message identifiers (410, 610) of messages to be captured by a filter object (140); Performing (720) the factorization of a function (630) representing the plurality of message identifiers (410, 610) to generate a simplified function (640); and Configure (730) at least one filter object (140) based on the generated simplified function (640); wherein the electronic processor (802) is further configured to add at least one message identifier (510, 520, 530) to the plurality of message identifiers (410, 610), wherein the added at least one message identifier (510, 520, 530) does not correspond to any message that is transmitted on a network bus, and the addition of the at least one message identifier (510, 520, 530) results in a simplified function (640) that is simpler than a simplified function (640) that is generated without the added at least one message identifier (510, 520, 530); wherein the messages to be captured by the filter object (140) correspond to messages to be received and processed by a controller (130) of a controller area network via a network bus (130). [2] System (800) according to claim 1, wherein the added at least one message identifier (510, 520, 530) does not correspond to any message that is transmitted on the network bus (130) of the Controller Area Network. [3] System (800) according to claim 1, wherein performing the factorization of the function (630) comprises performing a Boolean factorization of the function (630). [4] System (800) according to claim 3, wherein performing the Boolean factorization comprises simplifying the function (630) to obtain a minimal set of Boolean products. [5] System (800) according to claim 1, wherein each message identifier (510, 520, 530) added to the plurality of message identifiers (410, 610) differs from another message identifier (410, 610) of the plurality of message identifiers (410, 610) by a single bit. [6] System (800) according to claim 1, wherein configuring the at least one filter object (140) comprises configuring a set of identifier bits (310) and a set of masking bits (320). [7] System (800) according to claim 1, wherein the controller (130) corresponds to a controller (130) of a plurality of controllers (110, 120, 130) of the Controller Area Network. [8] System (800) according to claim 1, wherein adding the at least one message identifier (510, 520, 530) comprises adding different combinations of message identifiers (510, 520, 530) to determine which combination results in a simplest simplified function (640).

Citation Information

Patent Citations

  • Generation of a set of pre-filters from a set of event subscriptions to more efficiently select events of interest

    US20080263093A1

  • Can device featuring advanced can filtering and message acceptance

    US6732254B1