Domande frequenti su Proteus (FAQ)

Di seguito potete trovare alcune domande che ci vengono spesso poste su Proteus; se volete sottoporci questioni che non sono contemplate in questa lista, potete scrivere a: szp@zanella-hifi.com.

Risposte

D: Quali sono i vantaggi nell'usare Proteus rispetto ad altri linguaggi esistenti?
R: Un programma Proteus è compatto: le centinaia di funzioni predefinite ad alto livello consentono di ottenere grandi risultati con pochissimo codice. Essendo un linguaggio interpretato, è possibile apportare modifiche al volo direttamente dal cliente. Volendo proteggere il proprio lavoro, si possono crittografare e firmare i propri programmi, portandosi dietro un sistema di sviluppo che sta su un floppy disk. Un qualsiasi programma può girare anche come servizio, senza alcuna modifica. La potenza di Proteus nella gestione di file testo e nell'elaborazione di stringhe è semplicemente ineguagliata: nessun altro linguaggio offre la sua versatilità. Le funzioni per emulazione di tastiera permettono di collegare centinaia di apparecchi personalizzando completamente il flusso dei dati in ingresso. Programmi con interfaccia a carattere, da far girare attraverso un telnet server, si possono scrivere in pochi minuti e senza sforzo; gli applicativi così realizzati sono a 32 bit, quindi veloci ed efficienti, e permettono l'accesso a tutte le risorse della macchina, incluse sorgenti dati ODBC, porte seriali, socket, risorse di rete, pipe, ecc.

D: Quanto tempo richiede l'apprendimento di Proteus?
R: Il sistema di sviluppo comprende decine di esempi, che permettono di apprendere molto rapidamente quali sono le soluzioni ai più comuni problemi che si incontrano nella scrittura di programmi in Proteus. Molti linguaggi di programmazione sono forniti con pochi frammenti di codice, che mostrano sostanzialmente solo la sintassi delle loro funzioni: Proteus Center va oltre, integrando un deposito per i propri applicativi, una base dati di esempi ed un manuale ricchissimo di informazioni consultabile istantaneamente. Tipicamente, avendo esperienza di programmazione, in un paio d'ore si possono realizzare i primi applicativi in Proteus.

D: Perchè creare un servizio invece di un normale programma?
R: I sistemi operativi Windows NT, 2000, XP e 2003 offrono la possibilità di installare dei servizi. Un servizio è un applicativo che viene avviato non appena il sistema operativo si carica; esso prescinde, quindi, dal fatto che un operatore acceda al sistema mediante nome utente e password. Installando uno script Proteus come servizio si ha pertanto la possibilità di acquisire e memorizzare dati, gestire print server ed altro senza il bisogno di dare l'accesso al PC ad un operatore. In ambito industriale ciò si traduce in una maggiore sicurezza, in quanto gli operatori non possono (anche solo inavvertitamente) manomettere il sistema operativo, installare applicativi non autorizzati o creare problemi al normale svolgimento delle operazioni. Anche se un PC viene utilizzato interattivamente, avere le funzioni fondamentali spostate in un servizio rende impossibile ad un utente privo di diritti amministrativi la possibilità di fermare il programma. NOTA: sistemi operativi recenti (Windows Vista, 7, 8) non permettono di fare emulazione di tastiera da un servizio; in questo caso, utilizzare Proteus come applicazione.

D: Che vantaggi offre l'impiego di Proteus al posto di un apparecchio hardware per l'emulazione di tastiera?
R: Gli emulatori di tastiera hardware sono, generalmente, complessi da configurare e richiedono l'utilizzo di cavi ad Y per collegare contemporaneamente una tastiera tradizionale; sui PC portatili talvolta è necessario aggiungere un apparecchio che simuli la presenza di una tastiera esterna per permetterne il corretto funzionamento, andando ad aumentare l'ingombro dell'apparecchio. I dati che l'emulatore riceve di solito non possono essere elaborati e quindi sono ritrasmessi così come sono; talvolta, alcuni caratteri terminatori particolari (come combinazioni di tasti speciali) non possono essere emulate. Proteus, invece, permette di simulare qualsiasi carattere; non solo, è in grado di spezzare ed elaborare le informazioni, aggiungere data e ora, inserire preamboli, postamboli e ritardi come necessario, affiancare ai dati ricevuti ulteriori informazioni statiche oppure dinamiche (cercate, ad esempio, in un database); le informazioni ricevute possono essere ordinate prima dell'invio, le quantità accorpate, i dati non rilevanti eliminati, ecc. Proteus può inviare i dati dopo aver ricevuto completamente la trasmissione, in quanto non ha limitazioni sul buffer in ingresso: in questo modo si evitano trasmissioni di dati parziali dovuti all'accidentale prelievo prematuro del terminale. Ancora: Proteus può selezionare la finestra alla quale inviare i dati, evitando che i tasti emulati vadano a finire in un'applicazione inavvertitamente portata in primo piano. Proteus può anche salvare contemporaneamente i dati ricevuti in un file di testo oppure in un database, per controllo o per sicurezza. In Proteus è facile costruire nuovi protocolli e quindi sostituire gli apparecchi collegati con quelli di altri produttori, oppure adattare il flusso dei dati ad un preciso formato previsto. Anche apparecchi che normalmente non hanno la possibilità di essere messi in emulazione di tastiera (es. dispositivi in rete, seriali, USB, Bluetooth...) possono essere facilmente integrati con Proteus. Infine, si tenga presente che qualsiasi componente hardware aggiunto è un componente in più che si può rompere; l'utilizzo di Proteus permette quindi di avere una preoccupazione in meno.

D: Che cos'è un programma con interfaccia a carattere? Perchè potrei averne bisogno?
R: La maggior parte dei programmi che girano oggi sui sistemi operativi Windows sono software grafici, con pulsanti, caselle di testo e menu. Su altri sistemi operativi, come Unix e AS/400, è invece ancora comune vedere applicativi a carattere, simili a quelli che è possibile far girare in un prompt di Ms-Dos. Gli applicativi a carattere non permettono, di norma, l'uso del mouse e non mostrano simboli grafici a video, ma solo caratteri alfanumerici e, talvolta, qualche carattere semigrafico per disegnare delle cornici. Questo tipo di applicativi è molto leggero, in quanto impegna meno risorse di calcolo per gestire l'interfaccia. Uno dei motivi per i quali si potrebbe voler realizzare un applicativo di questo genere è per far avviare il programma attraverso un Telnet Server. Telnet è un protocollo della famiglia TCP/IP attraverso il quale si possono far girare diverse emulazioni di terminale: es. VT100, VT220, ANSI, 5250, 3270, ecc. Collegando un client Telnet ad un Telnet Server, si possono lanciare applicazioni ed interagire con esse, come se l'applicativo girasse sul client. Ciò è molto utile, ad esempio, se si vuole dotare gli operatori di un'azienda di terminali portatili: quasi tutti i terminali in radiofrequenza posseggono, infatti, un client Telnet; installando un Telnet Server in ambiente Windows e scrivendo programmi con Proteus è possibile realizzare un sistema multi-utente con poco sforzo, accedendo nel contempo a tutta la potenza delle risorse rese disponibili da Windows.

D: Come è protetto Proteus?
R: Proteus può essere protetto in diversi modi: chiave hardware da collegare ad una porta USB; chiave software. Normalmente la protezione software viene offerta ai clienti esteri; questa chiave viene generata a partire dal hardware ID del computer sul quale dovrà essere installato il software. La chiave hardware permette, inoltre, di proteggere e firmare i propri programmi.

D: I programmi che realizzo in Proteus sono liberamente leggibili e modificabili. Come posso tutelare la mia proprietà intellettuale? Come posso impedire ad un mio cliente di utilizzare lo stesso programma su altri PC, oppure di distribuirlo a terzi?
R: Proteus integra un efficace e flessibile sistema di protezione, con il quale tutti questi problemi sono superati. Nel pacchetto viene fornita un'utility che cifra con chiavi casuali il sorgente ed aggiunge una firma digitale basata sul codice della chiave di protezione di Proteus (che è diverso per ogni chiave), permettendo quindi di distribuire un programma firmato e protetto. Con sole tre linee di programma si può impedire la redistribuzione del proprio software, legandolo alla chiave hardware di Proteus utilizzata dal cliente per far girare l'applicativo.

D: E' possibile realizzare applicativi in Proteus che non richiedano la chiave di protezione?
R: No, non è possibile: quando si vende un proprio programma sviluppato in Proteus è necessario far acquistare al cliente una licenza di Proteus. Sono previsti, comunque, sconti sul listino se uno sviluppatore acquista un numero significativo di licenze per la rivendita.

D: Esiste una versione "runtime" di Proteus, che costi meno, per eseguire solo applicativi compilati? E una versione "developer" o "educational" a prezzo agevolato?
R: No, Proteus è disponibile in un'unica versione; sono previsti sconti solo per l'acquisto contestuale di un numero significativo di licenze. Uno sviluppatore, restando entro i tre minuti di tempo di esecuzione, può comunque scrivere e testare i propri programmi con la versione demo di Proteus.

D: In quali lingue è disponibile Proteus?
R: Attualmente, solo inglese ed italiano. Manuale, esempi e messaggi di Proteus sono completamente tradotti in queste due lingue.

D: Proteus è molto potente, ma come faccio se avessi bisogno di aggiungere nuove funzioni?
R: Uno sviluppatore può scrivere nuove funzioni in Proteus, ma può anche collegare funzioni esterne, scritte in Visual C++ e realizzate in forma di DLL. Nel pacchetto è fornito un esempio di DLL che può essere espanso ad integrare nuove funzioni personalizzate.

D: Che problemi posso avere nell'installazione di Proteus come servizio?
R: Qualora all'avvio di Proteus come servizio si verifichi l'errore 1067 o altri errori, verificare le seguenti circostanze e le corrispondenti azioni correttive:

C:\Documents and Settings\All Users\Dati applicationi\SZP\PCenter\Service

sarà presente un file Protsvc1.reg con un contenuto simile al seguente:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\SZP\Proteus]
"Script1"="C:\\Documents and Settings\\All Users\\Dati applicationi\\SZP\\PCenter\\Repository\\script.prt"

Importare semplicemente questo file REG e avviare il servizio

Start -> Pannello di Controllo -> Strumenti di Amministrazione -> Servizi -> Proteus Service 1

(doppio click o selezionare Proprietà); nella scheda Connessione inserire un Account con privilegi amministrativi, che abbia accesso alla cartella dove si trova lo script PRT ed il servizio Proteus1.exe (normalmente in C:\Programmi\ProteusCenter\Service\)

D: Alcuni caratteri sono introdotti in modo inesatto in emulazione di tastiera; come posso correggerli?
R: nel caso di utilizzo dell'emulazione di tastiera attraverso client Citrix, si potrebbe rendere necessaria la traduzione di determinati caratteri utilizzando la modalità estesa (Alt + 3 cifre), in quanto Citrix mappa incorrettamente alcuni tasti. Se si segue lo schema utilizzato negli esempi di emulazione di tastiera forniti con il pacchetto, è sufficiente modificare opportunamente la funzione KTRANS aggiungendo opportune eccezioni per i caratteri mappati in modo errato:

FUNCTION KTrans(s)

l = STRLEN(s)
r = ""
FOR x = 1 TO l
  c = SUBSTR(s, x, 1)
  SWITCH c STREQ
  ON " "
    r = r "{ALT DOWN}{NUMPAD0}{NUMPAD3}{NUMPAD2}{ALT UP}"
  ON "-"
    r = r "{ALT DOWN}{NUMPAD0}{NUMPAD4}{NUMPAD5}{ALT UP}"
  ON "~"
    r = r "{ALT DOWN}{NUMPAD1}{NUMPAD2}{NUMPAD6}{ALT UP}"
  ON "{"
    r = r "{ALT DOWN}{NUMPAD1}{NUMPAD2}{NUMPAD3}{ALT UP}"
  ON "}"
    r = r "{ALT DOWN}{NUMPAD1}{NUMPAD2}{NUMPAD5}{ALT UP}"
  ON "+", "^", "%", "(", ")", "[", "]"
    r = r "{" c "}"
  OTHER
    r = r c
OFF
NEXT
RETURN r

Inizio pagina