Tento díl zahájíme popisem editace EYE souboru v případech, kdy dekódování nezávisí jen na vlastním identifikátoru CAN zprávy, ale i na obsahu datových bajtů.
Uveďme si 2 případy, kdy tato situace může nastat:
- chceme nástroj použít i pro sledování SDO zpráv u protokolu CANopen a potřebujeme dekódovat data dle indexu a subindexu.
- chceme sledovat multipexované zprávy, tedy takové zprávy, kde některý bajt nebo jen skupina bitů multiplexuje význam dalších bajtů zprávy. Tento způsob je podporován i ve formátu DBC.
V prvním případě můžeme použít volbu kontroly hodnoty datových bajtů v editoru EYE, vybereme bajty indexu a subindexu (CANopen, SDO) a nastavíme příslušnou hodnotu, která se bude testovat. Pokud bude mít zpráva správný identifikátor a tyto vybrané datové bajty budou mít správnou hodnotu, provede se dekódování hodnoty.
V druhém případě je možné nastavit hodnotu multiplexer. Ten je univerzálně nastavitelný jak do umístění prvního bitu multiplexeru, tak i do jeho délky. Multiplexer je tedy také vlastně hodnotou, avšak fixního typu unsigned a bez měřítka a offsetu. Pokud je přijata zpráva z CAN sběrnice se správným identifikátorem a je u veličiny definované v EYE souboru povolen multiplexer a tato přijatá zpráva obsahuje multiplexer správné hodnoty, je provedeno dekódování i vlastní veličiny. Využití může najít například u multipaketového přenosu, kdy například část prvního datového bajtu obsahuje pořadové číslo paketu.
Oba způsoby jdou navíc i kombinovat…. V prvním případě SDO zprávy by bylo možné také použít multiplexeru, jen by měl délku 24 bitů (index a subindex) nebo dokonce 32 bitů pokud do něj zahrneme i command byte.
V předchozím dílu tohoto dílu seriálu jsme si prakticky ukázali jak dle dokumentace vytvořit soubor EYE, který nám dovolí snadno vizualizovat data čtená z CAN sběrnice. Tento díl v dalším textu naváže na předchozí, avšak nebude se věnovat příjmu dat, ale opačné situaci a tedy generování dat na CAN sběrnici. Podíváme se na nástroj Data generátor. Ten je určen pro generování dat na CAN sběrnici. Jeho výhodou na rozdíl od většiny ostatních nástrojů pro generování dat v programu PP2CAN je to, že dovoluje generovat více zpráv s různými identifikátory a každá zpráva může obsahovat libovolný počet veličin různých typů, jejichž hodnotu je možné měnit. Taktéž veličiny můžeme například zadávat v jednotkách SI, jelikož se na převod použije nastavení ofsetu a měřítka z EYE souboru.
Hned na začátku je třeba zmínit, jak jsou data tímto nástrojem generována. Nástroj obsahuje volbu periody generování dat. Tu je možné nastavit od 10ms do 1s. V případě, že některá data je třeba generovat s menší rychlostí – větší periodou, je možné nastavit násobek této nejmenší periody. Zjednodušeně řečeno, pokud má nejčastěji generovaná zpráva periodu 10ms a periody ostatních generovaných zpráv jsou celistvým násobkem této hodnoty, je třeba použít periodu 10ms a u jednotlivých veličin tento násobek nastavit na správnou hodnotu. Tento násobek se nastavuje v editoru EYE souborů viz obrázek.
V případě že dvě veličiny obsažené v jedné zprávě mají nastaven rozdílný násobek, je toto indikováno varovným hlášením a následně dojde k otevření okna kde se zobrazí seznam veličin kterých se tato chyba týká.
Nástroj obsahuje i tlačítko One shot. To provede vygenerování všech dat na CAN jednorázově. Protože veličiny definované v EYE souboru nemusí obsahovat definice dat tak, aby vyplnily všechny datové bajty generovaných zpráv, je otázka jak tyto zbylé bajty nastavit. Generátor obsahuje volbu, kdy před vkládáním vlastních dat do CAN zprávy během jejího generování se datové bajty nejprve inicializují jednou z hodnot 0x00/0xFF/0xAA/0x55. Například u protokolu SAE J1939 je zvykem nastavit nevyužité bity na hodnotu 1, v tomto případě se pak hodí vybrat volbu 0xFF. Všechny datové bajty generované CAN zprávy se pak v tomto případě nejdříve nastaví na s hodnoty 0xFF, tedy samé jedničky, následně se provede vložení samotných dat na nastavené hodnoty. Bity, které nejsou přepsány daty veličin pak zůstanou nastaveny na hodnotu 1.