1

Topic: Partial Frame Manipulation

Hello Konstantin,


Here is a scenario that I have been trying with my CANNY 7.2 DUO.

Is it possible to block a specific byte in a data frame while allowing other bytes of that same frame to pass through unchanged?

For example:

Source CAN 0 : 0x308 [1][2] == RPM.

Target CAN 1:

0x201 [FF FF] FF 00 22 22 00 00
ERL (8)

D1:D0 == RPM
D5:D4 == MPH

I want to block or replace D1:D0  while passing the remaining bytes through.

The issue came about due to bench test scenario where I have
the replacement engine ECM on CAN 0 broadcasting RPM 0x308 [1][2] to activate the RPM gauge on the instrument cluster on CAN 1  via 0x201 D1:D0 successfully.

However, the vehicle's overall system rely on the original engine's PCM to broadcast 0x201 byte D5:D4 for MPH.

If I allow both PCM node and CANNY node to broadcast then the RPM gauge and MPH gauge fluctuate due to contradictory data.


If I try to  block 0x201 to prevent D1:D0 (00:00) using

(1)->CANGW Selector X Drop Mode.
(0xFFFF)->CANGW Selector X Value Mask, CAN IDL.
(1)->CANGGW Selector X Replace Mask, CAN D1:D0.
(0)->CANGW Selector X Replace,CAN D1:D0.


Then the whole frame 0x201 with all bytes are dropped.

Is it possible to replace 0x201 D1:D0 leaving the remaining bytes complete?
Perhaps I can put both ECM and PCM on CAN0 then only allow desired frames from to pass from CAN 0 to CAN 1 (vehicle bus)?

2

Re: Partial Frame Manipulation

Yes, it is possible. Please see the example "Processing received CAN messages in a custom diagram" (Figure 4)  in the documentation: https://cannylogic.com/docs/c72duo/cang … processing