TSMaster's 4 filters: 1) Hardware Filter: You can filter the data bits on the hardware side, hardware filtering. In the hardware side to prevent the reception of some of the unwanted messages, leaving more bandwidth for the reception of other messages. (2) Data flow filter: Filter bus data flow, software filtering. Efficient and convenient operation, you need to be clear about the content to be filtered. (3) Window Filter: Setting filters for windows, software filtering. Easy to set up, the scope of action is limited to the window, the filter conditions are more limited. (4) Programming filter: window messages can be filtered through scripts, software filtering. The filtering conditions are more flexible and rich, requiring a certain programming foundation.
1. Hardware filters
With regard to the CAN filter settings in the figure below, it is possible to filter both standard (11 bits) and extended (29 bits) frames, based on the data bits of the ID segment. Each bit has three states (0: block, 1: pass, x: any bit), which can be toggled with a left mouse click, and a list of passable identifiers is displayed below in real time after the settings have been made. In the bottom left corner of the dialog box, you can enter the video documentation of the help, in the middle, you can check whether a certain ID can be passed under the current filter conditions, and in the bottom right corner, there are OK and Cancel filter settings.
For example, to set the message 0x100 to pass and all other identifier messages to be blocked, you can set it as shown below:
So if we want to block a certain ID message can we set it here? The answer is yes. However, since this is to do the filtering of data bits on the hardware side, so when we restrict a certain bit can not pass, it will inevitably also bring part of the other ID of the message is restricted, which is also the limitation of this filter.
When you set 0x100 to disable pass-through as shown in the following figure, it will limit all the message IDs with data bit 09 and this one as 1:
So how many filtering methods can we set in total? As mentioned before, we have 3 states to choose from for each bit, 11 bits for the standard frame ID and 29 bits for the extended frame ID, so there are several filtering methods for these two message frames as follows:
Standard frame: number of filtering methods = 311
Extended frame: number of filtering methods = 329
2. Data flow filter
1) Configuration process
Data flow filter is actually the flow of the message, such as from the left data source (here can be understood as the project corresponding to the bus network) flowed to the message information, bus records and other windows of the message is filtered through the filter before flowing to the modules, so these modules received under the message is not necessarily all the messages on the bus.
2) Module color meaning
Also these modules are all different colors and different colors have corresponding meanings:
✔ White form: allow all data to pass through
✔ Green Forms: data that meets the conditions is passed through the
✔ Red form: prohibits all data from passing through
For example, in the figure below, we have set up a pass-through filter for the message 0x100 on channel 1, and filtered the CAN/CAN FD message information window, bus logging module, and curve window, so that the two periodic messages (0x100, 0x101) sent in the transmit window can only be seen as the message 0x100 sent under channel 1 in the message information window.
The advantage of this filter is efficient, intuitive, repeatable use, but compared to simple screening observation configuration process will be a little more cumbersome (this need to choose the next window filter will be more convenient), on the data flow filter this piece of content you can also refer to the TSMaster software help under the "TSMaster Quick Start" manual.
3. Window filter
This filter is more common and easier to configure, you can configure it by clicking the funnel button directly in the window you need to filter. It is suitable for us to monitor part of the messages in the real-time bus or part of the messages in the playback situation, and the configuration is simple and convenient. However, it is also due to its convenience, it has greater limitations, such as the scope of action is limited to a single window, filtering conditions less filtering, bus record messages and filtering window message consistency is poor (this is recommended to use the data flow filter), so this filter is generally used for simple observation or combined with other filters.
4. Programming Filter
1) Configuration process
The two diagrams below show the steps to set up the Programming Filter. The Programming Filter is a feature of the newer versions of TSMaster, so it is recommended that you update TSMaster to the latest version with help before using it.
So what are some of the situations in which we might want to use this programming filter? First we need to understand what makes this programming filter different from the other three filters:
✔ Programming filters are filters that are implemented on the software side, which can refine the filtering conditions even more, even down to the filtering of a particular data bit
✔ Programming filters for less common, more specialized situations
✔ Programming filters can be configured with more flexible content, fully customizable according to their own needs, and can be reused
✔ Programming filters can be used in combination with other filters with a high degree of adaptability
Programming filters can actually be roughly understood as writing a filter yourself, so you need to have a certain degree of familiarity with the syntax of C script and related structures, the threshold will be a little higher compared to the other kinds of filters. But because of the sake of the example, as long as you understand the basic syntax of C script, in fact, it can also become us in the enhancement of work efficiency and critical problem solving play a greater role.
4) Sample Demonstration
The following is an example of how to set up a programmed filter to demonstrate how we can filter window messages according to our needs:
Take the message information window filter as an example, first enter the programmed filter that analyzes the message information window.
Open the script for the programmed filter, write the filter conditions and compile it.
Start the project to receive messages for observation, and the filter takes effect.
Above, we can clearly see that the filtering conditions of the programmed filters are in effect. In the example, only the channel, ID and data bits in our message structure are filtered, in addition, we can also filter other information, such as message frame type, send/receive direction, byte length (DLC), and even filter whether the baud rate is a changing message, signal value, message period (within a certain fault tolerance) and so on:
The above are 4 different types of filters in TSMaster, these filters have different roles for our different application scenarios, we should choose one or several filters according to their own needs for combined use, in order to improve our work efficiency, repeatability, convenience and effectiveness of the principle of rapid solution to some of the problems encountered in the work.
(Egg: All of the above are receive filters, so how do you come up with a send filter? Idea: use the pre-send event of the C script to send unwanted messages to a channel that doesn't exist, e.g. channel 2 (CH3) in the picture above doesn't actually exist).