Arduino Library für Jeti EX Eigenbau-Telemetrie

  • ThLehmann
  • ThLehmann's Avatar Offline
  • Platinum Mitglied
  • Platinum Mitglied
  • Beiträge: 390
  • Dank erhalten: 149

ThLehmann antwortete auf Arduino Library für Jeti EX Eigenbau-Telemetrie

Posted 08 Dez. 2017 18:44 #355
Hallo Bernd,

mir ist es jetzt schon mehrfach passiert das durch Umstellung der Sensoranzahl oder Umsortierung (Entwicklungsphase) die Sensorwerte im Sender neu zugeordnet werden müssen. Leider folgt daraus auch eine neue Sortierung der Anzeige, alles sehr umständlich. Um dies künftig zu verhindern habe ich mir gedacht das die SensorId (heute 1-31) einfach Gruppenweise anordnen zu können.
Mal exemplarisch:
0x10 Drehzahl
0x11 max Drehzahl
0x12 gesamt Anzahl Umdrehungen

0x20 Restvolumen
0x21 Flow
...

Somit wäre die Änderung einer ID völlig ohne Rückwirkungen auf anderen Sensor ID's.
Ist meine Idee realistisch oder spricht etwas dagegen, was meinst Du ?
immer schön vorsichtig landen
Gruß, Thomas
Last Edit:08 Dez. 2017 18:45 von ThLehmann
Letzte Änderung: 08 Dez. 2017 18:45 von ThLehmann.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Sepp62
  • Sepp62's Avatar Offline Autor
  • Elite Mitglied
  • Elite Mitglied
  • Beiträge: 294
  • Dank erhalten: 153

Sepp62 antwortete auf Arduino Library für Jeti EX Eigenbau-Telemetrie

Posted 08 Dez. 2017 19:10 #356
Hallo Thomas,

das sollte einfach so funktionieren. Ids müssen nicht fortlaufend sein. Du legst sie in der Sensordefinition fest, wie es Dir gefällt.

VG Bernd
von Sepp62

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • ThLehmann
  • ThLehmann's Avatar Offline
  • Platinum Mitglied
  • Platinum Mitglied
  • Beiträge: 390
  • Dank erhalten: 149

ThLehmann antwortete auf Arduino Library für Jeti EX Eigenbau-Telemetrie

Posted 08 Dez. 2017 19:22 #357
Hmm, dann habe ich Dein Konzept wohl doch nicht verstanden ... sah es bisher so das die SensorId NUR 1-32 sein darf, und die Reihenfolge in der Tabelle (progmem) durch SensorMapper referenziert wird.

void JetiExProtocol::InitSensorMapper( JETISENSOR_CONST * pSensorArray )
{
// map sensor id to index to give quick access by sensor ID
int i;
m_nSensors = 0;
m_pSensorsConst = pSensorArray;
memset( m_sensorMapper, 0, sizeof( m_sensorMapper ) );
for( i = 0; i < MAX_SENSORS; i++ )
{
// get sensor id and check for end of array
JetiSensorConst sensorConst;
memcpy_P( &sensorConst, &m_pSensorsConst, sizeof(sensorConst) );
if( sensorConst.id == 0 )
break;

hier sehe ich eine Zuordnung von SensorId zum Eintrag in der Tabelle
if( sensorConst.id < sizeof( m_sensorMapper ) )
m_sensorMapper[ sensorConst.id ] = i;
m_nSensors++;
}
}
immer schön vorsichtig landen
Gruß, Thomas
von ThLehmann

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Sepp62
  • Sepp62's Avatar Offline Autor
  • Elite Mitglied
  • Elite Mitglied
  • Beiträge: 294
  • Dank erhalten: 153

Sepp62 antwortete auf Arduino Library für Jeti EX Eigenbau-Telemetrie

Posted 08 Dez. 2017 19:31 #358
Ich kann mich natürlich täuschen, aber es ist so gedacht, dass beim Init des Sensormappings durch das Sensor-Array marschiert wird und in der Mapping-Tabelle für jede ID der zugehörige Index auf das Array hinterlegt wird. Damit kann man über die ID schnell ins Array greifen. Wäre die ID= Index hätte ich mir den Zirkus sparen können. Natürlich kann da irgendwo ein Fehler drin sein, aber probier es halt einfach mal aus.

Natürlich entspricht der höchste ID-Wert dem Wert von MAX_SENSORS. Aber wenn Du Speicher hast, kannst Du den Wert ja erhöhen. Natürlich kann auch da irgendwo ein Fehler sein, also würde ich den Wert erst mal so lassen und probieren, ob es prinzipiell geht.
von Sepp62

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Micha
  • Micha's Avatar Offline
  • Premium Mitglied
  • Premium Mitglied
  • Beiträge: 130
  • Dank erhalten: 3

Micha antwortete auf Arduino Library für Jeti EX Eigenbau-Telemetrie

Posted 27 Feb. 2018 11:19 #359
Hallo

Ich glaube ich habe in der Library vom Bernd noch einen Bug gefunden!
Wenn man Werte zwischen -1 bis -2 angezeigt haben möchte,
werden keine Werte am Sender angezeigt! (bzw. nur Blinkende)
Habe das auch mit dem beiliegenden Beispiel ausprobiert!

jetiEx.SetSensorValue( ID_VAL11, -1 );
jetiEx.SetSensorValue( ID_VAL12, -1.5 );
jetiEx.SetSensorValue( ID_VAL13, 1 );
jetiEx.SetSensorValue( ID_VAL14, 2 );
jetiEx.SetSensorValue( ID_VAL15, -2 );
jetiEx.SetSensorValue( ID_VAL16, demoSensor.GetVal(9) );
jetiEx.SetSensorValue( ID_VAL17, demoSensor.GetVal(10) );
jetiEx.SetSensorValue( ID_VAL18, demoSensor.GetVal(11) );

hat das von euch auch schon jemand bemerkt!

Oder kann das an der Sendersoftware (4.22 mit LUA) liegen?


Gruß Micha
von Micha

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Sepp62
  • Sepp62's Avatar Offline Autor
  • Elite Mitglied
  • Elite Mitglied
  • Beiträge: 294
  • Dank erhalten: 153

Sepp62 antwortete auf Arduino Library für Jeti EX Eigenbau-Telemetrie

Posted 27 Feb. 2018 11:28 #360
Dass der Wert -1 nicht angezeigt wird, ist bekannt. Es ist ein "Designfehler" in der Library. Der Wert -1 kennzeichnet den Zustand "Es gibt keinen Messwert".

Dass die Werte zwischen -1 und -2 nicht angezeigt werden, liegt daran, dass der Messwert ein Integer sein muss und Du durch die Angabe von -1.5 einen Rundungsfehler bekommst.

Float-Werte müssen über Integer-Werte und die "Precision" (=Nachkommastellen) in der Sensor-Definition übergeben werden. Man könnte die Library hier komfortabler machen, aber dazu bräuchte der Code in der "SetValue"-Funktion Zugriff auf die Sensor-Konfigurationsdaten. Da diese aber (meist) im PROGMEM liegen, wäre das sehr inperformant.

Daher muss der Anwender selbst für die Umwandlung sorgen. Hast Du die "Precision" 1, musst Du den Messwert * 10 nehmen, bei 2 mal Hundert.

VG Bernd
von Sepp62

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 1.098 Sekunden