gpt4 book ai didi

c - Pebble AppMessage JS json/csv -> C

转载 作者:行者123 更新时间:2023-11-30 17:10:04 25 4
gpt4 key购买 nike

我正在尝试使用 Pebble SDK,并且想从网络读取太阳能数据。我已经成功地完全用 JS 构建了一个应用程序。看这个linkenter image description here

由于我发现 JS 存在一些限制,因此我正在用 C 重写代码。当通过JS接收json数据时,我通过字典将其发送到C。你可以找到C版本here

从网络接收的原始数据:

[ { HourNum: "0:0", HourPower: "0" }, { HourNum: "0:10", HourPower: "0" }, { HourNum: "0:20", HourPower: "0" }, etc

“HourPower”数据经过过滤并通过字典选项发送到 C:

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,72,89,110,127,160,192,253,316,352,360,522,539,601,598,770,582,650,810,741,805,894,908,864,904,962,1016,1106,1853,1503,1311,1406,1444,1401,1409,1344,1622,1472,1382,1609,1766,3310,3093,2041,1496,2068,3302,3185,1358,2760,2715,1285,994,1086,832,871,813,1707,1218,1218,239,203,170,132,70,53,45,39,39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

两个挑战:

  • 1 我想知道我是否已收到全部 144 份参赛作品。

在日志记录中我只看到:

Received buffer_solarvalue: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, <-stops here

JS和C之间的数据有限制吗?在将数据从 JS 发送到 C 之前,是否需要将数据分成多个部分?

  • 2 我不知道如何处理 C 中收到的数据。**我已经阅读并尝试了几种可能性,尝试读取 native json,现在尝试通过 csv 读取它,但是如何?

最终目标是从网络上读取这些值并创建图表。但首先我需要在 C 中正确读取这些值。

我应该采用 csv 方式,对吗?有人有 JS 和 C 之间“更大”数据集的经验吗?

最佳答案

我无法在 CloudPebble 中使用 strtok,因此我编写了此函数来将指针前进到下一个数字

void skip_over_char(char **buffer, const char lookup) {
while(((*buffer)[0] != lookup) && ((*buffer)[0] != '\0')) {
(*buffer)++;
}
(*buffer)++; //skip over lookup character
}

然后您可以通过这种方式将值添加到 Solar_values 数组中。结果您可以看到您确实收到了所有 144 个条目。

static int solar_values[144];
static int index;
static int received;
char *pch;

case KEY_SOLARVALUE :
received = snprintf(buffer_solarvalue, sizeof(buffer_solarvalue), "%s", t->value->cstring);
APP_LOG(APP_LOG_LEVEL_INFO , "Received buffer_solarvalue: %s", buffer_solarvalue);
pch = buffer_solarvalue;
skip_over_char(&pch, '[');
index = 0;
while (pch - buffer_solarvalue < received) {
solar_values[index++] = atoi(pch);
APP_LOG(APP_LOG_LEVEL_INFO, "solar_values[%3d] = %d", index - 1, solar_values[index-1]);
skip_over_char(&pch, ',');
}
APP_LOG(APP_LOG_LEVEL_INFO , "Received %d values", index);
break;

关于c - Pebble AppMessage JS json/csv -> C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33047416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com