Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-01-2011, 13:06   #1
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
[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, 17: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, 19:52   #3
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
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, 10: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, 15: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, 06:55   #6
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
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, 10: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, 18: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, 12: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, 12: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, 13:42   #11
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
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, 14: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, 15:10   #13
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
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, 17:59   #14
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
qualche altra idea?
misterx è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
I social network hanno stancato gli ital...
Star Citizen supera i 900 milioni di dol...
Netflix ha eliminato la funzione Cast pe...
L'IA è una bolla e scoppier&agrav...
Un rapporto collega i data center di Ama...
Troppa concorrenza per Cherry (quella de...
Entro il 2035 la Cina vuole costruire de...
Tineco in super sconto: ultimo giorno di...
La Cina creerà una costellazione ...
I veicoli elettrici emettono radiazioni ...
Stai per acquistare una PS5? Attento al ...
iPhone 17 Pro Max finalmente disponibile...
Apple, Sony, Bose, Beats, Sennheiser, CM...
Arriva il Raspberry Pi 5 da 1 GB, ma por...
Draghi scuote l'Europa: 'rischio stagnaz...
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: 22:50.


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