MVario2 EX Telemetry Daten aus TU2 Port zur Jetibox auslesen
- amigoandi
-
Offline Autor
- Neues Mitglied
-
- Beiträge: 8
- Dank erhalten: 1
amigoandi antwortete auf MVario2 EX Telemetry Daten aus TU2 Port zur Jetibox auslesen
Posted 23 Aug. 2025 23:06 #7
Hallo Hermann,
habe heute mal das Oszi (kann u.a. UART auflösen) als Sniffer an den TU2 Port zur Jetibox angeschlossen, und gleichzeitig den Saleae Sniffer mit Pulseview an den EXT Port des R9, wo ein SM Microvario angeschlossen war, und mal auf beiden Seiten gleichzeitig getraced.
Es werden zu Beginn Text Messages ausgetauscht, ich vermute zur Bekanntgabe der übermittelten Sensorfelder und ihren Eigenschaften. Später werden die Sensordaten binär übertragen.
Die Jetibox war dabei nicht angeschlossen an dem TU2 hing nur das Oszi, und Sender und Empfänger wurden vor dem Trace gebootet.
Ergebnis: Die Binärdaten der Sensorfelder vom Vario werden exakt 1:1 so vom TU2 Modul an das Oszi ausgegeben.
Man braucht die Jetibox also nicht, um die Binärdaten der Telemetriewerte zu erhalten, das hatte ich zunächst befürchtet.
Byte 7 scheinen übrigens 2 Zähler zu sein.
Man müsste die Binärfelder nur auflösen können. Mit der EX Spezifikation komme ich nicht weiter, aber die Erklärung findet sich evtl. im Beginn der Kommunikation (Text Messages), habe bisher immer nur irgendwo in die Mitte geschaut.
Die Trace habe ich mal Excel konvertiert, um besser suchen zu können, anbei mal ein Screenshot vom Ergebnis.
VG
Andreas
habe heute mal das Oszi (kann u.a. UART auflösen) als Sniffer an den TU2 Port zur Jetibox angeschlossen, und gleichzeitig den Saleae Sniffer mit Pulseview an den EXT Port des R9, wo ein SM Microvario angeschlossen war, und mal auf beiden Seiten gleichzeitig getraced.
Es werden zu Beginn Text Messages ausgetauscht, ich vermute zur Bekanntgabe der übermittelten Sensorfelder und ihren Eigenschaften. Später werden die Sensordaten binär übertragen.
Die Jetibox war dabei nicht angeschlossen an dem TU2 hing nur das Oszi, und Sender und Empfänger wurden vor dem Trace gebootet.
Ergebnis: Die Binärdaten der Sensorfelder vom Vario werden exakt 1:1 so vom TU2 Modul an das Oszi ausgegeben.
Man braucht die Jetibox also nicht, um die Binärdaten der Telemetriewerte zu erhalten, das hatte ich zunächst befürchtet.
Byte 7 scheinen übrigens 2 Zähler zu sein.
Man müsste die Binärfelder nur auflösen können. Mit der EX Spezifikation komme ich nicht weiter, aber die Erklärung findet sich evtl. im Beginn der Kommunikation (Text Messages), habe bisher immer nur irgendwo in die Mitte geschaut.
Die Trace habe ich mal Excel konvertiert, um besser suchen zu können, anbei mal ein Screenshot vom Ergebnis.
VG
Andreas
von amigoandi
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FuniCapi
-
Offline
- Platinum Mitglied
-
- Beiträge: 1843
- Dank erhalten: 908
FuniCapi antwortete auf MVario2 EX Telemetry Daten aus TU2 Port zur Jetibox auslesen
Posted 23 Aug. 2025 23:34 #8
Kennst du die Libraries von Bernd?
sourceforge.net/u/sepp62/profile/
github.com/Sepp62
Die helfen für evtl. weiter.
Alle meine Telemetrieprojekte basieren auf seiner Arbeit.
Gruss Lukas
sourceforge.net/u/sepp62/profile/
github.com/Sepp62
Die helfen für evtl. weiter.
Alle meine Telemetrieprojekte basieren auf seiner Arbeit.
Gruss Lukas
Last Edit:23 Aug. 2025 23:36
von FuniCapi
Letzte Änderung: 23 Aug. 2025 23:36 von FuniCapi.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- amigoandi
-
Offline Autor
- Neues Mitglied
-
- Beiträge: 8
- Dank erhalten: 1
amigoandi antwortete auf MVario2 EX Telemetry Daten aus TU2 Port zur Jetibox auslesen
Posted 26 Aug. 2025 00:07 #9
Hi Lukas,
ja die Libraries kenne ich bereits. Ich bin mir aber nicht sicher, ob sich das Aufdröseln lohnt, da der mir der Kontext nicht klar ist. So gibt es laut EX-Doku sowohl eine Binär- als auch eine Textversion als Datatype. Ich bin auf die Dekodierung der Binärcodierung der Labels und der Werte aus. Die Libs sind von 2017, und evtl. spiegelt die letzte veröffentlichte EX Doku (V1.07 von 2015) nicht mehr den neuesten Stand. D.h. die Libs passen auf die Doku, aber neuere Varios nicht mehr, bzw die Doku ist nicht mehr vollständig, was das Dekodieren des Binärteils halt unmöglich macht. (reine Vermutung).
VG
Andreas
ja die Libraries kenne ich bereits. Ich bin mir aber nicht sicher, ob sich das Aufdröseln lohnt, da der mir der Kontext nicht klar ist. So gibt es laut EX-Doku sowohl eine Binär- als auch eine Textversion als Datatype. Ich bin auf die Dekodierung der Binärcodierung der Labels und der Werte aus. Die Libs sind von 2017, und evtl. spiegelt die letzte veröffentlichte EX Doku (V1.07 von 2015) nicht mehr den neuesten Stand. D.h. die Libs passen auf die Doku, aber neuere Varios nicht mehr, bzw die Doku ist nicht mehr vollständig, was das Dekodieren des Binärteils halt unmöglich macht. (reine Vermutung).
VG
Andreas
von amigoandi
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- amigoandi
-
Offline Autor
- Neues Mitglied
-
- Beiträge: 8
- Dank erhalten: 1
amigoandi antwortete auf MVario2 EX Telemetry Daten aus TU2 Port zur Jetibox auslesen
Posted 27 Aug. 2025 00:20 #10
@Hermann: Habe Deine Mail am 22.08. beantwortet, falls da auch bei Dir was im Spam Ordner gelandet sein sollte.
VG
Andreas
VG
Andreas
von amigoandi
Folgende Benutzer bedankten sich: sierra_uniform
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- amigoandi
-
Offline Autor
- Neues Mitglied
-
- Beiträge: 8
- Dank erhalten: 1
amigoandi antwortete auf MVario2 EX Telemetry Daten aus TU2 Port zur Jetibox auslesen
Posted 27 Aug. 2025 13:19 #11
Hallo Lukas,
habe mir mal das Script von "sepp62" angesehen. Das geht zurück auf Bernd Wokoeck von 2017.
In TxJetiExDecode.cpp findet man:
==========================
// decode sensor value from jeti ex format
TxJetiExPacket * TxJetiDecode::DecodeValue()
{
if( m_nBytes >= m_nPacketLen - 3 ) // minimum length: packetLen - 1byte crc - 1 byte id - 1 byte data
return NULL;
// type and id
m_value.m_exType = m_exBuffer[ m_nBytes ] & 0x0F;
m_value.m_id = m_exBuffer[ m_nBytes++ ] >> 4;
if( m_value.m_id == 0 )
m_value.m_id = m_exBuffer[ m_nBytes++ ];
switch( m_value.m_exType )
{
case TxJetiExPacket::TYPE_6b:
{
uint8_t val1 = m_exBuffer[ m_nBytes++ ];
m_value.m_value = val1 & 0x1F;
m_value.m_value = (val1 & 0x80) ? -m_value.m_value : m_value.m_value;
m_value.m_exponent = (val1>>5) & 0x03;
}
break;
case TxJetiExPacket::TYPE_14b:
{
uint8_t val1 = m_exBuffer[ m_nBytes++ ];
uint8_t val2 = m_exBuffer[ m_nBytes++ ];
m_value.m_value = val1;
m_value.m_value |= (int32_t)(val2 & 0x1F) << 8;
m_value.m_value = (val2 & 0x80) ? -m_value.m_value : m_value.m_value;
m_value.m_exponent = (val2>>5) & 0x03;
}
break;
case TxJetiExPacket::TYPE_22b:
{
uint8_t val1 = m_exBuffer[ m_nBytes++ ];
uint8_t val2 = m_exBuffer[ m_nBytes++ ];
uint8_t val3 = m_exBuffer[ m_nBytes++ ];
m_value.m_value = val1;
m_value.m_value |= (int32_t)val2<<8;
m_value.m_value |= (int32_t)(val3 & 0x1F) << 16;
m_value.m_value = (val3 & 0x80) ? -m_value.m_value : m_value.m_value;
m_value.m_exponent = (val3>>5) & 0x03;
}
break;
=======================
Das ist exakt die Aufschlüsselung, wie sie in der EX Doku V1.07 (von 2015) beschrieben steht, nach der ich den Binärteil der Trace von MVario2 und dem SM Microvario manuell nicht aufgeschlüsselt bekomme (unsinnige IDs, Data types und Werte).
Im Trace kann man an der Stelle des laut Doku reserved Byte 8 (sollte laut Doku 00h fix sein), einen aufsteigenden Zähler für EX Text Frames, sehen, EX Data Frames zählen runter.
Im Trace sind auch pro Frame deutlich mehr als 2 Telemetriewerte zu sehen (max. 2 x max 5 Byte, es sind aber oft 20 und mehr Byte). Laut Doku sind es immer nur 2 Werte pro Frame.
Ich gebe diesen Weg jetzt auf, und versuche die Info (Höhe und Steig/Sinkrate) aus dem ASCII Feld zu holen.
VG
Andreas
habe mir mal das Script von "sepp62" angesehen. Das geht zurück auf Bernd Wokoeck von 2017.
In TxJetiExDecode.cpp findet man:
==========================
// decode sensor value from jeti ex format
TxJetiExPacket * TxJetiDecode::DecodeValue()
{
if( m_nBytes >= m_nPacketLen - 3 ) // minimum length: packetLen - 1byte crc - 1 byte id - 1 byte data
return NULL;
// type and id
m_value.m_exType = m_exBuffer[ m_nBytes ] & 0x0F;
m_value.m_id = m_exBuffer[ m_nBytes++ ] >> 4;
if( m_value.m_id == 0 )
m_value.m_id = m_exBuffer[ m_nBytes++ ];
switch( m_value.m_exType )
{
case TxJetiExPacket::TYPE_6b:
{
uint8_t val1 = m_exBuffer[ m_nBytes++ ];
m_value.m_value = val1 & 0x1F;
m_value.m_value = (val1 & 0x80) ? -m_value.m_value : m_value.m_value;
m_value.m_exponent = (val1>>5) & 0x03;
}
break;
case TxJetiExPacket::TYPE_14b:
{
uint8_t val1 = m_exBuffer[ m_nBytes++ ];
uint8_t val2 = m_exBuffer[ m_nBytes++ ];
m_value.m_value = val1;
m_value.m_value |= (int32_t)(val2 & 0x1F) << 8;
m_value.m_value = (val2 & 0x80) ? -m_value.m_value : m_value.m_value;
m_value.m_exponent = (val2>>5) & 0x03;
}
break;
case TxJetiExPacket::TYPE_22b:
{
uint8_t val1 = m_exBuffer[ m_nBytes++ ];
uint8_t val2 = m_exBuffer[ m_nBytes++ ];
uint8_t val3 = m_exBuffer[ m_nBytes++ ];
m_value.m_value = val1;
m_value.m_value |= (int32_t)val2<<8;
m_value.m_value |= (int32_t)(val3 & 0x1F) << 16;
m_value.m_value = (val3 & 0x80) ? -m_value.m_value : m_value.m_value;
m_value.m_exponent = (val3>>5) & 0x03;
}
break;
=======================
Das ist exakt die Aufschlüsselung, wie sie in der EX Doku V1.07 (von 2015) beschrieben steht, nach der ich den Binärteil der Trace von MVario2 und dem SM Microvario manuell nicht aufgeschlüsselt bekomme (unsinnige IDs, Data types und Werte).
Im Trace kann man an der Stelle des laut Doku reserved Byte 8 (sollte laut Doku 00h fix sein), einen aufsteigenden Zähler für EX Text Frames, sehen, EX Data Frames zählen runter.
Im Trace sind auch pro Frame deutlich mehr als 2 Telemetriewerte zu sehen (max. 2 x max 5 Byte, es sind aber oft 20 und mehr Byte). Laut Doku sind es immer nur 2 Werte pro Frame.
Ich gebe diesen Weg jetzt auf, und versuche die Info (Höhe und Steig/Sinkrate) aus dem ASCII Feld zu holen.
VG
Andreas
von amigoandi
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 1.117 Sekunden