Just wondering if there is a way to convert a byte when it is a specific value to an on/off bit type targetId?
Specifically, when the byte value is 13 (decimal) I would like this to on (1) \and every other value off (0).
Just wondering if there is a way to convert a byte when it is a specific value to an on/off bit type targetId?
Specifically, when the byte value is 13 (decimal) I would like this to on (1) \and every other value off (0).
You could use enum for that:
enum="13:1,#:0"
@realdashdev thanks using enum already but didn’t think of using # to abbreviate all other results, presumably I can’t feed this into targetId143, which is on / off?
I don’t see any reason why you could not.
This didn’t work with the on/off targetId
Yes, if you specify units=“bit”, only the least significant bit is read from the value.
@realdashdev the following example does not work, I assume this is because the units apply to the value and not the enumerated value, although when the value =13, bit 0 is actually set with bits 2 and 3
value targetId=“143” offset=“6” length=“1” units=“bit” enum=“13:1,#:0”
The following works but it can’t be assigned to the targetId which is on/off
value name=“MP: TC_Lockup” offset=“6” length=“1” enum=“13:1,#:0”
If you specify units=“bit”, value can be either 0 or 1. enum is handled after the units conversion, so that is why it does not work with units=“bit”.
Edit: Added conversion for bitwise and, as I do not know what other data may be on those bytes.
Lets see:
- Value 13 in binary is 1101, so we can do a bitwise AND to confirm that those bits (and only those) are on.
value name="MP: TC_Lockup" offset="6" length="1" units="bit" conversion="V & 13"
Also noticed that in your examples you are using special double quota characters, so copy-pasting from your posts probably will not work. For that reason, always use a text editor that immediately shows any syntactic errors in your XML.
I have tried this; I am trying to work out my Ignition Status; to get Ignition on (ID167) i’m looking at 5 bits, and Ignition on is value 6 (00110) so using the example above I have this in my XML;
<value targetId="167" startbit="19" bitcount="5" units="bit" conversion="V & 6" enum="6:1,#:0"> </value> <!-- Ignition On -->
but it doesn’t work, I just see a value of 0, I am also reading the value into a custom name and using enum I get all the correct values as text; using this;
<value name="RS: Ignition Status" startbit="19" bitcount="5" enum="9:Cranking, 7:Running, 6:Ign On, 5:Post Ignition, 4:Accessory, 3:Post Accessory, 2:Key Approved, 1:Key Recently Out, 0:Key Out"></value> <!-- Ignition Status -->
So my question is as usual what am I doing wrong :D??
@Cl_eav the units=“bit” means its only looking at the first bit and not the second and third bits which are of interest to you, delete this and it should work
@mmain I just tried that, I used;
<value targetId="167" startbit="19" bitcount="5" conversion="V & 6" enum="6:1,#:0"> </value> <!-- Ignition On -->
and still no change, I ran a datalog as well here is a snap shot…

In the datalog, I see the custom value changing, but not the ID167
I think there is a bug, I tried putting the data intoa different target ID, used ID94 (dummy 02) and it works
<value targetId="167" startbit="19" bitcount="5" conversion="V & 6" enum="6:1,#:0"> </value> <!-- Ignition On -->
<value targetId="94" startbit="19" bitcount="5" conversion="V & 6" enum="6:1,#:0"> </value> <!-- Dummy 03 -->
So I don’t think the XML upload clears all the attribute data against a value, I had this eairler today as well, this kinda confirms the issue? my guess is ID167 still thinks it has units=“bit” even though this is now removed from the XML?
Need away now to “reset” ID167 ?? any idea’s??
@Cl_eav you are right ID167 only accepts a bit result, and your result is the conversion and not the result of the enum, neither are single bit
Hmmm, so what I thought I was doing was converting the value of 6 to 1 using the enum, I see the dummy value shows 1 or 0, which is perfect, so why doesn’t that get set as the bit value for ID167?
Ok I went back to basics,
<value targetId="167" startbit="21" bitcount="1" units="bit"></value> <!-- Ignition On -->
still no joy; the Can Frame looks like this - I have hi lighted the BIT i want

Am i missing something, its a Ford, I’ve got other bit values to work, i.e. parking brake, I don’t think i’m doing anything different, I know its been asked before but i’ve not seen a clear answer, how are the bits numbered when using startbit and bitcount?
@Cl_eav I replicated your Kvaser selection and converted to xml with same output as you
Are you getting desired results when assigned to another named value or alternatively another on/off targetId?
@mmain this make’s no sense now!
so:
<value targetId="167" startbit="21" bitcount="1" units="bit"></value> <!-- Ignition On -->
<value targetId="182" startbit="21" bitcount="1" units="bit"></value> <!-- Ignition On (Fuel Pump 1) -->
<value targetId="97" startbit="21" bitcount="1"></value> <!-- Dummy 05 Ignition On -->
ID167 - Does NOT work
ID182 - Does work
ID97 - Does work
Maybe ID167 is labeled wrong? @realdashdev ?
Bit more testing,
I’ve also got a similar problem with mapping the headlight switch, I created a page in the dash to see the values, and added some notes. to get Parking Lights and Low Beam i’m using the following XML;
<value targetId="96" startbit="56" bitcount="2" conversion="V & 3" ></value> <!-- Dummy 04 for Lights -->
<value targetId="155" startbit="56" bitcount="1"></value> <!-- Parking Lights -->
<value targetId="156" startbit="57" bitcount="1" units="bit"></value> <!-- Low Beam -->
I have also included the dummy 4 so you can see the value is working as expected, but the single bit to ID155 and ID156 doesn’t seem to work either
Ignition
Dummy 2 - is based on enum, swaps the value 6 to a 1 if ign is on
<value targetId="94" startbit="19" bitcount="3" conversion="V & 6" enum="6:1,#:0"></value>
LIghts
@realdashdev - figured it out, I was trying all sorts of combinations, none appeared to be working, I restarted the application, full close and reload and the values started to populate!!!
Arggggghhh, turning it off and back on again fixed the issue! ![]()
Alright, for now I’d recommend that when you are actively working on the XML, clear all custom values before importing an updated XML. I will investigate why custom values do not update.