Ae galera,
Os dias que passaram foram extremamente hardcore, but today I give the=20
inspiration again, and I decided que as fun=E7=F5es do modem tem que sair.
Rec=E9m saidas do forno, aqui v=E3o elas:
int openport(char *port)
utilizada pelas outras rotinas;
abre a porta indicada por port (p/ex.: "/dev/ttyS1");
retorna o fd da porta aberta, ou -1 em erro;
int modem_speak(char *port, char *buffer, char *at, int atl)
{ /* ("/dev/ttySx", char *buffer_resposta, "ATI\r", 4) */
envia para a porta 'port' o comando AT 'at', o qual tem um=20
tamanho 'atl' bytes, e recebe a resposta do comando em 'buffer'
retorna: 0 =3D sucesso, -1 =3D erro;
int modem_ati(char *port, char **buff_resp) {
envia para a porta 'port' os comandos ATI (de "ATI0\r" a "ATI7\r")
e recebe as repostas em 'buff_resp';
retorna sempre 0 (por enquanto);
int modem_seek(int fd)
procura por um modem no descritor de arquivo fd;
para procura, =E9 enviado o comando "AT\r" para o modem, para o qual
se espera uma resposta "OK", caso exista modem;
fd =E9 obtido previamente via openport();
Observa=E7=E3o: modem_speak() e modem_ati() n=E3o foram ainda testadas, e=
st=E1 tudo
compilando 0 erros apenas.
para compilar: gcc -Wall -o modem modem.c
Por ai d=E1 pra ter uma id=E9ia da coisa Andr=E9/Alex?
A id=E9ia =E9 fazer fun=E7=F5es gen=E9ricas para envio de qualquer strin=
g,
e a partir dai construir as fun=E7=F5es especificas (envia ATZ, ATIx, ..=
.)
Em anexo, segue modem.c
Vou prosseguir conforme seja poss=EDvel, e qualquer novidade vou postando.
Qualquer sugest=E3o d=FAvida critica etc e tal mandem.
Sei que j=E1 andei prometendo bastante coisa, me empolguei mas n=E3o=20
consegui cumprir, o plano inicial era que todas essas rotinas j=E1=20
estivessem prontas, mas infelizmente hoje ainda n=E3o...
t=E9+
Marcelo Beckmann
"Nenhum caminho =E9 longo demais quando um amigo nos acompanha"
|