Fala gente,
O trabalho está estressante então resolvi parar um pouco e colocar mais uma contribuição aqui para meus amigos tecnomaniacos.
Hoje vamos falar um pouco sobre qualidade de sinal de Modems GSM.
Todos sabemos que para ocorrer uma transmissão bem sucessida é necessário estar dentro de um HotSpot adequando para o mesmo. O módulo deve ser capaz de transmitir dados para ERB local com uma intensidade boa para que possa ter um troughput capaz de estabelecer uma conexão de dados consistente.
O módulo que apresento é o Siemens MC35i, já trabalho há algum tempo com eles e apesar de ser um módulo dual band, sem pilha tcp/ip, funciona muito bem para praticamente 90% das aplicações de Campo que eu necessitei até hoje.
Bom vamos lá.
O comando para se descobrir qual a Qualidade do Sinal é o AT+CSQ.
O resultado é um número de 0 a 31 ou 99 no primeiro campo. Este número corresponde a tabela abaixo:
0 -113 dBm or less
1 111 dBm
2 - 30 -109 to -53 dBm
31 -51 dBm or more
99 Unknown
O nível mais forte de sinal é -51dBm e o mais fraco é -113dBm... caso o retorno seja 99 é porque ele não conseguiu averiguar o nível de sinal.
Olha um exemplo C#... dá pra usar já...
========================== recorte aqui =========================
using System;
using System.Collections.Generic;
using System.Text;
namespace XXX {
public class ModemConfig {
// ------- Response Setters
//0 -113 dBm or less
//1 111 dBm
//2 - 30 -109 to -53 dBm
//31 -51 dBm or more
//99 Unknown
public void SetCSQ(string csq) {
string dbFactor = csq.Substring(0, csq.IndexOf(','));
dbFactor = dbFactor.Substring(csq.IndexOf(' '));
int dbiFactor = int.Parse(dbFactor);
if (dbiFactor == 0 || dbiFactor == 99) {
signalStrenght = 0;
antennaDbi = -113;
} else if (dbiFactor == 1) {
signalStrenght = 1;
antennaDbi = -111;
} else if (dbiFactor == 31) {
signalStrenght = 100;
antennaDbi = -51;
} else {
int fullDbiFactor = (56 * dbiFactor) / 28;
antennaDbi = -109 + fullDbiFactor;
signalStrenght = (fullDbiFactor * 100) / 56;
}
}
// ------- Variáveis interpretadas
private int signalStrenght;
private int antennaDbi;
public int SignalStrenght {
get { return signalStrenght; }
}
public int AntennaDbi {
get { return antennaDbi; }
}
}
}
========================== recorte aqui =========================
Se você quiser poderá fazer o download diretamente do arquivo...
http://rapidshare.com/files/122415261/ModemConfig.cs.html
Saber a qualidade do sinal é muito importante, pois assim pode-se configurar a sincronização de dados somente quando a condição mínima de qualidade for alcançada.
sábado, 14 de junho de 2008
Assinar:
Postar comentários (Atom)
conheço pouca gente que projeta com renesas mas acredito no potencial deste chip que tem muitas qualidades, adorei o artigo sobre gsm, continue não pare, precisamos que alguém começe para que outro se sintam mais ousados como você,muito obrigado pelo artigo !
ResponderExcluir