Per migliorare la scalabilità dei sistemi è stata realizzata una libreria unificata per tutti i sistemi, chi è abituato a programmare in ambiente LogicLab, ha una familiarità con il termine XTarget, il livello di XTarget indica l’evoluzione del sistema. Un programma sviluppato per un certo sistema con un certo XTarget è sicuramente eseguibile su tutti i sistemi con lo stesso livello, o con livello superiore. Questa impostazione costringeva ad aggiornare LogicLab ad ogni aggiornamento del firmware dei sistemi che prevedesse l’avanzamento di versione XTarget.
Per permettere a LogicLab di adattarsi automaticamente alle nuove versioni del firmware abbiamo realizzato XUnified che non è più seguito da un numero di versione perchè è utilizzabile su tutte le versioni firmware. La diversificazione con le varie versioni firmware dei sistemi è attuata dalla libreria eLLabXUnifiedxxLib dove xx indica il livello di oggetti supportati. La compatibilità tra il livello della libreria e la versione del firmware dei sistemi è riportata nella tabella Compatibilità con firmwares.
Con il passaggio ad XUnified sono state apportate modifiche ad alcuni oggetti (Vedi tabella Oggetti libreria modificati) e sono state riorganizzate le librerie eseguendo le modifiche per adattarle alla nuova architettura (Vedi tabella Versioni libreria).

Compatibilità con firmwares
Livello libreria
La libreria eLLabXUnified12Lib (Vers. 1.0.0) garantisce la compatibilità con XTarget 12.0, ha tutte le funzionalità dei sistemi attuali. Molte funzionalità della libreria sono embedded, cioè gestite dal sistema operativo del dispositivo, per questo quando si utilizza una libreria è importante verificare la versione del sistema operativo. Ecco una tabella riassuntiva, per ogni libreria è riportato il livello minimo di sistema operativo supportato, i livelli superiori supportano tutte le versioni di libreria di livello inferiore.
Modifiche nella libreria che risolvono BUGs o aggiungono funzionalità mantenendo compatibilità con il sistema operativo, non cambiano livello ma riporteranno versioni superiori alla 1.0.0. Se nella libreria vengono aggiunte funzionalità embedded che comportano una modifica del sistema operativo, viene cambiato il livello di XUnified, esempio eLLabXUnified13Lib.
Tipo di dispositivo | Libreria | Sistema operativo |
---|---|---|
Sistemi basati su ARM7 | eLLabXUnified12Lib | SFW184C000 |
Sistemi basati su Cortex M7 | eLLabXUnified12Lib | SFW198D000 |
Sistemi basati su Raspberry | eLLabXUnified12Lib | MDP154A230 |
Oggetti di libreria modificati
Tipo | Eliminato | Sostituito da | Decrizione | Nota |
---|---|---|---|---|
F | SysUDPSktSend | Non esiste funzione che la sostituisce, utilizzare SysUDPClient o SysUDPServer | 1 | |
F | SysUDPSktRcv | Non esiste funzione che la sostituisce, utilizzare SysUDPClient o SysUDPServer | 1 | |
F | SysSktListen | Non esiste funzione che la sostituisce, utilizzare SysUDPClient o SysUDPServer | 1 | |
F | SysGetIChars | SysFGetIChars | Get input available characters from file | 1 |
F | SysGetOSpace | SysFGetOSpace | Get output available space on file | 1 |
F | SysGetRxBSize | SysFGetIBfSize | Get file Rx input buffer size | 1 |
F | SysGetTxBSize | SysFGetOBfSize | Get file Tx output buffer size | 1 |
F | Sysfopen | SysFfopen | File open | 2 |
F | Sysfilelength | SysGetFileLen | Get file length | 2 |
F | Sysrename | SysFileRename | File rename | 2 |
F | Sysremove | SysFileRemove | File remove | 2 |
F | SysPCodeAccept | SysPCodeVerify | Accepts the protection code | 2 |
F | SysPhrInfos | SysGetPhrInfos | Get infos from peripheral modules | 2 |
F | SysVarsscanf | SysVsscanf | Extracts values from string | 2 |
F | SysVarfprintf | SysVfprintf | Variable print to file | 2 |
F | SysVarsnprintf | SysVsnprintf | Variable print to string | 2 |
F | SysLWVarsnprintf | SysCVsnprintf | Concatenate variable print to string | 2 |
F | SysSpyData | SysWrSpyData | Invia dati alla console di spionaggio | 2 |
FB | SysGetCrc | Non esiste FB che lo sostituisce, utilizzare la funzione SysGetCheck | 1 | |
FB | SysIPReach | SysPing | IP address is reachable | 2 |
FB | SysGetIpInfos | SysGetPeerInfos | Get peer infos | 2 |
FB | SysDirListing | SysGetFileInfos | Get file infos | 2 |
- (Nota 1) Eliminati oggetti obsoleti presenti per compatibilità con il passato.
- (Nota 2) Modificati oggetti con parametri STRING[] in parametri @STRING, per non avere costrizioni legate alla lunghezza dei parametri.

Migrazione progetto da XTarget ad XUnified
Per convertire un progetto XTarget in un progetto XUnified, occorre aprire il progetto con LogicLab, dal menù Project – Select target selezionare il dispositivo XUnified, in questo modo al progetto verrà collegata la libreria eLLabXUnifiedxxLib ed il progetto potrà essere ricompilato. Siccome nella libreria XUnified sono state apportate modifiche ad alcuni oggetti ricompilando il progetto si avranno degli errori. Per eliminarli occorre correggere gli errori manualmente modificando il codice sorgente, in questo modo si avrà un programma allineato alla nuova libreria.
Approfondimenti
- In questo topic sono riportate informazioni utili nella conversione di un progetto da XTarget12 ad XUnified.
Migrazione progetto da XUnified a XTarget
Per convertire un progetto XUnified in un progetto XTarget, occorre aprire il progetto con LogicLab, dal menù Project – Library manager rimuovere dal progetto la libreria eLLabXUnifiedxxLib ed inserire la libreria eLLabXTargetAdjLib. Dal menù Project – Select target selezionare il dispositivo XTarget, ora il progetto potrà essere ricompilato.
Tutti gli esempi del manuale sono realizzati secondo le specifiche XUnified quindi se si desidera utilizzarli in un programma XTarget occorre dal menù Project – Library manager inserire la libreria eLLabXTargetAdjLib.
Se non si vuole agire sul programma sorgente con modifiche basterà dal menù Project – Library manager inserire nel progetto la libreria eLLabXUnifiedAdjLib che contiene l’adattamento degli oggetti alla nuova libreria.