在鹅卵石手表上出现“忽略无效键:KEY_TEMPERATURE”错误

时间:2015-01-18 21:22:48

标签: c pebble-watch cloudpebble pebble-js

我已经按照pebble表面的教程进行了操作,但改变了一些事情,但在日志中得到了错误:

忽略无效密钥:KEY_TEMPERATURE 忽略无效密钥:KEY_CONDITIONS

导致没有天气显示我认为它可能是js代码但我在教程main.c上使用它并且它工作正常。

Link to Github repo

1 个答案:

答案 0 :(得分:1)

您未在appKeys中指定任何appinfo.json

Pebble消息使用整数键入,而不是字符串。但是有适当的设施,你可以use meaningful strings when coding

  

在PebbleKit JS消息中使用命名键

     

PebbleKit JavaScript提供了一种使用命名键而不是整数键的机制。这样可以提高JavaScript代码的可读性,并允许您在一个位置分组AppMessage密钥的定义。

     

在“设置”屏幕的“PebbleKit JS消息密钥”部分的CloudPebble中声明密钥。

     

在本机SDK中,命名密钥是通过appKeys文件中的appinfo.json对象配置的。此对象将整数值与字符串相关联。这些值用于转换传出和传入消息的密钥。

"appKeys": {
  "firstKey":  0,
  "secondKey": 1
}

请注意,此处定义的键应与C代码中的键匹配,可能是通过C源代码中的#define语句或头文件。

  

对于传入消息的每个键,PebbleKit JS会在appKeys对象中查找与该键具有相同整数值的元素。如果它可以找到一个,它将在JavaScript对象中用此字符串替换此键。如果找不到,则会创建一个包含密钥整数值的新字符串。

     

对于传出消息的每个键,PebbleKit JS在appKeys对象中查找等于键的元素。如果找到一个,则使用与此元素关联的整数值作为键的整数表示。如果找不到,则尝试将密钥转换为整数。如果失败,则会引发错误。

     

例如,给定上面的appKeys配置,以下语句是等效的:

Pebble.sendAppMessage({ '0':        'A value' });
Pebble.sendAppMessage({ 'firstKey': 'A value' });

确保更新您的代码,以便您在C中指定这些值(您似乎通过#define以及 JavaScript通过{{1}指定了这些值文件:

appinfo.json