2016-05-30 5 views
0

Ich arbeite an einer Pebble-Anwendung und verwende AppMessage für die Kommunikation zwischen PebbleKitJS und der regulären C-Anwendung. Auf der JS Seite verwende ich den folgenden Code ein Wörterbuch von Strings unterschiedlicher Länge zu senden über:Tuple-Lexikon-Suche, die keine volle Zeichenfolge zurückgibt

var msg = { 
    1: totalMessageString[0], 
    2: totalMessageString[1], 
    3: totalMessageString[2], 
    4: totalMessageString[3], 
    5: totalMessageString[4], 
    }; 

    Pebble.sendAppMessage(msg, 
         function(e) { 
          console.log("Search Results Sent!"); 
         }, 
         function(e) { 
          console.log("Search Results Failed with Error: " + e.error); 
         }); 

Die in totalMessageString gespeicherten Strings sind überall von 30 bis mehr als 200 Zeichen lang sein. Auf der C-Seite, verwende ich den folgenden Code, diese Nachrichten zu lesen:

static void inbox_received_callback(DictionaryIterator *iter, void *context) { 
    for (int i = 1; i < 11; i++) { 
    Tuple *result = dict_find(iter, i); 

    if (result) { 
     char *location_name = result->value->cstring; 
     static char s_buffer[512]; 
     snprintf(s_buffer, sizeof(s_buffer), "%s", location_name); 
     APP_LOG(APP_LOG_LEVEL_INFO, "Message Recieved: %s",s_buffer); 
     text_layer_set_text(text_layer, s_buffer); 
    } 

    //No More results! 
    else { 
     APP_LOG(APP_LOG_LEVEL_INFO, "No Message found for index %i",i); 
     break; 
    } 
    } 

} 

Strings von unter 70 Zeichen sind ganz gut, aber Saiten über gesendet, die abgeschnitten werden (sie werden nicht gedruckt vollständig aus). Die Vergrößerung von s_buffer hat ebenfalls keine Auswirkungen. Kann mir bitte jemand helfen, herauszufinden, was ich falsch mache? Ich vermute, dass es eine Möglichkeit gibt, die Tupelgröße zu definieren, aber ich bin mir nicht sicher, wie. Vielen Dank!

Antwort

-1

Ich kann dies nicht testen, da CloudPebble derzeit nicht funktioniert und das ist eine Vermutung, aber haben Sie überprüft app_message_open(size_inbound, size_outbound); ist richtig dimensioniert, um die vollständige Nachricht zu behandeln?

+0

Dies bietet keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag - du kannst deine eigenen Beiträge kommentieren und sobald du [verdienen] (http://meta.stackoverflow.com/q/146472/169503) ausreichend [ Reputation] (http://stackoverflow.com/help/whats-reputation) kannst du [jeden Beitrag kommentieren] (http://stackoverflow.com/help/privileges/comment). Wenn Sie eine verwandte, aber andere Frage haben, [stellen Sie eine neue Frage] (http://stackoverflow.com/questions/ask), die auf diese verweist, wenn es helfen wird, Kontext zur Verfügung zu stellen. –

+1

Sie können Ihren Beitrag bearbeiten, damit er eher eine Antwort als eine Frage für das OP darstellt –