Arduino Library für Jeti EX Eigenbau-Telemetrie

08 Dez 2017 18:44 - 08 Dez 2017 18:45 #355 von ThLehmann
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

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

08 Dez 2017 19:10 #356 von Sepp62
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

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

08 Dez 2017 19:22 #357 von ThLehmann
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

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

08 Dez 2017 19:31 #358 von Sepp62
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.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.118 Sekunden

Impressum