我想使用CLION(jetbrains c/c ++ IDE)开发卵石.我知道云卵石,仍然想使用Clion.有人可以告诉我如何设置它,以便:
pebble build && install
.我正在学习表面开发.我一直在密切关注Pebble指南,因此80%的代码与示例代码相同.我可能错过了很小的东西,但我的脸似乎没有正确订阅时间服务.
我究竟做错了什么?
在init(),我有:
tick_timer_service_subscribe(MINUTE_UNIT, tick_handler);
tick_timer_service_subscribe(DAY_UNIT, tick_handler);
Run Code Online (Sandbox Code Playgroud)
这是tick_handler:
static void tick_handler(struct tm *tick_time, TimeUnits units_changed) {
update_time();
}
Run Code Online (Sandbox Code Playgroud)
这是update_time:
static void update_time() {
time_t temp = time(NULL);
struct tm *tick_time = localtime(&temp);
static char time_buffer[] = "00:00";
static char date_buffer[] = "00/00/00";
if (clock_is_24h_style() == true) {
strftime(time_buffer, sizeof(time_buffer), "%H:%M", tick_time);
} else {
strftime(time_buffer, sizeof(time_buffer), "%I:%M", tick_time);
}
text_layer_set_text(s_time_layer, time_buffer);
strftime(date_buffer, sizeof(date_buffer), "%D", tick_time);
text_layer_set_text(s_date_layer, date_buffer);
}
Run Code Online (Sandbox Code Playgroud)
面部仅更新首次加载时的时间(通过调用update_time).
有人可以用这个代码告诉我wow wong wong吗?我尝试了一切,不知道为什么它一直给我这个错误:
第3行解析错误:......","shortName":"简单","longN
---------------------------------------------- ^
期待'STRING','NUMBER','NULL','TRUE','FALSE','{','['
{
"uuid": "13371337-d579-4d75-a5c5-8dfcfe110f62",
"shortName": “Simple”,
"longName": “Simple”,
"companyName": “pjtnt11”,
"versionCode": 1,
"versionLabel": “1.7”,
"watchapp":
{
"watchface": true
},
"appKeys":
{
"dummy": 0
},
"resources":
{
"media": []
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在研究这里找到的Pebble C表面教程https://developer.getpebble.com/tutorials/watchface-tutorial/part1
有问题的代码部分在这里:
static void init() {
// Create main Window element and assign to pointer
s_main_window = window_create();
// Set handlers to manage the elements inside the Window
window_set_window_handlers(s_main_window, (WindowHandlers) {
.load = main_window_load,
.unload = main_window_unload
});
// Show the Window on the watch, with animated=true
window_stack_push(s_main_window, true);
}
Run Code Online (Sandbox Code Playgroud)
window_set_window_handlers是一个函数声明和调用吗?C中的.load和.unload简写符号的术语是什么?
如果有人可以解释这段代码,我将非常感谢,谢谢.
我正在为Pebble开发,我的开局很艰难.
我正在尝试使用2个字符串和2个值填充text_layer,如下所示:
等待AVG:3 MAX:5
由于mallocPebble SDK不支持,我无法使用sprintf,因此我坚持使用snprintf.以下代码仅打印"4":
srand(time(NULL));
int average = (rand()%6)+1;
int maximum = average + 2;
static char *avgText="WAIT AVG: ";
static char *maxText="MAX: ";
snprintf(labelText,sizeof(avgText) + sizeof(average) + sizeof(maxText) + sizeof(maximum),"%s %d %s %d",avgText,average,maxText,maximum);
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.我知道我可以创建4个单独的TextLayers,但这对我来说是最后的手段.
有什么办法可以在我的卵石代码中包含一个外部JS库吗?通常在网页上我会在我的头标签中执行此操作:
<script type='text/javascript' src='https://cdn.firebase.com/js/client/1.0.11/firebase.js'></script>
Run Code Online (Sandbox Code Playgroud)
但是在鹅卵石中,我无法做到这一点,因为我只使用JS.那么我如何为JavaScript文件包含一个外部库.
我在Pebble watch app开发教程中遇到了以下代码:
// Set handlers to manage the elements inside the Window
window_set_window_handlers(s_main_window, (WindowHandlers) {
.load = main_window_load,
.unload = main_window_unload
});
Run Code Online (Sandbox Code Playgroud)
我无法理解.load和.unload的这个任务.这是标准C吗?我认为我以前从未见过类似的语法.
我正在考虑开始卵石开发,但我对他们为Cloud Pebble做广告的鹅卵石网站(https://developer.getpebble.com)感到困惑,但他们也建议通过计算机上的命令行安装它.有什么不同?有优点和缺点吗?
是否可以在Pebble表盘中检索"请勿打扰"设置?我想知道我的表盘何时应该停止通知用户,但仅在DND打开时.我认为也可以获得24/12小时模式吗?
我现在一直在用卵石试验一两天,我已经达到了一点停滞状态.也就是说,我似乎无法弄清楚某些事情是如何相关的.我想要做的是从Android上的应用程序获取数据以发送到卵石,然后为鹅卵石做一些有效的数据.
我已经意识到你在一个Android应用程序中使用PebbleKit API,以便使用诸如之类的东西与卵石进行通信sendDataToPebble().在那之后,我不太确定该怎么做.
使用cloudpebble.net,我使用pebble SDK在C中创建了一个应用程序来确认数据(使用他们网站上建议的处理程序).但是,我最近发现在整个混音中也可能有javascript,我只是不知道如何与js交互.
是否有可能拥有所有ack/nack数据,并且后续处理/显示数据完全通过javascript完成,完全避免C,或者我是否需要在c中接收数据,然后将其发送到javascript一些如何为它使用(我目前不知道该怎么做).
我相信appmessage当JS应用程序收到数据时会触发某种事件(我认为),但是,我认为这只是来自C应用程序?
因此,大多数情况下,我的困惑在于JS如何融入整个组合.如果有人能为我清楚,我会真诚地感激它.
编辑:我应该补充一点,我正在尝试使用cloudpebble.net中的pebble.js创建一个应用程序.
谢谢!
我正在尝试向我的鹅卵石手表发送通知.我正在使用此代码,这基本上是来自网站的示例:
public void sendPebble(String title, String body) {
final Intent i = new Intent("com.getpebble.action.SEND_NOTIFICATION");
final Map<String, String> data = new HashMap<String, String>();
data.put("title", title);
data.put("body", body);
final JSONObject jsonData = new JSONObject(data);
final String notificationData = new JSONArray().put(jsonData).toString();
i.putExtra("messageType", "PEBBLE_ALERT");
i.putExtra("sender", "Test");
i.putExtra("notificationData", notificationData);
Log.d("Test", "Sending to Pebble: " + notificationData);
sendBroadcast(i);
}
Run Code Online (Sandbox Code Playgroud)
我在LogCat中收到消息,但手表上没有通知.程序看起来很简单,有没有我错过的东西?或者文档是不完整的?
编辑:显而易见的问题:
这似乎是一个基本问题,但我无法在任何地方找到答案.
我知道C/C++没有byte数据类型.我知道sizeof(char) == 1.
我试图在我的Android应用程序中传输12个传输,每个传输96个字节在Pebble上.
由于传输大小的限制,我一次发送一个.每一个都应该"附加"到最后一个,因为它们应该最终在内存中形成顺序空间,作为图像读取(每像素一位).
我正在尝试做这样的事情:
int transNum = 0;
uint8_t image[][] = new uint8t[12][12] //not sure about uint8_t, and I've forgotten how to do 'new' in C, I have to create just a pointer, and then malloc?
receivedHandler(DictionaryIterator *iter, void *context){
Tuple *receivedImage = dict_find(iter, KEY_IMG);
for (int i = 0; i < 12; i++) {
image[transNum][i] = receivedImage->value[i]->uint8_t;
}
transNum += 1; //this is in an implicit loop, since once done Pebble ACKs …Run Code Online (Sandbox Code Playgroud) pebble-sdk ×12
pebble-watch ×9
c ×5
cloudpebble ×3
android ×2
javascript ×2
function ×1
java ×1
json ×1
printf ×1
shorthand ×1
sizeof ×1
strlen ×1