Vergeet het hele byte concept bij Tesla, ze werken met (meestal) 64 bits blobs samengesteld uit (dan) 8 bytes.
Let ook op endianness, dus de bytes komen in de 'verkeerde' volgorde binnen via de CANbus.
Okay het begint me iets duidelijker te worden.
Je zegt dus dat de 8 bytes gewoon reeksen zijn van 64 bits en dat ze zowel van links als van rechts kunnen beginnen
Moet ik dan de hex-waardes van de bytes eerst in binary omrekenen en dan met die bit offset aan de slag?
Het gekke van dat edian wat je noemt, ik snif niet rechtstreeks de CAN he, ik doe via OBD2 een ATMA request op de ATSP0 (auto), ik vraag me af of mijn OBD2 ELM327 stack het misschien al omdraait, want mijn 318 (datum/tijd) komt er zo uit:
318 13 0B 00 0C 16 3B 1D B3
318 13 0B 07 0C 16 3B 03 A0
318 13 0B 13 0C 16 3B 19 C2
318 13 0B 15 0C 16 3B 13 BE
318 13 0B 18 0C 16 3B 1D CB
318 13 0B 1B 0C 16 3B 13 C4
Onderste regel van hex naar decimaal:
byte 1 jaar: 13 -> 19
byte 2 maand: 0B -> 11
byte 3 second: 1B -> 27
byte 4 uur: 0C -> 12 (zal UTC zijn, het was tussen 13u50 - 13u56
byte 5 dag: 16 -> 22
Dus in dit geval lijkt dat helemaal niet endian/achterstevoren en klopt dit gewoon 'native'???
Maar ik zou toch nog even je hulp willen vragen om even 1 rijtje uit te leggen.
Mijn 261-reeks (12 volt accu shizzle):
CAN ID source device period (ms) Bytes Data 1 Data 2 Data 3 Data 4
0x261 94 8 12v Batt Voltage V u12 SB 0 scale 0.005444 12v Batt Temp C s16 SB 16 scale 0.01 12v Batt AmpHours AH u14 SB 32 scale 0.01 12v Batt Current A s16 SB 48 scale 0.005
261 FE 19 06 05 09 40 12 00 <DATA ERROR
261 FD 19 06 05 09 40 39 00 <DATA ERROR
261 F8 19 05 05 09 40 FC FF <DATA ERROR
261 FC 19 05 05 09 40 38 00 <DATA ERROR
261 FD 19 05 05 09 40 39 00 <DATA ERROR
261 F8 19 05 05 09 40 13 00 <DATA ERROR
261 F8 19 05 05 09 40 EA FF <DATA ERROR
261 F8 19 05 05 09 40 E8 FF <DATA ERROR
261 F9 19 05 05 09 40 FC FF <DATA ERROR
261 F9 19 07 05 09 40 11 00 <DATA ERROR
(dat data error, is dat nog een puntje van aandacht???
Wat ik wil hebben is om te beginnen even de eerste waarde:
12v Batt Voltage V u12 SB 0 scale 0.005444
Als we weer uitgaan van onderste log regel
12v Batt Voltage V u12 SB 0 scale 0.005444
Unsigned 12 bits getal, startbit 0
F9 decimaal 249, binary 11111001 (dat zijn 8 bits), moet ik dan nog 3 bits uit de 2e byte halen (19 hex, 11001, 25 dec) ?
Maar hoe dan precies?
Als je een voorbeeldje zou willen geven van de ALLE 4 deze 12 volt-accu waardes (voltage, temp, amphours en current) uit de screenshot (met data uit mijn log) en hoe je eraan komt? Want daar zitten zowel signed als unsigned getallen in (van 12, 16 en 16 bits).
Alvast super bedankt voor je tijd