Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla
DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla
DJI ha appena ufficializzato la serie Lito, la sua nuova gamma di droni entry-level destinata a chi si avvicina per la prima volta alla fotografia aerea. Al centro dell'annuncio ci sono due modelli ben distinti per fascia di prezzo e specifiche tecniche: DJI Lito 1 e DJI Lito X1. Entrambi si collocano sotto la soglia regolamentare dei 249 grammi, che permette di volare con requisiti burocratici più semplici rispetto ai droni più pesanti.
Sony World Photography Awards 2026: i premiati, anche italiani, il punto sulla fotografia di oggi
Sony World Photography Awards 2026: i premiati, anche italiani, il punto sulla fotografia di oggi
Siamo stati a Londra per la premiazione dei Sony World Photography Awards 2026, l'evento a tema fotografia più prestigioso. Fra sorprese e novità, ne approfittiamo per fare il punto sulla fotografia contemporanea, in cui la didascalia è sempre più necessaria a cogliere il senso della quasi totalità degli scatti.
Una settimana con Hyundai Ioniq 5 N-Line: diverte e convince
Una settimana con Hyundai Ioniq 5 N-Line: diverte e convince
L'elettrica di casa Hyundai propone una versione AWD con estetica derivata dalla famiglia N. L'abbiamo provata per diversi giorni, per scoprire tutti i dettagli e la vera autonomia in autostrada
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-01-2011, 12:06   #1
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
[C/C++] Creare una interfaccia ?

ciao,
ho un programmone fatto da un software house che non è più adattabile al nuovo hardware che stiamo per acquistare.

Per rendere compatibile il vecchio software col nuovo hardware, si dovrebbe intervenire pesantemente in esso e forte di questo problema, mi piacerebbe capire come si potrebbe ovviare in futuro a problemi di questo tipo scrivendo qualcosa di più attuale e più furbo.

Non ho esperienze in merito e quindi considero un pò questo 3d una sorta di ricerca per capire cosa fare e cosa usare di già pronto.

Mi basterebbe inventarmi una sorta di lunguaggio (interfaccia) col quale far comunicare il programma lato utente col programma lato hardware che cambia sempre?
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2011, 16:04   #2
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
in che senso non più adattabile? è compilato per un'altra architettura?

l'unica cosa che puoi fare, se il problema lo consente, è pilotarlo tramite un altro programma che redireziona l'I/O in modo da passargli dati e ricevere risposte

ovviamente se il programma produce dei file durante l'elaborazione si possono usare quelli per prelevare risultati parziali/definitivi ed importarli nel programma pilota
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2011, 18:52   #3
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
adattabile nel senso che:


livello programma utente
----------------------------------------
livello libreria del costruttore dell'hardware
----------------------------------------
livello hardware


il livello programma utente è una interfaccia modificabile a piacere e serve a mostrare graficamente lo stato dell'hardware sottostante. Al suo interno ci sono funzioni implementate nella libreria del costruttore.

Ora cambiando sia l'hardware che la libreria si è costretti a modificare in modo massiccio anche il livello utente.

Cercavo uno stratagemma per evitare di toccare in futuro il livello utente in modo che sia del tutto trasparente per l'utente finale il cambio dell'hardware.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2011, 09:59   #4
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
la vedo dura, essendoci una libreria del costruttore....se ci fosse stato un programma del costruttore allora si poteva eseguire il programma cli, leggerne i risultati dallo standard output e visualizzarli

potresti però crearlo tu un programma cli per ogni hardware....in questo modo dovresti comunque creare un nuovo programma per ogni nuovo hardware, ma almeno il programma utente resterebbe immodificato
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2011, 14:05   #5
cdere
Senior Member
 
L'Avatar di cdere
 
Iscritto dal: Feb 2001
Città: Foggia
Messaggi: 2519
Quote:
Originariamente inviato da misterx Guarda i messaggi
Mi basterebbe inventarmi una sorta di linguaggio (interfaccia) col quale far comunicare il programma lato utente col programma lato hardware che cambia sempre?
sì, una interfaccia il più possibile "sottile" da cambiare di volta in volta è l'unica, ti progetti un protocollo (una serie di comandi, o come dici tu, un linguaggio) e l'app che sta sopra non si accorge di nulla, tu ogni volta che ne hai bisogno sai di mettere le mani solo sull'interfaccia che è lo stretto indispensabile
__________________
mi sembra di essere tornato adolescente ai bei tempi.. che figata essere di nuovo su questo forum
cdere è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2011, 05:55   #6
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da cdere Guarda i messaggi
sì, una interfaccia il più possibile "sottile" da cambiare di volta in volta è l'unica, ti progetti un protocollo (una serie di comandi, o come dici tu, un linguaggio) e l'app che sta sopra non si accorge di nulla, tu ogni volta che ne hai bisogno sai di mettere le mani solo sull'interfaccia che è lo stretto indispensabile
ciao,
ho ad esempio funzioni nella libreria del costruttore del tipo:

- visualizza lo stato di un bit
- carica un programma
- cancella un programma
- setta tutti i bit di un indirizzo a zero etc...

Io dovrei implementare quasi tutte le funzioni presenti nella libreria del costruttore in una mia libreria giusto?

In definitiva avrei

programma utente con le sue interfacce che può non cambiare mai
----------------------------------------------------------------
mia libreria
----------------------------------------------------------------
libreria del costruttore
----------------------------------------------------------------
hardware
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2011, 09:24   #7
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
libreria o programma, l'importante è che ci sia un livello che astrae i dettagli della libreria del costruttore

l'unico problema è che tua libreria deve contemplare tutti i casi di librerie del costruttore possibili
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2011, 17:05   #8
cdere
Senior Member
 
L'Avatar di cdere
 
Iscritto dal: Feb 2001
Città: Foggia
Messaggi: 2519
Quote:
Originariamente inviato da misterx Guarda i messaggi
ciao,
ho ad esempio funzioni nella libreria del costruttore del tipo:

- visualizza lo stato di un bit
- carica un programma
- cancella un programma
- setta tutti i bit di un indirizzo a zero etc...

Io dovrei implementare quasi tutte le funzioni presenti nella libreria del costruttore in una mia libreria giusto?

In definitiva avrei

programma utente con le sue interfacce che può non cambiare mai
----------------------------------------------------------------
mia libreria
----------------------------------------------------------------
libreria del costruttore
----------------------------------------------------------------
hardware
yeah!

Quote:
Originariamente inviato da pabloski Guarda i messaggi
libreria o programma, l'importante è che ci sia un livello che astrae i dettagli della libreria del costruttore

l'unico problema è che tua libreria deve contemplare tutti i casi di librerie del costruttore possibili
no, la sua libreria contemplerà il caso di libreria che implementerà di volta in volta
__________________
mi sembra di essere tornato adolescente ai bei tempi.. che figata essere di nuovo su questo forum
cdere è offline   Rispondi citando il messaggio o parte di esso
Old 22-01-2011, 11:11   #9
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da cdere Guarda i messaggi

no, la sua libreria contemplerà il caso di libreria che implementerà di volta in volta
quindi una sua libreria per ogni libreria del costruttore
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 22-01-2011, 11:17   #10
cdere
Senior Member
 
L'Avatar di cdere
 
Iscritto dal: Feb 2001
Città: Foggia
Messaggi: 2519
__________________
mi sembra di essere tornato adolescente ai bei tempi.. che figata essere di nuovo su questo forum
cdere è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2011, 12:42   #11
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
stavo pensando anche ad inventrami un linguaggio molto elementare che verrà usato nell'interfaccia utente del livello più alto.

Avrò necessità di un parser ?

Se così fosse, il codice del parser che cercherà di capire quale funzione ha richiamato l'utente sarà semplicemente una lunga serie di case xyz: ......?
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2011, 13:46   #12
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da misterx Guarda i messaggi
stavo pensando anche ad inventrami un linguaggio molto elementare che verrà usato nell'interfaccia utente del livello più alto.

Avrò necessità di un parser ?

Se così fosse, il codice del parser che cercherà di capire quale funzione ha richiamato l'utente sarà semplicemente una lunga serie di case xyz: ......?

Lascia perdere nuovi linguaggi, non arriverai a niente.

Per quanto riguarda il tuo progetto la parte grafica deve gestire a basso livello l'hardware oppure deve fornire delle funzionalità logiche che bene o male astraggono dall'implementazione hardware sottostante?

Parli di "mostrare graficamente lo stato dell'hardware sottostante", questa operazione ha un equivalente logico a più alto livello che non "analizzare il bit-rate sul pin 9"?

Penso che gli harware facciano più o meno le stesse cose (forse di più nel nuovo) e sicuramente in modo differente, ma che possano essere raggruppate secondo funzionalità logiche di più alto livello.

Se si un normale applicativo strutturato a 3 livelli (o più) risolverebbe il tuo problema, la GUI mostra le funzionalità logiche, lo strato intermedio adatta la funzionalità logica a quanto richiesto dallo strato sottostante, la libreria dedicata alla gestione dell'hardware fa il resto. Cambiando fornitore (a parità di funzionalità "logiche" gestite) devi riadattare solo lo strato intermedio, eventualmente aggiungendo nuove funzionalità come moduli indipendenti se la libreria di basso livello lo consente.

Se invece il tuo software è una diretta visualizzazione della libreria hardware, probabilmente data la scarsa frequenza di aggiornamento dell'hardware può anche darsi che convenga più implementare un'interfaccia ad hoc tutte le volte, piuttosto che realizzare un software che in teoria può fare di tutto, che non verrà mai usato per come è stato pensato e che molto probabilmente non lo farà nemmeno bene nel momento in cui sarà richiesto.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2011, 14:10   #13
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Lascia perdere nuovi linguaggi, non arriverai a niente.

Per quanto riguarda il tuo progetto la parte grafica deve gestire a basso livello l'hardware oppure deve fornire delle funzionalità logiche che bene o male astraggono dall'implementazione hardware sottostante?

Parli di "mostrare graficamente lo stato dell'hardware sottostante", questa operazione ha un equivalente logico a più alto livello che non "analizzare il bit-rate sul pin 9"?

Penso che gli harware facciano più o meno le stesse cose (forse di più nel nuovo) e sicuramente in modo differente, ma che possano essere raggruppate secondo funzionalità logiche di più alto livello.

Se si un normale applicativo strutturato a 3 livelli (o più) risolverebbe il tuo problema, la GUI mostra le funzionalità logiche, lo strato intermedio adatta la funzionalità logica a quanto richiesto dallo strato sottostante, la libreria dedicata alla gestione dell'hardware fa il resto. Cambiando fornitore (a parità di funzionalità "logiche" gestite) devi riadattare solo lo strato intermedio, eventualmente aggiungendo nuove funzionalità come moduli indipendenti se la libreria di basso livello lo consente.

Se invece il tuo software è una diretta visualizzazione della libreria hardware, probabilmente data la scarsa frequenza di aggiornamento dell'hardware può anche darsi che convenga più implementare un'interfaccia ad hoc tutte le volte, piuttosto che realizzare un software che in teoria può fare di tutto, che non verrà mai usato per come è stato pensato e che molto probabilmente non lo farà nemmeno bene nel momento in cui sarà richiesto.

ciao,
non so se ho colto il tuo dubbio ma allo stato attuale tutto il codice è legato all'interfaccia e quindi se cambia l'hardware sottostante, cambia la libreria e tutti i parametri e sono tanti, che inserisce l'utente nell'interfaccia.

Dunque l'idea è di mantenere l'interfaccia invariata, idem per i parametri in modo da non confondere le idee agli utenti e rendere trasparente agli utenti dell'interfaccia il cambio di hardware sottostante.

In breve, se implementassi un linguaggio del tipo:
MostraStatobit(100)
SettaBit(115)
ResettaBi(10)
etc....

manterrei il livello 1 sempre invariato, al caso, magari con una qualche aggiunta di tanto in tanto ma non sconvolgere tutta l'interfaccia che è molto complessa, soprattutto da gestire.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2011, 16:59   #14
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
qualche altra idea?
misterx è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla DJI Lito 1 e Lito X1 recensione: i nuovi droni p...
Sony World Photography Awards 2026: i premiati, anche italiani, il punto sulla fotografia di oggi Sony World Photography Awards 2026: i premiati, ...
Una settimana con Hyundai Ioniq 5 N-Line: diverte e convince Una settimana con Hyundai Ioniq 5 N-Line: divert...
Recensione OPPO Find X9 Ultra: è lui il cameraphone definitivo Recensione OPPO Find X9 Ultra: è lui il c...
Ecovacs Deebot X12 OmniCyclone: lava grazie a FocusJet Ecovacs Deebot X12 OmniCyclone: lava grazie a Fo...
Mova P50 Pro Ultra o DREAME L40 Ultra AE...
GPU gaming Intel Arc al capolinea? Non s...
Stop agli update forzati su Windows 11: ...
GWM ad Auto China 2026: l'intelligenza n...
Final Fantasy XIV arriva su Switch 2 ad ...
Hyundai IONIQ V: ora il mercato cinese d...
Alien: Isolation 2 si mostra con un teas...
Amazfit Active 2 Premium 44mm scende a s...
Secondo indiscrezioni il debutto dei pro...
Due Smart TV Hisense 4K in offerta a 299...
Il gioco su Venom di Insomniac sarebbe a...
Google Pixel 10 Pro 256GB a 794€ in 3 co...
Battlefield pronto al debutto al cinema ...
Samsung Exynos 2700 promette un enorme s...
L'AI non sarà un problema per App...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:03.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v