Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2493 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Estou usando o modem da DARUMA, e só consigo receber as mensagens SMS quando faço, pelo menos, um envio de mensagem. Acontece o mesmo problema na Demo da ACBRSMS.

Se envio um SMS previamente, toda leitura funciona, até o momento que o modem precisar ser desligado. Daí a leitura não funciona mais, até eu mandar outra mensagem de envio.

Pesquisando no fórum, só vi um relato semelhante uma vez, mas sem resposta.

Postado

RESOLVIDO:

O que faltava era mandar um comando para setar o modem em Text Modem SMS, isso era feito na função de envio de mensagens, mas não estava presente na de leitura.

Segue abaixo a função ListaMensagens para ser atualizada no arquivo ACBrSMSClass.pas:

procedure TACBrSMSClass.ListarMensagens(const AFiltro: TACBrSMSFiltro;
  const APath: String);
var
  cmd: String;
  Retorno: String;
  I: Integer;
begin
  // ESSA ERA A PARTE QUE FALTAVA
  // definir o modo de envio ***************************************************
  Cmd := 'AT+CMGF=1';
  Self.EnviarComando(Cmd);
  if not Self.ATResult then
    raise EACBrSMSException.Create(FALHA_INICIALIZACAO + sLineBreak + fpUltimaResposta);
  // FIM DA PARTE QUE FALTAVA

  case AFiltro of
    fltTudo:     cmd := 'AT+CMGL="ALL"';
    fltLidas:    cmd := 'AT+CMGL="REC READ"';
    fltNaoLidas: cmd := 'AT+CMGL="REC UNREAD"';
  end;
  Self.EnviarComando(cmd);
  if Self.ATResult then
  begin
    Retorno := EmptyStr;
    for I := 0 to Length(fpUltimaResposta) - 1 do
    begin
      if not(fpUltimaResposta[I] in [#0, #5, #$18, #$C]) then
        Retorno := Retorno + fpUltimaResposta[I];
    end;
    fpUltimaResposta := Trim(Retorno);
    WriteToTXT(AnsiString(APath), AnsiString(fpUltimaResposta), False, True);
  end;
end;

 

  • 5 meses depois ...
Postado
Em 21/08/2017 at 14:16, neliodv disse:

RESOLVIDO:

O que faltava era mandar um comando para setar o modem em Text Modem SMS, isso era feito na função de envio de mensagens, mas não estava presente na de leitura.

Segue abaixo a função ListaMensagens para ser atualizada no arquivo ACBrSMSClass.pas:


procedure TACBrSMSClass.ListarMensagens(const AFiltro: TACBrSMSFiltro;
  const APath: String);
var
  cmd: String;
  Retorno: String;
  I: Integer;
begin
  // ESSA ERA A PARTE QUE FALTAVA
  // definir o modo de envio ***************************************************
  Cmd := 'AT+CMGF=1';
  Self.EnviarComando(Cmd);
  if not Self.ATResult then
    raise EACBrSMSException.Create(FALHA_INICIALIZACAO + sLineBreak + fpUltimaResposta);
  // FIM DA PARTE QUE FALTAVA

  case AFiltro of
    fltTudo:     cmd := 'AT+CMGL="ALL"';
    fltLidas:    cmd := 'AT+CMGL="REC READ"';
    fltNaoLidas: cmd := 'AT+CMGL="REC UNREAD"';
  end;
  Self.EnviarComando(cmd);
  if Self.ATResult then
  begin
    Retorno := EmptyStr;
    for I := 0 to Length(fpUltimaResposta) - 1 do
    begin
      if not(fpUltimaResposta[I] in [#0, #5, #$18, #$C]) then
        Retorno := Retorno + fpUltimaResposta[I];
    end;
    fpUltimaResposta := Trim(Retorno);
    WriteToTXT(AnsiString(APath), AnsiString(fpUltimaResposta), False, True);
  end;
end;

 

Boa tarde Nélio.

Tentei ler uma reposta mas sem sucesso. Estou utilizando um modem DLink, operadora VIVO. Pelo programa do modem consigo ver a resposta. E você teve êxito?

Grato,

Cláudio

  • Este tópico foi criado há 2493 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.