Open pierrot10 opened 7 years ago
Morever, I am actually into a building and I thnk my node can not get a gateway. So there is no reason to have dislpayed TXCOMPLETE :o)
Hi,
Let clarify a little. First of all: Nodes are not connected to a gateway. Nodes send their messages and ANY gateway can pick these up. So their communication is different from for example WiFI tcpi/ip connections.
Therefore it will tell that messages have been sent even if noone would listen.
There are at least two ways to know that a gateway has received your message. First of all you can look at the gateway to see if it receives messages. My single channel gateway would log the messages in an easy format. Then you can register the nide with for example TTN and see the messages come in. Or your application can subscribe to MQTT and you see all incoming messages of that node. Lastly you can send your messages in confirmed way. Ig your nide istens to these confimations it will detect that message has received by some gateway and it has sent an ACK.
So your node-gateway communication is more complex yet allows for plenty of ways to monitor the communication.
MAARTEN
Dear Platenspeler,
Thank fror yourr reply. I have understannd exctely all of your writing. I would like my node to know if it message has been reveive or not. As the node can not "see" at the gateway, you first proposition is not what I am looking for. However, you wrote
Lastly you can send your messages in confirmed way. Ig your nide istens to these confimations it will detect that message has received by some gateway and it has sent an ACK.
What is "confirmed way"? How can I make it listing a confirmation?
In that code
void onEvent (ev_t ev) {
// debug_event(ev);
switch(ev) {
// scheduled data sent (optionally data received)
// note: this includes the receive window!
case EV_TXCOMPLETE:
// use this event to keep track of actual transmissions
Serial.print("EV_TXCOMPLETE, time: ");
dataSent = true;
Serial.println(millis() / 1000);
Serial.print(F("DEBUG 2 "));
Serial.println(LMIC.dataLen);
if(LMIC.dataLen) { // data received in rx slot after tx
// debug_buf(LMIC.frame+LMIC.dataBeg, LMIC.dataLen);
Serial.println("Data Received");
}
break;
default:
dataSent = false;
break;
}
}
this part
if(LMIC.dataLen) { // data received in rx slot after tx
// debug_buf(LMIC.frame+LMIC.dataBeg, LMIC.dataLen);
Serial.println("Data Received");
}
when a message is sent to the gateway, it never print "Data received" even if I see a record in my gateway. Data received, does it mean that the data has been received by the gateway? How can I debug LMIC.datalen.
It important for my to have an ACK confirmation in order to have an alarm when a message when not received by the gateway.
Many thank for you suggestion and help Have a nice day
Dear Platenspeler, By the way, can I ask you about (config.h)
What does bacon/ping support
Dear pierrot10, Did you find a solution to have an ACK confirmation?
Thanks a lot in advance
Hello,
I am using that library since a short time. I configured a gateway at home. Now I ledt my place but I still in the range of my gateway,but I suggest I am to far. But I am closer to another gateway.
I run my node. Here is the print:
That menas that my data has been sent but I saw nothing in my console. It work when I am in my flat.
Also, at startup, there is those function:
And I am particuéarely thinking about
LMIC_setSession (0x1, DevAddr, (uint8_t*)NwkSkey, (uint8_t*)AppSkey);
IS there a wayto make sure that my module is connected to a gateway and can transmit data? Why This is printed
Where nothing is sent/recorded to my TTN console
Many thank for your help and suggestion