Měření z běžícího firmwaru
Hodnoty vzorkuje zařízení ve vlastním cyklu s časovými značkami s rozlišením 1 µs. QInsight je zobrazuje, loguje a přehrává — bez debug sondy a bez zastavování procesoru.
QFW SDK
Knihovna, která do firmwaru vašeho zařízení přidá protokol XCP. QInsight pak z běžícího firmwaru měří hodnoty s časovými značkami, kalibruje parametry a stimuluje signály — po Ethernetu nebo CAN, bez vlastního komunikačního protokolu.

Funkce
Hodnoty vzorkuje zařízení ve vlastním cyklu s časovými značkami s rozlišením 1 µs. QInsight je zobrazuje, loguje a přehrává — bez debug sondy a bez zastavování procesoru.
Parametry měníte z QInsight přímo v paměti jednotky. Signály z PC můžete do firmwaru plynule vnucovat (STIM) synchronně s cyklem vaší aplikace.
Engine implementuje ASAM MCD-1 XCP 1.4. Vlastní protokol ani parser nepíšete; knihovnu přilinkujete a napojíte na transport.
Struktura SDK
Binární engine, zdrojová glue vrstva a kompletní ukázkový projekt.
Statická knihovna s jedinou veřejnou hlavičkou. Nemá vlákna, sockety, heap ani blokující volání: dostává data z transportu, vrací data k odeslání a čas, zámky i logování dostane callbacky. Proto běží bare-metal i nad libovolným RTOS.
Referenční napojení enginu na konkrétní prostředí, dodávané jako zdrojový kód: FreeRTOS + lwIP pro Ethernet, superloop pro CAN (STM32H7 FDCAN). Upravíte si ho podle svého projektu.
Kompletní projekt pro NUCLEO-H723ZG (CubeMX/CMake), který se přeloží bez úprav: od inicializace po živé měření v QInsight.
Transporty
Balíček obsahuje engine ve dvou variantách; jeden image linkuje právě jednu z nich. Liší se jen vstup pro příjem.
| XCP on TCP (Ethernet) | XCP on CAN | |
|---|---|---|
| Kdy | zařízení s Ethernetem, velké objemy dat | zařízení na sběrnici CAN, PC s adaptérem PEAK CAN |
| Rámce | až 1024 B na DAQ paket | klasický CAN, 8B rámce (CAN FD připravujeme) |
| Glue | FreeRTOS + lwIP, TCP server task | bare-metal superloop, STM32H7 FDCAN |
| Knihovna | libqfw_xcp_eth.a | libqfw_xcp_can.a |
Integrace
Inicializace s callbacky, vytvoření eventu a jeho trigger v cyklu vaší úlohy. Adresy proměnných se berou z map nebo ELF souboru; A2L není potřeba.
qfw_xcp_config_t cfg = QFW_XCP_CONFIG_DEFAULT;
cfg.project_name = "MyEcu";
cfg.epk = "V1.0.0";
cfg.transmit = my_transmit; // TCP stream or CAN frame
cfg.get_clock = my_clock_us; // monotonic time in us
cfg.crit_enter = my_lock;
cfg.crit_leave = my_unlock;
cfg.queue_mem = queue_memory; // static memory, no allocations
cfg.queue_mem_size = sizeof(queue_memory);
qfw_xcp_init(&cfg);
uint16_t ev10ms = qfw_xcp_create_event("task10ms", 10000);
// in the 10 ms task / timer:
qfw_xcp_trigger_event(ev10ms); // samples DAQ lists, applies STIMKompatibilita a požadavky
Vyzkoušení a licence
Balíček bez aktivačního klíče běží s plnou funkčností; engine se 30 minut po startu zařízení zastaví (do restartu). QInsight dostane srozumitelnou hlášku, ne mlčení.
QFW SDK nemá samostatnou cenu. K Commercial licenci QInsight patří aktivační klíč, který časové omezení odstraní; knihovna se pak sestaví pro vaši firmu.
Knihovnu smíte šířit jen jako součást firmwaru vlastního produktu. Podrobnosti v Licenční smlouvě QENEX.
Balíček QFW SDK (evaluation i licencovaný build) si stáhnete po přihlášení na account.qenex.net — stejně jako instalátor QInsight a licenci.
Další protokoly
Stejný model — binární engine, zdrojová glue vrstva, ukázkový projekt — je připravený pro další protokoly, kterými QInsight komunikuje.