/ / Pebble SDK / SimplyJS ehrt nicht das t-Zeichen - Javascript, pebble-watch, pebble-sdk

Pebble SDK / SimplyJS nicht die t-Charakter zu ehren - Javascript, Pebble-Watch, Pebble-SDK

Ich habe eine interessante Zeit damit, meine Pebble-Uhr dazu zu bringen, den Escape-Sequenz-Charakter zu ehren t beim Pushen von Daten auf meine Uhr (mit SimplyJS).

Das folgende Snippet ist der Code, den ich verwendet habe:

simply.scrollable(true);
simply.style("small");
simply.fullscreen(true);

var aflLadderUrl = "http://www.sportal.com.au/feeds/sss/afl_ladder.json";

var ladderContent = "";

ajax({ url: aflLadderUrl, type: "json"},
function(data) {
var i = 0;
while (i < 18){
ladderContent = ladderContent + data.ladder[i].friendly_name + "ttt" + data.ladder[i].percentage + "n";
i++;
}
simply.text({
title: "AFL Ladder",
body: ladderContent
});
},
function() {
simply.text({
title: "AFL Ladder",
body: "No internet connection"
});
}
);

Was ich derzeit beobachte, ist, dass die n wird geehrt und ich kann sehen, dass auf meiner Uhr jede Datenzeile in einer separaten Zeile angezeigt wird. Es scheint jedoch, dass meine t werden ignoriert und statt eines Tabulators in meine Zeile wird kein Leerzeichen angezeigt (d. h. "my name is" + "ttt" + "dave" wird angezeigt als my name isdave).

Ich habe auch versucht, ein Hello World - Programm zu kompilieren, indem ich nur das Pebble SDK verwendet habe (den Code aus https://github.com/kristofvc/pebble-hello-world/blob/master/src/pebble_hello_world.c und ein paar hinzufügen tt in der Zeichenfolge auf Zeile 11 gedruckt werden) und haben auch bemerkt, dass das SDK ehrt n Zeichen aber nicht t Zeichen (genau wie meine SimplyJS-App).

Meine Frage ist: Ist es möglich, dass die Pebble-Anzeigeregisterkarten (entweder über das SDK oder SimplyJS) so angezeigt werden, wie Sie es beim Drucken auf der Konsole erwarten? Ich verstehe, dass das Zeichen t möglicherweise nicht unterstützt wird und nicht verwendet wird t Ich konnte nur Leerzeichen benutzen, aber dieses hat mich neugierig gemacht.

Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

Danke im Voraus!

Antworten:

2 für die Antwort № 1

weil t ist ein Steuerzeichen (nicht druckbar)Entspricht keiner Glyphe und wird nicht, wenn überhaupt, konsistent "angezeigt". Terminalemulatoren interpretieren es anders als beispielsweise Tabellenkalkulationsprogramme, die eine TSV-Datei lesen. Es klingt wie der Teil der Pebble-Firmware, der einen Bytestring in Pixel konvertiert, die auf einem Display nur ignoriert werden t, obwohl ich dies in der SDK - Dokumentation nicht finden konnte.

Wenn Sie eine Schriftart mit fester Breite verwenden, können Sie Ihre eigenen Registerkarten mit Leerzeichen wie folgt implementieren:

var data = {ladder: [
{friendly_name: "Cool Team", percentage: 80.0},
{friendly_name: "Really Cool Team", percentage: 80.0},
{friendly_name: "The Coolest Team of All", percentage: 80.0}
]}

var len = function(obj) {return obj.friendly_name.length}
var longer = function(a, b) {return len(a) > len(b) ? a : b}
var longestName = len(data.ladder.reduce(longer))

var tab = function(obj) { return new Array(longestName - len(obj) + 2).join(" ") }
var print = function(obj) { return obj.friendly_name + tab(obj) + obj.percentage }

var ladderContent = data.ladder.map(print).join("n")
// Cool Team               80
// Really Cool Team        80
// The Coolest Team of All 80