1

我正在为 Aldebaran's Pepper 机器人编写应用程序。我正在使用 Choregraphe,并制作了一个 Web 应用程序以在机器人平板电脑中显示。我正在尝试将 Pepper 行为中的变量传递给 Web 应用程序 javascript。

我的想法是使用默认的 insertData 框在 Pepper 的内存中插入一个密钥、数据对,然后加载应用程序并从那里的内存中检索它。javascript 代码看起来像这样。

var session = new QiSession();
var memory;
session.service("ALMemory").then(function(m) {    
    memory = m;});
var data = memory.getData('key')

我认为它已经接近工作,但还没有完全实现。有任何想法吗?

通常将变量传递给javascript的最佳方法是什么?

亲切的问候,

(这个问题与这个问题类似但我的方法不同,我被要求创建一个新问题。)

4

2 回答 2

3

确保一切都作为回调完成,因为每个 NAOqi 函数都为您提供期货。

请参阅此处的文档。

QiSession(function(session) {
    session.service("ALMemory").then(function(m) { 
        m.getData('key').then(function(data) {
            // do something with the data!
        }, console.log);
    },console.log);
},console.log);
于 2017-09-13T23:21:09.653 回答
0

在此处关注文档。

1.开始一个会话。

2.连接ALMemory服务

QiSession(function (session) {
      console.log("connected!");
      session.service("ALMemory").then(function (memory) {
        memory.subscriber("event-key").then(function(subscriber){
          subscriber.signal.connect(function(data){
            // use the data here
        });
        });
      }, function (error) {
        console.log("An error occurred:", error);
      });
    }, function () {
      console.log("disconnected");
    });
于 2018-06-11T09:14:48.870 回答