K DLL knihovně pro Profilab Expert 4.0 pro zprovoznění převodníků USB2CAN a USB2CAN Triple jsme se rozhodli přidat další 2 bonusové funkce. Jedná se o taktéž o DLL knihvny, tentokrát určené pro vkládání dat do CAN zprávy a opačně pro dekódování dat z CAN zprávy. V případě kdy potřebujeme vkládat 8 bitová,16 bitová a další data, která jsou násobkem 8 bitů a jsou zarovnány s bajty zprávy, je situace jednoduchá. Například pokud z přijaté zprávy potřebujeme dekódovat 16 bitovou hodnotu, postačuj dát hornimu bajtu GAIN s hodnotou 256 a tento výsledek sečíst s hodnotou dolního bajtu. Nicméně jsou situace, kdy data mohou mít délku například 18 bitů a navíc dolní bity nejsou zarovnány s datovými bajty zprávy - v příkladu níže začínají 6 bitem prvního bajtu. Pak je dekódování komplikovanější, je třeba použít operace shift, maskování bitů a situace je nepřehledná - schéma složité. Proto jsme připravili dvě DLL které toto snadno řeší. Jedná se o knihovnu profilab_store_dll.dll pro vložení dat do CAN zprávy a druhou knihovnu profilab_extract_dll.dll která funguje opačně, tedy data z CAN zprávy dekóduje do příslušných signálů.
Jak je patrné z obrázku, DLL knihovna určená pro vyplnění datových bajtů zprávy, která se odesílá na CAN bus dovoluje vkládat až 16 signálů. Výstupem bloku pak jsou hodnoty 8 datových bajtů. DLL knihovna s opačnou funkcí pak ze zprávy přijaté z CAN sběrnice dovoluje dekódovat až 16 signálů dat. Příklad obsahuje pole pro zadání hodnot a displeje pro zobrazení hodnot jak u přijaté zprávy po dekódování hodnot tak i pro kontrolu na datových bajtech odesílané i přijaté zprávy. Dále pak je použito tlačítko pro odeslání zprávy, stavová indikace detekce převodníku USB2CAn a čítač přijatých zpráv.
Nastavení signálů je v obou případech stejné, tedy pro každý signál se konfigurují tyto parametry: měřítko (násobitel), offset od 0, zda se jedná znaménková datový typ a formát little nebo big endian. Samozřejmě je třeba povolit zpracování každého signálu zvlášť.
Příklad na prvním obrázku pak obsahuje funkci kdy na levé straně se provádí vkládání dat ze signálů do CAN zprávy. Na pravé straně pak z přijaté zprávy se signály dekódují. Pokud se obě DLL pro enkódování i dekódování nastaví stejně a na stejnou zprávu, data se odesílají na port CAN 1, čtou z CANu 2 a porty 1 a 2 se na převodníku USB2CAN Triple propojí, data zadaná do vstupních signálů se zakódují do CAN zprávy. Tato zpráva se odešle na CAN 1 a zachytí zpět na CANu 2 (pokud obě sběrnice mají nastavenu stejnou rychlost). Protože předpis kódování signálů je stejný pro obě knihovny, je na výstupu vidět opět stejná hodnota signálu jako na vstupu.
Z dalšího obrázku je zřejmé že plugin pro USB2CAN je nastaven tak, aby přijatá zpráva měla stejné ID jako odesílaná, liší se nastavením portu.
Poslední obrázek pak ukazuje vygenerovanou zkušební aplikaci.