mDot Device Class C work flow
- This topic has 13 replies, 6 voices, and was last updated 7 years, 3 months ago by Mark Makarychev.
-
AuthorPosts
-
November 11, 2016 at 9:05 am #15433SerkanParticipant
We are using mDot and Conduit products.
mDot has firmaware version 2.0.
We set device class C with commandAT+DC=C
Question 1. We need to send packet from Conduit to all mDot end point products. (not to one EUI) All devices in that network. Can we do it?
Question 2. We able to receive packets from Conduit when we send a packet from end point. I read that Device Class A works like that. But we want to change it to device class C, and we want to send commands to all devices. do we need to AT+PING or AT+SEND fixed intervals to AT+RECV? Or can we just use AT+RECV to check any packets received?
Best regards
November 11, 2016 at 9:14 am #15435Jason ReissKeymasterMulticast is not explicitly supported.
The packet will be received by all Class C devices. But it will be filtered by the network address.
AT+SEND is only needed for Class A device to receive.
In Class C AT+RECV will show the last received packet.
However there is not a notification of packet received with the AT Firmware. The AT+DLC can be monitored to see the Frame Counter of the last packet.A custom firmware using the library can register an event class to handle packets when they are received. It can also receive packets that have been filtered out by the network address, however they will still be encrypted.
November 11, 2016 at 9:26 am #15436SerkanParticipantHi Jason,
Awesome, same network, all of our devices can receive packets that we sent from server.
We can check downlink frame counter with
AT+DLC
. It’s OK for our situation. We don’t need any events or triggers.Q1: We are using, Conduit AEP, Node-Red. Devices in admin panel shows Device Class A, but we changed it to device C in mDot, do we need to register again that devices?
Q2: In Node-Red, Lora Out Node could not send a payload with a function node. In function node we return new { Payload : “test data” } format. But not sent. If we connect Lora in to Lora Out, when we AT+SEND we can get Echo of that message. I need to create proper new MSG format. How can i do it?
Thank you for fast response.
November 11, 2016 at 9:37 am #15437Jason ReissKeymasterIf you direct the output of the lora-in node to a debug node and configure the debug node to show the complete object you will see a correctly formatted packet that is sent as an echo.
Only the eui and data/payload are required for downlink.
A class C device needs to be configured on the network server independently. There is currently not a message the device can send to signal that it is Class C.
November 12, 2016 at 12:40 am #15448SerkanParticipantThank you.
Class C problem solved.
But you said that “if we send msg without EUI, all devices in same network will receive that message.”
So, in new msg format i need EUI and Payload . What should i set EUI to send all devices. iş there a format like 00:00:00 or do i need to leave it empty?
{ EUI : "", Payload : "test" }
and when i debug complete msg object there are lots of fields. Should i use that fields? Channel number, band, timestamp etc.
i am only interested in Payload and not to giving EUI filtering.Best regards
November 14, 2016 at 7:11 am #15453Jason ReissKeymasterI would be interested to see where you are quoting from. That behavior is not supported. A msg will always need an eui to identify the destination.
Multicast is not explicitly supported.
The packet will be received by all Class C devices. But it will be filtered by the network address.
For multicast to work all devices would need to share a network address and set of session key to verify and decrypt the payload.
The mechanism to share the address and keys does not exist.November 29, 2016 at 9:58 am #15695PascalParticipantHi
We are using, Conduit AEP, Node-Red. Devices in admin panel shows Device Class A, but we changed it to device C in mDot, do we need to register again that devices?
Could you please explain where you have an “admin panel” to see the devices ?
Is it in the conduit web page or in the node-red (I cannot find it)
Thanks
RegardsJanuary 11, 2017 at 4:43 am #16268Mark MakarychevParticipantPascal, I believe he is talking about the page that is located on the conduit web page (Status & Logs -> Statistics -> LoRa [tab]).
I found this topic while searching for an explanation as to why in Class C I’m only getting packages after TX, and I also found that on the LoRa server all the devices are marked as Class A. After reading this became a bit disappointed:
There is currently not a message the device can send to signal that it is Class C.
Is this going to be added sometime in the near future? Because changing 100+ mDots from Class A to Class C by hand on the LoRa server sounds like a dreadful task…
- This reply was modified 7 years, 10 months ago by Mark Makarychev.
May 18, 2017 at 7:31 am #19153Momo SmithParticipantHi guys, i follow your topic and i hope you can help me.
I try to configure a node MTDOT868 in Class C and a multitech Conduit.With the conduit, i don’t have a problem. I’m sure to send a message with a payload and a correct EUI.
However, for the mtdot868, i have join my reseau and i have configure node in class C.
Now, i try to understanding why i don’t receive a message in my node.
I use a console (putty) for read information. I can see configuration information but no data sended by a conduit.First question :
Why in the class_c_exemple.cpp, there is a fonction send ? Why send a message by a node before to see a message from the conduit.Second question :
Is there a complet code in class c who working ? and where i find it ?Thanks in advance
May 18, 2017 at 12:40 pm #19175Mark MakarychevParticipantMomo, for class C to work, you need to also tell the gateway(*) that node ‘X’ is a class C device. In the class_c_example.cpp there is a send function to send data to the gateway, but this does not mean that the node receives data only after sending. If you initialized the mDot as class C, it will be continuously listening for packages from the gateway – not just after sending (as a class A device would).
(*) Now: how to set up a node as class C on the gateway:
1. Connect to the gateway whichever way is easier for you. I usually just connect through the microUSB port on the back and connect to the gateway through putty (COM device).
2. Type:lora-query -n
to list all the connected nodes. Find your class C node in the list and remember what number it is (00000000X).
3. Then typelora-query –u 00000000X class C
to set node X as a class C device. When both the node is initialized as Class C and the gateway knows that this node is Class C, you should be able to receive packets from the gateway right away.
4. Type/etc/init.d/lora-network-server restart
to restart the gateway and save the new configuration.- This reply was modified 7 years, 6 months ago by Mark Makarychev.
May 19, 2017 at 2:59 am #19214Momo SmithParticipantHi Mark,
I have configure my server today.
My program working now. Thank you.May 19, 2017 at 9:10 am #19223Momo SmithParticipantHello friends,
Now, my node is in class C. I can see each data in a console. I would like to retreive data for send it with a UART connexion. I read a differents functions in file mDot.h. There is just one function to receive named recv(). In comment, it’s note “send() must be called before recv()”
So, my question is :
What is the good fonction i need to use for receive each datas in real time without use send() before ?Thank
May 19, 2017 at 2:12 pm #19228Mike FioreBlockedMomo,
You should use the event framework to print your RX data on the debug port. See mDotEvent.h in the Dot Library.
Cheers,
MikeAugust 24, 2017 at 2:28 pm #20772Mark MakarychevParticipantHello,
Has this been added yet?There is currently not a message the device can send to signal that it is Class C.
If not, in what version is it expected/planned to be added?
-
AuthorPosts
- You must be logged in to reply to this topic.