Arduino Library für die Dekodierung von EX-Paketen
- Eckehard
-
Offline
- Senior Mitglied
-
- Beiträge: 65
- Dank erhalten: 6
Hallo Zusammen,
gestern hieß es "abnabeln"....
Hier der Stand der Dinge, siehe Anhang.....
Grüße
Eckehard
gestern hieß es "abnabeln"....
Hier der Stand der Dinge, siehe Anhang.....
Grüße
Eckehard
Last Edit:06 Feb. 2018 13:01
von Eckehard
Letzte Änderung: 06 Feb. 2018 13:01 von Eckehard. Begründung: Typo
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Sepp62
-
Offline Autor
- Elite Mitglied
-
- Beiträge: 295
- Dank erhalten: 154
Daumen hoch ! Das schaut ja schon sehr gut aus. Ich gratuliere !
VG Bernd
VG Bernd
von Sepp62
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Eckehard
-
Offline
- Senior Mitglied
-
- Beiträge: 65
- Dank erhalten: 6
Hallo,
Danke! Und nochmals Danke für die Lib, ohne die es mir nicht möglich gewesen wäre, soeinfach soweit zu kommen!
Ohne der Acryl-Überbrille wiegt die DatenBrille übrigens 50g.
Das ist imho doch recht leicht. Zusammen gesnappt an der Acryl-Überbrille hält das aber bei normalen Bewegungen sehr gut, zumindestens an meinem Dickkopf.
Sparen könnte man bei diesem Prototyp bei:
- Accu: nur 100mAh nehmen
- Gehäuse: dünneres Kunstoff Material, oder maßgeschneiderter 3D Druck
- Vereinfachung/Erleichterung der Verstellmechanik für den "Insight" Spiegel
- der "Klotz von Taster" muss unbedingt weg
Bin gespannt, wie sich das beim Fliegen "bewährt".
Danach werde ich schaun was zu verbessern ist, das 049"er Display soll ja auch noch seinen Einsatz finden....
Leider wird der praktische Einsatz aber frühestens in 3Wochen stattfinden können, ein Urlaub ist mir dazwischen gerutscht....
Macht nichts.....
Ich werde berichten....
Grüße
Eckehard
Danke! Und nochmals Danke für die Lib, ohne die es mir nicht möglich gewesen wäre, soeinfach soweit zu kommen!
Ohne der Acryl-Überbrille wiegt die DatenBrille übrigens 50g.
Das ist imho doch recht leicht. Zusammen gesnappt an der Acryl-Überbrille hält das aber bei normalen Bewegungen sehr gut, zumindestens an meinem Dickkopf.
Sparen könnte man bei diesem Prototyp bei:
- Accu: nur 100mAh nehmen
- Gehäuse: dünneres Kunstoff Material, oder maßgeschneiderter 3D Druck
- Vereinfachung/Erleichterung der Verstellmechanik für den "Insight" Spiegel
- der "Klotz von Taster" muss unbedingt weg
Bin gespannt, wie sich das beim Fliegen "bewährt".
Danach werde ich schaun was zu verbessern ist, das 049"er Display soll ja auch noch seinen Einsatz finden....
Leider wird der praktische Einsatz aber frühestens in 3Wochen stattfinden können, ein Urlaub ist mir dazwischen gerutscht....
Macht nichts.....
Ich werde berichten....
Grüße
Eckehard
von Eckehard
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Eckehard
-
Offline
- Senior Mitglied
-
- Beiträge: 65
- Dank erhalten: 6
Eckehard antwortete auf Darstellung von Einheiten non ASCII Zeichen, °C
Posted 19 Feb. 2018 21:36 #88
Hallo,
habe noch ein klitzekleines Problemchen, an dem ich aktuell nicht weiterkomme:
Auf dem SerialMonitor am Dekoder Teensy erscheint:
.....mit folgender Funktion PrintValue, abgeleitet vom Beispiel TxJetiEx\Examples\TxJetiEx\TxJetiEx.ino (aus TxJetiEx_v0.9.4.zip)
Unschön:
Die Einheit/Unit im Falle eines Temperatur Sensors wird als "29.10⸮C" übertragen und auch angezeigt.
Frage:
Wie bekomme ich das "Grad Celsius" korrekt dargetellt?
Grübelnde Grüße
Eckehard
habe noch ein klitzekleines Problemchen, an dem ich aktuell nicht weiterkomme:
Auf dem SerialMonitor am Dekoder Teensy erscheint:
Code:
....
UniS-E 49c7a302 9 Leistung 1.10W
---------------------------
UniS-E 49c7a302 10 Luftdruck 951.03hPa
---------------------------
Label from UniS-E, Serial: 49c7a302/12
Label - Temp. int, Unit: ⸮C
++++++++++
UniS-E 49c7a302 12 Temp. int 29.10⸮C
---------------------------
UniS-E 49c7a302 13 Hoehengew. 0.10m
---------------------------
UniS-E 49c7a302 1 Spannung 11.03V
....
.....mit folgender Funktion PrintValue, abgeleitet vom Beispiel TxJetiEx\Examples\TxJetiEx\TxJetiEx.ino (aus TxJetiEx_v0.9.4.zip)
Code:
void PrintValue( TxJetiExPacketValue * pValue )
{
char buf[50];
float fValue;
uint8_t day; uint8_t month; uint16_t year;
uint8_t hour; uint8_t minute; uint8_t second;
sprintf(buf, "tdmarker %s %08lx %d ", pValue->GetName(), pValue->GetSerialId(), pValue->GetId() ); Serial.print( buf );
toSmartGlassSerial.print( buf);
sprintf(buf, "%s ", pValue->GetLabel() ); Serial.print( buf );
toSmartGlassSerial.print( buf);
if( pValue->GetFloat( &fValue ) )
{
Serial.print( fValue );
toSmartGlassSerial.print( fValue);
}
else if( pValue->GetLatitude( &fValue ) )
{
Serial.print( fValue, 5 );
toSmartGlassSerial.print( fValue, 5);
}
else if( pValue->GetLongitude( &fValue ) )
{
Serial.print( fValue, 5 );
toSmartGlassSerial.print( fValue, 5);
}
else if( pValue->GetDate( &day, &month, &year ) )
{
sprintf( buf, "%d.%d.%d", day, month, year ); Serial.print( buf );
}
else if( pValue->GetTime( &hour, &minute, &second ) )
{
sprintf( buf, "%d:%d:%d", hour, minute, second ); Serial.print( buf );
}
else
Serial.print( pValue->GetRawValue() );
//sprintf( buf, " %s Type: %s/%d", pValue->GetUnit(), GetDataTypeString( pValue->GetExType() ), pValue->GetExType() ); Serial.println( buf );
sprintf( buf,"%s", pValue->GetUnit() ); Serial.println( buf );
toSmartGlassSerial.println( buf );
Serial.println( "---------------------------" );
}
Unschön:
Die Einheit/Unit im Falle eines Temperatur Sensors wird als "29.10⸮C" übertragen und auch angezeigt.
Frage:
Wie bekomme ich das "Grad Celsius" korrekt dargetellt?
Grübelnde Grüße
Eckehard
Last Edit:19 Feb. 2018 21:38
von Eckehard
Letzte Änderung: 19 Feb. 2018 21:38 von Eckehard. Begründung: Typo
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Sepp62
-
Offline Autor
- Elite Mitglied
-
- Beiträge: 295
- Dank erhalten: 154
Hallo Eckehard,
das Problem kenne ich. Nach ein wenig rumprobieren, habe ich dann nichts mehr dafür gemacht, weil die Zeichen-Codes am Ende sowieso nicht am Serial-Monitor dargestellt werden sollen, sondern auf irgendeinem anderen "Gerät", das dann wieder andere Zeichensätze unterstützt.
Daher rate ich Dir:
- Mach alle Tests nur mit dem Gerät, das am Ende für die Zeichen darstellen soll. Dies dürfte bei Dir das Brillen-Display sein.
- Welches der richtige Code ist, muss Du wohl probieren. Am Einfachsten dürfte sein, wenn Du eine Schleife baust, die eine Reihe von Zeichen ausgibt und für jedes Zeichen wird der Code erhöhst Du den Code um eins. Dann schaust Du auf dem Display, ob irgendwo ein "Grad"-Zeichen dabei ist.
- Vielleicht muss man für die Anzeige des Grad-Zeichens auf dem Display den Zeichensatz irgendwie umschalten (oder eine Escape-Sequenz bilden). Dann schickst Du irgendeinen Code, der sonst kein vernünftiges Zeichen darstellt zur Brille und konvertierst dieses Zeichen dann bei der Display-Ausgabe.
Hoffe, Du kommst damit weiter.
VG Bernd
das Problem kenne ich. Nach ein wenig rumprobieren, habe ich dann nichts mehr dafür gemacht, weil die Zeichen-Codes am Ende sowieso nicht am Serial-Monitor dargestellt werden sollen, sondern auf irgendeinem anderen "Gerät", das dann wieder andere Zeichensätze unterstützt.
Daher rate ich Dir:
- Mach alle Tests nur mit dem Gerät, das am Ende für die Zeichen darstellen soll. Dies dürfte bei Dir das Brillen-Display sein.
- Welches der richtige Code ist, muss Du wohl probieren. Am Einfachsten dürfte sein, wenn Du eine Schleife baust, die eine Reihe von Zeichen ausgibt und für jedes Zeichen wird der Code erhöhst Du den Code um eins. Dann schaust Du auf dem Display, ob irgendwo ein "Grad"-Zeichen dabei ist.
- Vielleicht muss man für die Anzeige des Grad-Zeichens auf dem Display den Zeichensatz irgendwie umschalten (oder eine Escape-Sequenz bilden). Dann schickst Du irgendeinen Code, der sonst kein vernünftiges Zeichen darstellt zur Brille und konvertierst dieses Zeichen dann bei der Display-Ausgabe.
Hoffe, Du kommst damit weiter.
VG Bernd
von Sepp62
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Eckehard
-
Offline
- Senior Mitglied
-
- Beiträge: 65
- Dank erhalten: 6
Eckehard antwortete auf Darstellung von Einheiten non ASCII Zeichen, °C
Posted 20 Feb. 2018 23:10 #90
Hallo Bernd,
Dein Rat war "goldrichtig"....
Ich habe bei der Suche zu den Beispielen zu meinem MicroOLed eine leicht abwandelbaren Code gefunden, mit dem ich den Byte Wert des ° Zeichens ermitteln konnte.
(Quelle:
* MicroOLED_Demo.ino
* SFE_MicroOLED Library Demo
* Jim Lindblom @ SparkFun Electronics
* Original Creation Date: October 27, 2014
)
In meinem Brillen Sketch, unter Verwendung der Library
#include <SFE_MicroOLED.h>
mit
MicroOLED oled(PIN_RESET, DC_JUMPER); // Example I2C Declaration
und
oled.setFontType(0); // 5x7 Pixel, max 6 zeilen
kann man mit
oled.write(247);
ein ° Zeichen auf das Display "zaubern"....
Danke, Du hast mir wiedereinmal sehr geholfen!
weiter gehts....
Grüße
Eckehard
Dein Rat war "goldrichtig"....
Ich habe bei der Suche zu den Beispielen zu meinem MicroOLed eine leicht abwandelbaren Code gefunden, mit dem ich den Byte Wert des ° Zeichens ermitteln konnte.
(Quelle:
* MicroOLED_Demo.ino
* SFE_MicroOLED Library Demo
* Jim Lindblom @ SparkFun Electronics
* Original Creation Date: October 27, 2014
)
In meinem Brillen Sketch, unter Verwendung der Library
#include <SFE_MicroOLED.h>
mit
MicroOLED oled(PIN_RESET, DC_JUMPER); // Example I2C Declaration
und
oled.setFontType(0); // 5x7 Pixel, max 6 zeilen
kann man mit
oled.write(247);
ein ° Zeichen auf das Display "zaubern"....
Danke, Du hast mir wiedereinmal sehr geholfen!
weiter gehts....
Grüße
Eckehard
von Eckehard
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 1.151 Sekunden