Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. General Discussion
  3. How to stop receiving messages temporarily?

How to stop receiving messages temporarily?

Scheduled Pinned Locked Moved General Discussion
4 Posts 3 Posters 1.3k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • rzyliusR Offline
    rzyliusR Offline
    rzylius
    wrote on last edited by
    #1

    Is there a neat way to stop receiving messages temporarily in mysensors node? I have a node which must perform a routine of sequence of actions of roughly 5 seconds upon receiving a command. If another command comes when the routine is performed it produces unwanted side effects.

    So I am looking for a method or workaround, which would allow when command is received to stop listening to radio, after the routine is completed - restart listening again.

    Any advice?

    regards, rimantas

    B T 2 Replies Last reply
    0
    • rzyliusR rzylius

      Is there a neat way to stop receiving messages temporarily in mysensors node? I have a node which must perform a routine of sequence of actions of roughly 5 seconds upon receiving a command. If another command comes when the routine is performed it produces unwanted side effects.

      So I am looking for a method or workaround, which would allow when command is received to stop listening to radio, after the routine is completed - restart listening again.

      Any advice?

      regards, rimantas

      B Offline
      B Offline
      boozz
      wrote on last edited by
      #2

      @rzylius
      maybe too simple, but can't you put your specific code within a 'while' loop?
      Something like:

      unsigned long Wait_time;
      unsigned long Start_time;
      ...
      ...
      //
      Start_time = millis();
      Wait_time = millis() - Start_time;
      
      while (Wait_time < 5000){
      //insert your code for the routine of actions of roughly 5000 ms here
      Wait_time = millis() - Start_time;
      }
      

      BR,
      Boozz

      1 Reply Last reply
      0
      • rzyliusR rzylius

        Is there a neat way to stop receiving messages temporarily in mysensors node? I have a node which must perform a routine of sequence of actions of roughly 5 seconds upon receiving a command. If another command comes when the routine is performed it produces unwanted side effects.

        So I am looking for a method or workaround, which would allow when command is received to stop listening to radio, after the routine is completed - restart listening again.

        Any advice?

        regards, rimantas

        T Offline
        T Offline
        tbowmo
        Admin
        wrote on last edited by
        #3

        @rzylius

        Can't you do this with a state variable? something like:

        boolean state = false;
        void receive(const MyMessage &message) {
          if (!state) {
            if (message.cmd = xxx) {
              state = true;
              startOperation();
            }
          }
        }
        
        void startOperation() {
           delay(5000);
           state = false;
        }
        
        rzyliusR 1 Reply Last reply
        0
        • T tbowmo

          @rzylius

          Can't you do this with a state variable? something like:

          boolean state = false;
          void receive(const MyMessage &message) {
            if (!state) {
              if (message.cmd = xxx) {
                state = true;
                startOperation();
              }
            }
          }
          
          void startOperation() {
             delay(5000);
             state = false;
          }
          
          rzyliusR Offline
          rzyliusR Offline
          rzylius
          wrote on last edited by
          #4

          @tbowmo works like a charm, thank you.

          1 Reply Last reply
          1

          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

          With your input, this post could be even better 💗

          Register Login
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          18

          Online

          12.0k

          Users

          11.2k

          Topics

          113.4k

          Posts


          Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • MySensors
          • OpenHardware.io
          • Categories
          • Recent
          • Tags
          • Popular