Pluginy pro SW PP2CAN
Od verze 2.020 diagnostického SW PP2CAN mají uživatelé možnost napsat si vlastní pluginy pro tento software. K vytvoření základního pluginu není navíc třeba mít k dispozici X2CAN API, postačuje pouze nějaké vývojové prostředí, které dovoluje vytvořit knihovnu DLL. Pluginy jsou ve formě knihoven DLL, které obsahujé příslušný plugin. Pluginem se stává knihovna DLL, která je umístěna ve stejném adresáři jako diagnostický SW PP2CAN a implementuje alespoň částečně tyto funkce:
typedef void (*TMessage)(
enum CAN_SPEED
extern "C" {
// Od verze 2.020 __declspec(dllexport) bool PPP_IsOpen(void); // Od verze 2.025 nahrazuje PPP_IsOK
// Od verze 2.025 __declspec(dllexport) void PPP_Destroy(void);
// Funkce pro implementaci práce s CAN adaptérem třetích stran __declspec(dllexport) bool PPP_Init(CAN_SPEED speed); __declspec(dllexport) bool PPP_IsInitialized(void); } // extern "C" |
Uživatel tedy vytvoří DLL knihovnu, kde implementuje vlastni plugin, který může vytvářet vlastni okna, číst zdroje dat nebo data někam zapisovat a podobně. K inicializaci pluginu, příjem dat z CANu a pod implementuje dle potřeby funkce zmíněné výše. SW PP2CAN při svém spouštění najde všechna DLL v adresáři, odkud je spouštěn a zjistí zda DLL exportují uvedené funkce. Pokud některé DLL obsahuje tyto funkce, je DLL načteno jako plugin a tento plugin je zobrazen v menu SW PP2CAN.
Funkci PPP_Create volá diagnostický SW PP2CAN, pokud má být plugin vytvořen/spuštěn kliknutím na položku s názvem pluginu v menu Plugins v SW PP2CAN.. Jejím parametrem je ukazatel na funkci, pomocí které lze z pluginu odesílat zprávy.
Nadefinujeme si tedy například globální ukazatel na funkci typu TMessage (uvedeno výše) takto:
TMessage PPP_SendMesssage;
a tento ukazatel inicializujeme hodnotou parametru SendMessage funkce PPP_Create.
Pro odeslání CAN zprávy z pluginu pak voláme například:
unsigned char data[8] = {1,2,3,4,5,6,7,8};
PPP_SendMesssage(11,2222,8,false,true,data);
Funkce PPP_IsOK musí vracet true, pokud je plugin aktivní. Od verze 2.025 nahrazeno funkcí PPP_IsOpen.
PPP_GetName vrací ukazatel na textový řetězec, který se použije k pojmenování pluginu v menu Plugins diagnostického SW PP2CAN.
Funkce PPP_Processing je volána při příchodu CANovské zprávy a předává tak novou zprávu pluginu který si ji zpracuje.
PPP_Destroy je volána při ukončení programu PP2CAN. Slouží k legálnímu externímu ukončení pluginu.
Od verze 2.025 je podpora pluginu rozšířena o možnost použití CAN interface dalších firem.
PPP_Init - inicializace CAN adaptéru
PPP_Close - ukončení práce s CAN adaptérem
PPP_IsInitialized - vrací true pokud je adaptér v operačním režimu
PPP_Send - odeslání CAN zprávy
PPP_Receive - vyčtení přijaté zprávy
PPP_WaitForMessage - čekání na příchod zprávy
PPP_TxBufferLength - délka bufferu zpráv, které čekají na odeslání
PPP_RxBufferLength - délka bufferu zpráv, které čekají na zpracování
Práce s CAN interface realizovaná pomocí pluginu vyžaduje, aby byl plugin spuštěn a v Options byla nastavena volba typu CAN adaptéru na Third party interface.
V současné době je možno používat současně až 5 různých pluginů. Zdrojový kód jednoduchého ukázkového pluginu pro MSVS 6 je možno stáhnout zde.
Volně ke stažení nabízíme tyto pluginy:
xMeter | ||
dMeter | ||
gMeter |