/ / pebble time Farbkonfiguration - c, pebble-watch, pebble-sdk, cloudpebble

Kiesel Zeit Farbkonfiguration - c, Pebble-Watch, Pebble-SDK, cloudpebble

Ich versuche, die Konfiguration meines Pebble Time Watchface zu optimieren. Um Zeichenkettenvergleiche zu vermeiden, füge ich alle GColor-Werte in ein Array ein, aber es funktioniert überhaupt nicht :(

Das Array:

static uint8_t colors[] = {
GColorInchwormARGB8,    //1
GColorSpringBudARGB8,    //2
GColorBrightGreenARGB8,    //3
GColorMintGreenARGB8,    //4
GColorScreaminGreenARGB8,    //5
GColorGreenARGB8,    //6
GColorMalachiteARGB8,    //7
};

Lesen Sie die Daten aus der Konfiguration:

static void in_recv_handler(DictionaryIterator *iterator, void *context)
{

Tuple *t = dict_read_first(iterator);

while (t != NULL){
switch (t -> key){
//++++++ background color +++++++
case bgColor:
persist_write_int(bgColor, t->value->int8);
break;
//++++++ time color ++++++
case timeColor:
persist_write_int(timeColor, t->value->int8);
break;
}
t = dict_read_next(iterator);
}
}

Ich habe versucht, Uint8, Uint16, Uint32, Int8, Int16 und Int32. Wenn ich int32 verwende, stürzt die Uhr ab.

Legen Sie die Farbe für die Ebene fest:

time_color = (GColor)colors[persist_read_int(timeColor)];

Wenn ich verwende:

time_color = (GColor)colors[4];

Die richtige Farbe erscheint.

Die Werte der HTML-Seite:

 <select id="bg_select">
<option class="inchworm" value="0">Inchworm</option>
<option class="springBud" value="1">Spring Bud</option>
<option class="brightGreen" value="2">Bright Green</option>
<option class="mintGreen" value="3">Mint Green</option>
</select>

Hat jemand Vorschläge, um das Problem zu beheben? Was mache ich falsch

Antworten:

1 für die Antwort № 1

Abhängig von der genauen Reihenfolge der Ereignisse wurde der Farbwert möglicherweise noch nicht gespeichert. Prüfen Sie, ob der Wert existiert?

if(persist_exists(timeColor)) {
time_color = (GColor)colors[persist_read_int(timeColor)];
}