x. They are written into InfluxDB exactly like real CAN channels, which is why they appear in the dashboard and in Data Explorer alongside battery data, and why they are worth knowing by name.
Counters described as per burst are counted within a single receive burst and start again on the next one. Counters described as cumulative run from the moment that connection opened.
Decoding xKartInfo And xEndpoint
Two of the internal signals are packed values rather than readings, so they need unpacking before they mean anything.xKartInfo carries what the kart is, in one number, as category << 12 | type << 4 | batterySpec:
Kart type, category and battery spec are validated as a set rather than independently, so in practice the type tells you the rest, and the category tells you how many battery nodes to expect:
This is also the source of the
Invalid combination of KartType, BatterySpec and Category validation error. The three fields are checked against a fixed list of permitted sets, so a kart with a plausible looking type and the wrong category will not load.xEndpoint encodes the connection’s address as a number. Each octet of the IP is padded to three digits and concatenated to make the integer part, and the port becomes the fractional part. So 172.25.160.1:1234 is written as 172025160001.1234, read back as octets 172, 025, 160, 001 and port 1234.
