Retorno de mensagem ack

Oi pessoal, então estou com um problema no retorno da mensagem de ack após receber o pacote na placa de ID 0, a conexão está certa e o pacote também, porém quando eu preciso retornar do ID 0 para a placa que enviou o pacote, ele não envia, é propria configuração da ID 0 ou algo do tipo?
Obrigado

Não há restrição no envio de pacotes a partir do ID 0 para qualquer ID diferente de 0.

Poderia postar um exemplo de pacote de retorno de ACK?

Está usando a interface de comandos ou a transparente?

Opa, eu to usando a de comandos,

segue ai um exemplo

image

O endereçamento está correto. 0x02 e 0x00 = ID 2;
O comando, neste caso deve ser um “comando de aplicação” e seu valor deve ser inferior a 128 (1 a 127 ou 0x01 a 0x7F). No seu exemplo … está sendo usado o valor 0x80 ( 128 decimal) . Neste caso o rádio vai tentar “tratar o pacote” ao invés de transmitir.
Tente usar outro valor no byte de comando.

Opa, deu certo com o comando 6 - de ACK mesmo

Muito obrigado

Agora eu to com um problema de leitura da mensagem kkk, eu vejo que ele recebe a mensagem de ack mas ele não deixa eu ler ela.

Realmente com o comando 0x06 … a mensagem não foi entregue na serial do escravo. Com comandos acima de 0x0B a mensagem é entregue normalmente. o comando 0x28 envia para a serial usart transparente.

Que estranho, quando eu uso os comandos maiores que 0x0B, ele nem chega a enviar

Teria como testar com outros valores de comando?
use a aba mensagem desta versão de teste do software.
http://download.radioenge.com.br/iot/SW_LoRaMESH_6R12.zip

2 Curtidas

Eae, utilizei o software e funcionou bem certinho, ai analisando com a mensagem que a minha aplicação envia, eu percebi que o crc não é o mesmo, assim, eu utilizo pelo python a função que vocês disponibilizaram no manual, nela há duas variáveis que eu não sei o valor, que são elas a semente_crc que eu utilizei o valor 0xC181 e a polinomio_crc16 que eu utilizei o valor 0xA001, assim eu queria saber se esses valores estão certos, ou se os valores de crc variam de aplicação para aplicação.

Os valores estão corretos e a função que está no manual também. Percebi que no python… ao chamar a função para calcular o CRC tem que passar o tamanho em bytes sem considerar os dois bytes do CRC. Se passar um valor maior - mesmo que os bytes a mais estejam com 0 - o retorno é diferente.

1 Curtida

Opa, valeu cara, funcionou certinho agora