Persistence of a "join"

Home Forums General Persistence of a "join"

Tagged: , ,

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #12453
    Michael
    Participant

    If an mDot remote successfully “Joins” to a gateway, how durable is that session? Specifically…

    If the session is created with “ACK” required but the mDot stops getting the ACKs, will the mDot do something different: does it retry the packet (how may times) or perhaps tear down the sessions and try to rejoin, or..?

    If the gateway stops hearing from an mDot node after some period, does something different happen (session drops, etc.)?

    #12455
    Jason Reiss
    Keymaster

    See AT+ACK, AT+LCT and AT+LCC
    http://www.multitech.com/manuals/s000643_1_1.pdf

    The network server has a lease time setting to configure the amount of time to keep a session without activity.

    #12468
    Michael
    Participant

    OK, thanks.

    Is there some example code illustrating a recommended way for a remote to maintain network connectivity in light of the above?

    #12469
    Jason Reiss
    Keymaster

    Page 93 of the linked manual above shows an AT Command example.

    An application would setLinkCheckThreshold and setLinkCheckCount then monitor the getNetworkJoinStatus between sends to detect when the network may be down.

    The AT Command firmware code on mbed provides an example too.
    In CommandTerminal.cpp
    bool CommandTerminal::autoJoinCheck()

    #12482
    Michael
    Participant

    Thanks Jason, that was quite informative.

    However, going forward I’m not using AT commands – I’m using the mbed library (libmDot.h) So, let me see if I understand this…

    If I join in automatic mode and ACKs “On” with`setJoinMode(mDot::AUTO_OTA);
    setAck( 1 );`
    and make no other changes, I’d expect the mDot to automatically attempt to “re-Join” after one missed ACK?

    And I can change the number of missed ACKs before the mDot attempts a re-Join with: setLinkCheckCount()

    Is that all correct?
    Is there another setting I should be concerned with for this arrangement – that is AUTO, and ACKs ON?

    Thanks.
    -Mike

    • This reply was modified 7 years, 11 months ago by Michael.
    • This reply was modified 7 years, 11 months ago by Michael.
    • This reply was modified 7 years, 11 months ago by Michael.
    #12838
    Michael
    Participant

    Bump

    #12839
    Jason Reiss
    Keymaster
            /** Set network link check count to perform automatic link checks every count packets
             * only applicable if ACKs are disabled
             * @param count must be between 0 - 255
             * @returns MDOT_OK if success
             */
            int32_t setLinkCheckCount(const uint8_t& count);
    
            /** Get network link check count
             * @returns count (0 - 255)
             */
            uint8_t getLinkCheckCount();
    
            /** Set network link check threshold, number of link check failures or missed acks to tolerate
             * before considering network connection lost
             * @pararm count must be between 0 - 255
             * @returns MDOT_OK if success
             */
            int32_t setLinkCheckThreshold(const uint8_t& count);
    #12849
    Michael
    Participant

    Excellent! I was unable to track down those functions on my own, sadly.
    (I guess the operative word for searching is “link” and not “join” 😉 )

    Thanks!

    #13021
    Michael
    Participant

    I’d like some clarification here…

    int32_t setLinkCheckCount(const uint8_t& count);

    How does the application know the Link Check has been performed and failed? Will the response to the “send” fail just like it would fail in other cases or is this a special case?

    #13022
    Jason Reiss
    Keymaster

    An application would monitor the join status.

    getNetworkJoinStatus()

    This will be set to false if the threshold is met.

Viewing 10 posts - 1 through 10 (of 10 total)
  • You must be logged in to reply to this topic.