Newsgroup: it.comp.programmare.win32
Titolo: Pilotare una batteria di monitor

Salve a tutti, come sviluppereste un applicazioncina che deve pilotare
un certo numero di monitor (5-20) con dati diversi?
In soldoni devo visualizzare poche informazioni rinfrescate
frequentemente e diverse per ogni monitor; oggi e' risolto con un PC per
ogni monitor che banalizza il problema, ma crea una pila di HW...
buona giornata a tutti

 wrote in
news:anu688$hdotc$
1...@ID-65620.news.dfncis.de
: 

Windows supporta (ad esclusione di 95 e NT) la possibilità di avere 
sistemi multimonitor.
Questa modalità di funzionamento è però vincolata alle schede video che 
vai ad utilizzare (non tutte le schede, anzi pochine, supportano questa 
modalità).
Esistono poi schede che supportano più monitor contemporaneamente 
utilizzando una risoluzione "virtuale" molto elevata (in pratica 
funzionano in modalità "vidiwall") suddivisa su una griglia di monitor.
Mi pare che matrox (ma non vorrei sbagliare produttore) produca schede 
che arrivano a 16 monitor (in una griglia 4x4).
In questo modo ti risparmi i diversi PC ma devi affidarti a particolari 
configurazioni hardware (almeno fino a che il supporto multi-head non 
sarà diffuso tra le schede "commerciali") e a cavi video parecchio 
ingombranti (non è un problema se i video non sono troppo distanti tra 
loro, diventa un problema se devi tirare cavi VGA di qualche decina di 
metri, sempre che funzionino...).
L'applicazione deve semplicemente considerare che porzione del desktop 
(o dei desktop) virtuali viene visualizzata su ogni monitor e andare a 
rinfrescare i dati di conseguenza.
Un'alternativa all'utilizzo di PC completi può essere rappresentata da 
sistemi a basso costo (windows CE?) con client in grado di visualizzare 
le informazioni che venivano visualizzate dai PC (Windows CE, ad 
esempio, è in grado di fare da client per terminal server, ha un 
browser compatibile con IE 5.5 e una versione quasi completa di Windows 
Media Player). In questo modo puoi ridurre i costi dei "PC" (puoi fare 
a meno della memoria di massa e ridurre di molto RAM e costi 
dell'hardware) e collegare tra loro i vari video "intelligenti" tramite 
una normale LAN (che può essere anche wireless se non hai bisogno di 
velocità di trasferimento eccessive).
La struttura dell'applicazione cambia di molto a seconda del tipo di 
client che intendi utilizzare.
-- 
Valter Minute
vmi...@inwind.it
 (the reply address of this message is invalid)

 modalità).
Quando lavoravo come assemblatore di PC, c'era capitata una commessa (da una
nota casa di materiale fotografico e non - K***K n.d.a.) di 36 PC da
equipaggiare con 2 schede video (MATROX MGA Mill.) e 4 PC da equipaggiare
con 4 delle stesse schede video. Tutte montavano Windows NT 4.0, e servivano
per gestire un impianto radiologico per un ospedale del centro-nord.
Martino.

 con 4 delle stesse schede video.
vi ringrazio per le risposte e ci meditero' a mente fredda stasera.
ho trovato anche 
http://www.appian.com
di base vorrei una cosa semplice, l'idea Windoes CE mi suona molto...

 pianger d'amore:

Io risolverei con un sistema ibrido, ma probabilmente a basso costo. Le
schede che supportano piu' di 2 monitor sono poco diffuse, e quindi costose,
allora potresti dimezzare il numero di PC, e montare su ognuno una scheda
dual-head.
Non pensare solo agli estremi (un PC per ogni monitor o un PC solo per tutti
i monitor), ci sono innumerevoli possibilita' intermedie.
Se poi vuoi pilotare tutto da un'unica postazione, il mio suggerimento e' di
usare Linux con X-Window e un "multiplexer" tipo X2X. In pratica: puoi avere
tutti i PC che vuoi, ma li manovri tutti da un'unica tastiera e mouse.

 
In effetti avevo sentito dire che in questa "nicchia" matrox è uno 
dei produttori più affidabili.
Sul mio PC domestico, invece, due ATI (RAGE 128 e Mach64) non 
riescono a convivere sotto win2000 (mentre più o meno lo fanno sotto 
linux).


 tutti i PC che vuoi, ma li manovri tutti da un'unica tastiera e mouse.
tieni presente che io non devono manovrarli in termini di topo e
tastiera, anzi! un programma autonomo (batch) visualizza informazioni
differenti per ogni monitor.
Cosa intendi in dettaglio per multiplexer?
Open source potrebbe avere vantaggi, ma come programmatore VB (e poco
ASP) mi troverei in braghe di tela :(
come diavolo programmi in linux web, java?
(ci spostiamo per la parte linux?)

 multihead, è un refuso della mia memoria :)
In effetti mi sembra che tu ricordi bene. Probabilmente sotto a NT non
c'e` supporto nativo (API di sistema e interfaccia standard) ma e`
possibile supportare la cosa in modo "custom" con driver e librerie
appositi.
--
Lorenzo

 librerie appositi.
perchè rimanere nel dubbio?
"EnumDisplayMonitors
[...]
Requirements 
  Windows NT/2000/XP: Included in Windows 2000 and later.
[...]"
-- 
 < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
     Don't stand, REACT!      version 0.0.20. C, C++ and ASM developers
                              and beta testers are welcome!

 informazioni differenti per ogni monitor.
Se le informazioni possono essere rappresentate in HTML (o in DHTML) 
puoi considerare l'idea di attaccare al monitor un client minimale 
che abbia un browser web e un minimo di interfaccia (magari pure 
quella via web) per configurarlo da remoto.
A questo punto le informazioni verranno fornite dal server che potrà 
pure variare (sia per tipologia di informazioni visualizzate che per 
sistema operativo/configurazione hardware e software) se il tuo 
sistema multimonitor deve essere utilizzato per scopi diversi.
Il client lo puoi sviluppare con un hardware abbastanza economico 
rispetto ai costi di un PC, utilizzando windows CE oppure una delle 
versioni di linux "embedded".


"Lorenzo Lutti" <lorenz...@DOHtiscalinet.it> ha scritto nel messaggio
news:AgFo9.5275$RO.1...@twister1.libero.it...

Adesso che mi ci fate pensare, credo che abbiate ragione. La nota casa di
rullini, aveva un suo software specifico da far girare su quelle macchine,
ed è probabile che avessero sviluppato qualche driver per poter gestire più
schede video.
Martino.

 rispetto ai costi di un PC, utilizzando windows CE
avete esperienze, link, info su tali hw?
e ringrazio

 
Puoi partire da
www.microsoft.com/embedded
 
e
msdn.microsoft.com/embedded
se programmi in C utilizzando le API non ci vuole molto a passare su
CE. Se utilizzi già C# o VB.net puoi dare un'occhiata alle Smart
Device Extensions (sono in beta, ma dovrebbero essere rilasciate
entro la fine dell'anno). Se invece utilizzi VB, delphi, le librerie
borland con C++Builder o altri ambienti di sviluppo non disponibili
in versione CE o disponibili in versioni parecchio diverse da quelle
per win32 (è il caso di Embedded Visual Basic, abbandonato nella
versione .net di windows CE) diventa un po' più complicato migrare
le applicazioni. 


 VB.net puoi dare un'occhiata alle Smart Device Extensions
e' un'applicazione piccola e tutto ex-novo; potrei stare tutto su IIS e
.NET (anche se e' "pesante" per le 4 cavolata che devo fare)
chi produce hw con CE?

 
Prova a cercare qui:
http://www.mswep.com/
esistono diverse schede che integrano tutte le funzioni che ti possono 
servire (uscita video VGA, rete oltre, ovviamente, al processore, RAM e 
flash memory o disk on chip).



Ho letto anche gli altri post e penso di poter aggiungere
qualcosa alla discussione.
Se non erro sono ancora reperibili schede video per bus PCI
(principalmente basate su chipset S3) quindi visto che sono
autoconfiguranti ne puoi piazzare parecchie su un PC
(diciamo 4..5 su una scheda madre in formato ATX) e puoi sfruttare
anche l'AGP (es: con una dual-head) quindi con un PC ed usando
schede video "normali" (e quelle basate su chipset S3 di solito
sono pure ultra-economiche) puoi gestire da 5 a 7 display.
L'unico vero punto dolente sono i driver, devono supportare
la presenza di piu schede video dello stesso tipo o eventualmente
essere in grado di coesistere con schede video di tipo diverso.
Prima di un acquisto massiccio e' quindi consigliabile
convincere il fornitore a darti almeno 3 schede in conto visione
e provare se vanno bene.
Inoltre su ogni PC ti servira' un alimentatore "potente"
e con una buona ventilazione del case
(con tutte quelle schede se si gioca al risparmio proprio li
   si finisce male).
Comunque se il costo non e' un problema punta dritto sulle
Matrox e scordati quanto detto sopra.
Riguardo al resto del software devi preoccuparti solo del PC
che fa da master, se usi html (basta anche quello "liscio"
ed usi un meta tag per forzare il refresh della pagina
ad intervalli regolari) eventuali altri PC slave per pilotare
i display ausiliari non gestibili direttamente dal master
devono solo avere un S.O. capace di gestire display multipli
ed un programma browser (di cui aprire una finestra a pieno
schermo per ogni display, puntata su una pagina diversa
del web server sul PC master e senza barra dei menu o altro
che interferisca con la visualizzazione).
IMHO per i PC slave Linux e' *perfetto*, specialmente
per quel che si risparmia in modo lecito in termini
di licenze del S.O., ma se non ti importa del mancato
guadagno anche Windows va bene.
In fin dei conti devi solo installare il S.O.
(il browser e' di serie in entrambi), configurare la rete
e piazzare in esecuzione automatica uno script che lancia
il browser sui vari display.
Per gli slave si puo giocare al risparmio per quel che
riguarda cpu e ram (in fin dei conti basta avere sufficiente
ram in modo che S.O.+browser non swappi di continuo
durante i refresh), anche in quel caso Linux avrebbe
un certo vantaggio se propriamente configurato ed
accoppiato ad un browser "leggero".
Sempre per quel che riguarda i PC slave un altra possibilita
da considerare sono le schede madri EPIA della VIA
(vengono vendute con inclusa una cpu C3), sono motherboard
tutto-in-uno con scheda di rete e scheda video integrata
sono ultra compatte (17cm x 17cm) ed hanno uno slot PCI
(su cui si puo piazzare una scheda video aggiuntiva), se trovi
schede multi-head su PCI potresti bilanciare il loro costo
risparmiando su scheda madre e cpu ed avresti pure
un uscita video aggiuntiva E un sistema molto compatto.
Se si tratta di una/due installazioni del genere
una-botta-e-via il discorso si chiude qui.
Se invece conti di trarne un prodotto vendibile in un
buon numero di installazioni, allora comincia a considerare
anche altre possibilita che ti permettano di ridurre
i costi a lungo termine (ma qui il discorso piu che sul
software si sposta ancora di piu sull'hardware).
L. Micheletto

 qualcosa alla discussione.
ti ringrazio molto dell'intervento, tutti i vs post sono in una
cartelletta per l'esame di dettaglio.
Devo dire d'essere un po' spaventato da i "casini" hw che potremmo dover
affrontare e mi piace sempre di piu' l'idea di un thin client (stile
nuovi T20/30 compaq).
Dal punto di vista SW invece sono ancora incerto se procedere con un
client/server "canonico" (e tenere solo la parte internet su web) oppure
buttare tutto su web server (tutto .net perche' no?)
grazie dell'aiuto a tutti