Così come per la porta seriale nella quale risiede un modem, anche il modem stesso richiede di essere configurato. Il modem si configura inviandogli dei comandi AT (o simili) sulla stessa linea seriale usata per inviare dati. Essi sono brevi e criptici comandi ASCII, tutte le stringhe di comando sono prefissate dalle lettere AT. Ad esempio: ATZ&K3. Qui ci sono due comandi: Z e &K3. Sfortunatamente ci sono molte diverse variazioni nel gruppo di comandi AT, così che quello che funziona per un modem potrebbe non funzionare per un altro. Quindi non vi è garanzia che i comandi AT dati in questa sezione funzioneranno per tutti i modem. Altro punto è che per far sì che il modem reagisca alla stringa di comando AT, deve essere inviato un carattere di ritorno a capo alla fine della stringa.
Dette stringhe di comando vengono automaticamente inviate al modem dai programmi di comunicazione o sono inviate direttamente da voi. La maggior parte dei programmi di comunicazione forniscono una schermata nella quale potete digitare i comandi direttamente al vostro modem. Questo è comodo per impostare il modem com'è prima di spegnerlo senza dover ricordare ogni volta come lo si era impostato.
Se avete un manuale per il vostro modem potrete probabilmente dare una scorsa al gruppo di comandi AT ivi indicati. Altrimenti potrete cercate di trovarli su Internet. Potreste usare un motore di ricerca ed includere alcuni reali comandi nella stringa di ricerca per evitare di cercare siti che parlano semplicemente di questi comandi ma dei quali non offrono una lista. Potreste anche provare alcuni dei siti riportati nella sottosezione Siti Web
Gli esempi dati in questa sottosezione sono tratti dal gruppo di comandi AT Hayes. Tutte le stringhe di comando devono essere prefissate dalle due lettere AT (ad esempio: AT&C1&D3). Quando un modem viene acceso, si autoconfigura automaticamente con una delle configurazioni che ha salvate nella sua memoria non volatile. Se la configurazione è soddisfacente, non c'è altro da fare.
Se non risulta soddisfacente, si potrebbe sia alterare la configurazione memorizzata o configurare il modem ogniqualvolta venga usato inviandogli un stringa di comandi nota come "init string" (stringa di inizializzazione). Generalmente un programma di comunicazione fa questo. Quello che invia dipende da come avete configurato il programma di comunicazione o quale script avete scritto per esso se usate Kermit. Potete in genere modificare la init string che il vostro programma di comunicazione usa e cambiarla come vi pare. Talvolta il programma di comunicazione vi consente di selezionare il modello del vostro modem, quindi userà una init string che pensa sia la più adatta per quel modem.
La configurazione che il modem usa quando viene acceso per la prima volta potrebbe essere rappresentata da una init string. Potreste pensare a questa come una stringa di default (chiamata profilo). Se il vostro programma di comunicazione invia al modem un'altra stringa (l'init string), allora questa stringa modificherà la configurazione predefinita. Ad esempio se la init string contiene solo due comandi, allora solo queste due voci verranno cambiate. Comunque, alcuni comandi richiamano un profilo memorizzato all'interno del modem così che un singolo comando di questo tipo nella init string può di conseguenza cambiare tutta quanta la configurazione.
I modem moderni hanno alcuni profili diversi memorizzati tra i quali scegliere che si trovano nella memoria non-volatile (rimangono lì anche quando spegnete il modem). Nel mio modem ci sono due profili impostati dalla ditta costruttrice (0 ed 1, nessuno dei quali può essere cambiato) e due profili definiti dall'utente (0 ed 1) che l'utente può impostare e memorizzare. Il vostro modem potrebbe averne di più. Quale di questi profili definiti dall'utente venga usato all'accensione depende da un altro valore memorizzato nel profilo. Se viene impartito il comando &Y0 allora verrà usato il profilo 0 alla prossima accensione. Se invece troviamo un 1 invece che uno 0 allora il profilo 1 sarà usato all'accensione.
Ci sono anche comandi per richiamare (riusare) ciascuno dei 4 profili memorizzati. Uno potrebbe mettere un comando di questo tipo nella init string. Naturalmente se verrà richiamato lo stesso profilo così come è stato automaticamente caricato all'accensione, non cambia nulla a meno che il profilo attivo sia stato modificato dopo l'accensione. Visto che potrebbe essere stato modificato, è una buona idea usare una specie di init string anche se non fa null'altro che richiamare un profilo memorizzato.
Per richiamare un profilo salvato (usate 1 invece che 0 per il profilo 1):
Z0 recupera il profilo utente 0 e reimposta il modem (riappende, ecc.)
&F0 recupera il profilo impostato dalla ditta costruttrice 0
Una volta inviati i comandi al modem per configurarlo nel modo che volete (incluso
richiamare il profilo della casa costruttrice per poi modificarlo un poco), potreste
volere salvare questo come profilo definito dall'utente:
&W0 salva la configurazione corrente nel profilo utente
La maggior parte della gente non si preoccupa di salvare una buona configurazione nei propri modem ma, invece, inviano al modem una stringa più lunga ogni volta che il modem viene usato. Un altro metodo consiste nel riprisitinare la configurazione di default della casa costruttrice all'inizio della stringa di inizializzazione, quindi modificarla leggermente aggiungendo qualche altro comando alla fine della init string. Agendo in questo modo, non c'è pericolo di modificare il profilo definito dall'utente che viene caricato all'accensione
Si può anche scegliere una stringa di inizializzazione fornita da qualcun altro che sostenga che sia buona per il vostro modem ecc. Alcuni programmi di comunicazione hanno una libreria di stringhe di inizializzazione dalla quale scegliere. Il metodo più difficile (e quello che vi insegnerà di più riguardo ai modem) è studiare il manuale del modem e scrivere una stringa da soli. Potrete poi salvare questa configurazione all'interno del modem così che una stringa di inizializzazione non sarà necessaria. Una terza alternativa è iniziare con una stringa di inizializzazione che qualcun altro ha scritto, poi modificarla per adattarla alle vostre esigenze.
Ora se guardate le init string usate dai programmi di comunicazione potreste vedere simboli che non sono comandi modem validi. Questi simboli sono comandi al programma di comunicazione stesso (tipo ~ che significa effettuare una breve pausa) e non sono inviati al modem
Una prossima edizione di questo HOWTO potrebbe contenere anche qualcosa di più su questo ma il resto di questa sezione è per la maggior parte quello che si trova nel vecchio Serial-HOWTO. Tutte le stringhe devono iniziare con AT. Ecco alcuni codici AT Heyes che dovrebbero essere nella stringa (se non sono stati impostati usando le impostazioni predefinite del costruttore o da una configurazione salvata)
E1 eco comandi ON
Q0 riporta i codici di risposta
V1 verbose ON
S0=0 non rispondere mai (uugetty fa questo con l'opzione WAITFOR)
Ecco alcuni altri codici riguardanti il controllo delle linee DCD e DSR del modem:
&C1 DCD attivato solo dopo la connessione
&S0 DSR sempre attivato
Questi riguardano quello che fa il vostro modem quando inizia o finisce una comunicazione. Si potrebbe impostare anche quallo che fa DTR ma è più complicato.
Se il vostro modem non supporta un profilo salvato, lo potete impostare
attraverso una stringa INIT
in un file di configurazione (o simile).
Alcuni vecchi modem hanno degli interruttori DIP che variano le impostazioni
dei registri. Assicuratevi che siano impostati anch'essi correttamente.
Greg Hankins ha una libreria di impostazioni modem per diversi tipi. Se
volete inviargli la vostra configurazione di lavoro fatelo a:
mailto:greg@cc.gatech.edu. Potete recuperare queste
impostazioni a
ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs
.
Note: perché il suo USR Courier V.34 si reinizializzi correttamente dopo
che cade DTR, Greg Hankins ha dovuto impostare &D2
and S13=1
(questo imposta il bit 0 del registro S13). È confermato che la cosa vale
anche per gli USR Sportster V.34.
Nota: alcuni Supra trattano DCD in modo diverso rispetto agli altri modem.
Se state usando un Supra, provate ad impostare &C0
e not
&C1
. Dovrete anche impostare &D2
per gestire DTR
correttamente