Pepper: pass variable from Python to web JS and display it in the html





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







1















I want to pass data from my choregraphe to webjs and the passed value will display it in the html through javascipt. I can successfully passed it but the problem is it will just display for a 1-3 seconds. Did i do this right?



Here is my code from choregraphe(python):



def onLoad(self):
#put initialization code here
pass

def onUnload(self):
self.memory = None
#put clean-up code here
pass

def onInput_onStart(self):
data = ['apple','mango','juice']
self.memory.raiseEvent("myData", data)

def onInput_onStop(self):
self.onUnload()
box is stopped
self.onStopped()


And this is the code for my javaschipt in getting the data from pepper:



var  session = new QiSession();

$(document).ready(function(){
getData();
});
function getData(){
session.service('ALMemory').then(function(ALMemory){
ALMemory.subscriber("myData").then(function(subscriber) {
subscriber.signal.connect(function(data){
"display to html here"
});
});
});
}









share|improve this question

























  • try if(data) {"display to html here"}

    – TVK
    Jan 10 at 12:29


















1















I want to pass data from my choregraphe to webjs and the passed value will display it in the html through javascipt. I can successfully passed it but the problem is it will just display for a 1-3 seconds. Did i do this right?



Here is my code from choregraphe(python):



def onLoad(self):
#put initialization code here
pass

def onUnload(self):
self.memory = None
#put clean-up code here
pass

def onInput_onStart(self):
data = ['apple','mango','juice']
self.memory.raiseEvent("myData", data)

def onInput_onStop(self):
self.onUnload()
box is stopped
self.onStopped()


And this is the code for my javaschipt in getting the data from pepper:



var  session = new QiSession();

$(document).ready(function(){
getData();
});
function getData(){
session.service('ALMemory').then(function(ALMemory){
ALMemory.subscriber("myData").then(function(subscriber) {
subscriber.signal.connect(function(data){
"display to html here"
});
});
});
}









share|improve this question

























  • try if(data) {"display to html here"}

    – TVK
    Jan 10 at 12:29














1












1








1








I want to pass data from my choregraphe to webjs and the passed value will display it in the html through javascipt. I can successfully passed it but the problem is it will just display for a 1-3 seconds. Did i do this right?



Here is my code from choregraphe(python):



def onLoad(self):
#put initialization code here
pass

def onUnload(self):
self.memory = None
#put clean-up code here
pass

def onInput_onStart(self):
data = ['apple','mango','juice']
self.memory.raiseEvent("myData", data)

def onInput_onStop(self):
self.onUnload()
box is stopped
self.onStopped()


And this is the code for my javaschipt in getting the data from pepper:



var  session = new QiSession();

$(document).ready(function(){
getData();
});
function getData(){
session.service('ALMemory').then(function(ALMemory){
ALMemory.subscriber("myData").then(function(subscriber) {
subscriber.signal.connect(function(data){
"display to html here"
});
});
});
}









share|improve this question
















I want to pass data from my choregraphe to webjs and the passed value will display it in the html through javascipt. I can successfully passed it but the problem is it will just display for a 1-3 seconds. Did i do this right?



Here is my code from choregraphe(python):



def onLoad(self):
#put initialization code here
pass

def onUnload(self):
self.memory = None
#put clean-up code here
pass

def onInput_onStart(self):
data = ['apple','mango','juice']
self.memory.raiseEvent("myData", data)

def onInput_onStop(self):
self.onUnload()
box is stopped
self.onStopped()


And this is the code for my javaschipt in getting the data from pepper:



var  session = new QiSession();

$(document).ready(function(){
getData();
});
function getData(){
session.service('ALMemory').then(function(ALMemory){
ALMemory.subscriber("myData").then(function(subscriber) {
subscriber.signal.connect(function(data){
"display to html here"
});
});
});
}






pepper






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 3 at 9:10







jay desierto

















asked Jan 3 at 5:28









jay desiertojay desierto

64




64













  • try if(data) {"display to html here"}

    – TVK
    Jan 10 at 12:29



















  • try if(data) {"display to html here"}

    – TVK
    Jan 10 at 12:29

















try if(data) {"display to html here"}

– TVK
Jan 10 at 12:29





try if(data) {"display to html here"}

– TVK
Jan 10 at 12:29












2 Answers
2






active

oldest

votes


















1














Your Choregraphe code is full of bugs, and of useless boilerplate things you could just remove, this should be enough:



def onLoad(self):
self.memory = self.session().service("ALMemory")

def onInput_onStart(self):
data = ['apple','mango','juice']
self.memory.raiseEvent("myData", data)


... as for the javascript side, there are two things to do:




  • As soon as the page loads, show the current value of the data - TVK's code does that

  • As soon as the value changes, update the page - your code does that.


Combined together, it would be something like this:



var session = new QiSession();
function updateDisplay(data) {
"display to html here"
}
session.service('ALMemory').then(function(ALMemory){
ALMemory.getData("myData").then(updateDisplay);
ALMemory.subscriber("myData").then(function(subscriber) {
subscriber.signal.connect(updateDisplay);
});
});





share|improve this answer































    0














    Try to work with ALMemory.getData, rather than with ALMemory.subscriber.
    This might work for you:



    var  session = new QiSession();

    $(document).ready(function(){
    getData();
    });
    function getData(){
    session.service('ALMemory').then(function(ALMemory){
    ALMemory.getData("myData").then(function(data) {
    "display to html here"
    });
    });
    }





    share|improve this answer
























      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54016787%2fpepper-pass-variable-from-python-to-web-js-and-display-it-in-the-html%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      1














      Your Choregraphe code is full of bugs, and of useless boilerplate things you could just remove, this should be enough:



      def onLoad(self):
      self.memory = self.session().service("ALMemory")

      def onInput_onStart(self):
      data = ['apple','mango','juice']
      self.memory.raiseEvent("myData", data)


      ... as for the javascript side, there are two things to do:




      • As soon as the page loads, show the current value of the data - TVK's code does that

      • As soon as the value changes, update the page - your code does that.


      Combined together, it would be something like this:



      var session = new QiSession();
      function updateDisplay(data) {
      "display to html here"
      }
      session.service('ALMemory').then(function(ALMemory){
      ALMemory.getData("myData").then(updateDisplay);
      ALMemory.subscriber("myData").then(function(subscriber) {
      subscriber.signal.connect(updateDisplay);
      });
      });





      share|improve this answer




























        1














        Your Choregraphe code is full of bugs, and of useless boilerplate things you could just remove, this should be enough:



        def onLoad(self):
        self.memory = self.session().service("ALMemory")

        def onInput_onStart(self):
        data = ['apple','mango','juice']
        self.memory.raiseEvent("myData", data)


        ... as for the javascript side, there are two things to do:




        • As soon as the page loads, show the current value of the data - TVK's code does that

        • As soon as the value changes, update the page - your code does that.


        Combined together, it would be something like this:



        var session = new QiSession();
        function updateDisplay(data) {
        "display to html here"
        }
        session.service('ALMemory').then(function(ALMemory){
        ALMemory.getData("myData").then(updateDisplay);
        ALMemory.subscriber("myData").then(function(subscriber) {
        subscriber.signal.connect(updateDisplay);
        });
        });





        share|improve this answer


























          1












          1








          1







          Your Choregraphe code is full of bugs, and of useless boilerplate things you could just remove, this should be enough:



          def onLoad(self):
          self.memory = self.session().service("ALMemory")

          def onInput_onStart(self):
          data = ['apple','mango','juice']
          self.memory.raiseEvent("myData", data)


          ... as for the javascript side, there are two things to do:




          • As soon as the page loads, show the current value of the data - TVK's code does that

          • As soon as the value changes, update the page - your code does that.


          Combined together, it would be something like this:



          var session = new QiSession();
          function updateDisplay(data) {
          "display to html here"
          }
          session.service('ALMemory').then(function(ALMemory){
          ALMemory.getData("myData").then(updateDisplay);
          ALMemory.subscriber("myData").then(function(subscriber) {
          subscriber.signal.connect(updateDisplay);
          });
          });





          share|improve this answer













          Your Choregraphe code is full of bugs, and of useless boilerplate things you could just remove, this should be enough:



          def onLoad(self):
          self.memory = self.session().service("ALMemory")

          def onInput_onStart(self):
          data = ['apple','mango','juice']
          self.memory.raiseEvent("myData", data)


          ... as for the javascript side, there are two things to do:




          • As soon as the page loads, show the current value of the data - TVK's code does that

          • As soon as the value changes, update the page - your code does that.


          Combined together, it would be something like this:



          var session = new QiSession();
          function updateDisplay(data) {
          "display to html here"
          }
          session.service('ALMemory').then(function(ALMemory){
          ALMemory.getData("myData").then(updateDisplay);
          ALMemory.subscriber("myData").then(function(subscriber) {
          subscriber.signal.connect(updateDisplay);
          });
          });






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Jan 8 at 9:05









          EmileEmile

          2,29711420




          2,29711420

























              0














              Try to work with ALMemory.getData, rather than with ALMemory.subscriber.
              This might work for you:



              var  session = new QiSession();

              $(document).ready(function(){
              getData();
              });
              function getData(){
              session.service('ALMemory').then(function(ALMemory){
              ALMemory.getData("myData").then(function(data) {
              "display to html here"
              });
              });
              }





              share|improve this answer




























                0














                Try to work with ALMemory.getData, rather than with ALMemory.subscriber.
                This might work for you:



                var  session = new QiSession();

                $(document).ready(function(){
                getData();
                });
                function getData(){
                session.service('ALMemory').then(function(ALMemory){
                ALMemory.getData("myData").then(function(data) {
                "display to html here"
                });
                });
                }





                share|improve this answer


























                  0












                  0








                  0







                  Try to work with ALMemory.getData, rather than with ALMemory.subscriber.
                  This might work for you:



                  var  session = new QiSession();

                  $(document).ready(function(){
                  getData();
                  });
                  function getData(){
                  session.service('ALMemory').then(function(ALMemory){
                  ALMemory.getData("myData").then(function(data) {
                  "display to html here"
                  });
                  });
                  }





                  share|improve this answer













                  Try to work with ALMemory.getData, rather than with ALMemory.subscriber.
                  This might work for you:



                  var  session = new QiSession();

                  $(document).ready(function(){
                  getData();
                  });
                  function getData(){
                  session.service('ALMemory').then(function(ALMemory){
                  ALMemory.getData("myData").then(function(data) {
                  "display to html here"
                  });
                  });
                  }






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Jan 3 at 8:42









                  TVKTVK

                  493411




                  493411






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54016787%2fpepper-pass-variable-from-python-to-web-js-and-display-it-in-the-html%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      MongoDB - Not Authorized To Execute Command

                      How to fix TextFormField cause rebuild widget in Flutter

                      in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith