From: Marcelo B. <md...@ma...> - 2000-12-16 02:53:23
|
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" |