TunerStudio für eigene Projekte
- Hemi
- Site Admin
- Beiträge: 113
- Registriert: Sa Jan 05, 2008 9:44 pm
- Wohnort: Korntal-Münchingen
- Kontaktdaten:
TunerStudio für eigene Projekte
Mahlzeit zusammen,
sind heure Leute an Bord, die TunerStudio auch bei ihren eigenen Projekten einsetzen?
Ich habe ein Verhalten, was ich mir nicht erklären kann und wollte erstmal fragen, bevor ich Romane schreibe
Danke Euch!
sind heure Leute an Bord, die TunerStudio auch bei ihren eigenen Projekten einsetzen?
Ich habe ein Verhalten, was ich mir nicht erklären kann und wollte erstmal fragen, bevor ich Romane schreibe
Danke Euch!
-
- Beiträge: 87
- Registriert: So Nov 13, 2016 5:14 pm
Re: TunerStudio für eigene Projekte
Definiere „eigene Projekte“
Also ich stimme damit meinen Wagen ab. Ist das jetzt ein eigenes Projekt oder gehts im Erweiterungen usw.?
Grüße
Also ich stimme damit meinen Wagen ab. Ist das jetzt ein eigenes Projekt oder gehts im Erweiterungen usw.?
Grüße
Seat Ibiza Cupra 2 - Allradumbau
2.0l 16V Turbo (ABF)
2017-2020: GTX30/76
2020- : Precision PT6466 Gen2
NG-Motorsport Zylinderkopf
02Q 6-Gang Getriebe aus S3 8P
KDFI 1.4 PnP - MS2/Extra 3.4.2
2.0l 16V Turbo (ABF)
2017-2020: GTX30/76
2020- : Precision PT6466 Gen2
NG-Motorsport Zylinderkopf
02Q 6-Gang Getriebe aus S3 8P
KDFI 1.4 PnP - MS2/Extra 3.4.2
- Hemi
- Site Admin
- Beiträge: 113
- Registriert: Sa Jan 05, 2008 9:44 pm
- Wohnort: Korntal-Münchingen
- Kontaktdaten:
Re: TunerStudio für eigene Projekte
Nein, das ist kein "eigenes Proejkt".
Eigenes Projekt: ein Stück Elektronik, was nichts direkt mit MS und Konsorten zu tun hat. Ich nutze es für die Konfiguration von meinem Breitbandlambda-Kontroller und für ein Luftmassenmesser-Adapter. Also was ganz anderes als MS/Speeduino und Konsorten.
Eigenes Projekt: ein Stück Elektronik, was nichts direkt mit MS und Konsorten zu tun hat. Ich nutze es für die Konfiguration von meinem Breitbandlambda-Kontroller und für ein Luftmassenmesser-Adapter. Also was ganz anderes als MS/Speeduino und Konsorten.
Re: TunerStudio für eigene Projekte
Ja ich nutze es für viele "eigene" Projekte.
Was ist dein verhalten?
Was ist dein verhalten?
Wer aufhört besser zu werden hat aufgehört gut zu sein
Alfa 156 GTA
Alfa 75 Race Car MS III
Alfa 164 V6 Turbo
Test MS II
Tunerstudio V3.0.60.61 Registered
MLog View V4.3.30 Registered
MLog View HD V4.3.30 Registered
Alfa 156 GTA
Alfa 75 Race Car MS III
Alfa 164 V6 Turbo
Test MS II
Tunerstudio V3.0.60.61 Registered
MLog View V4.3.30 Registered
MLog View HD V4.3.30 Registered
- Hemi
- Site Admin
- Beiträge: 113
- Registriert: Sa Jan 05, 2008 9:44 pm
- Wohnort: Korntal-Münchingen
- Kontaktdaten:
Re: TunerStudio für eigene Projekte
Moinsen.
Ich versuche es mal zu erklären, die INI vom Projekt habe ich angehängt.
Es geht um die Page 2, sie ist als zwei Arrays von uint16_t definiert, mit Faktor 0.001 und Offset 0. Also, wenn ich einen Wert von 1,123 haben will, sendet TS 1123 zur MCU. So weit so gut.
Ich setze einen Wert, sagen wir mal 1.234 (das gebe ich im CurveEditor ein), TS schickt dann 1234 zur MCU, ich schreibe das in die Konfig, alles super. Im Debugger sieht mein Empfangspuffer dann so aus:
Jetzt ändere ich diesen Wert (alt 1.234) auf 0, das klappt auch, Empfangspuffer sieht so aus:
Ich ändere den Wert wieder auf 1.234 und Empfangspuffer sieht so aus:
Alles richtig.
Wenn ich jetzt den Wert von 1.234 marginal ändere, auf sagen wir mal 1,172, dann sieht mein Empfangspuffer so aus:
Das bedeutet dann:
-> Offset ist 0, word(payload[4], payload[3])
-> Länge ist 1, word(payload[6], payload[5])
-> Wert ist 148, word(payload[8], payload[7])
Was macht er hier für ein Mist? Ich hätte erwartet, dass Länge 2 ist und der Wert dann 1172 ist...
Nach dem Schreiben in die Page habe ich dann 0.148 drin stehen, was natürlich falsch ist...
Hast Du eine Idee, was da schief läuft?
Danke Dir
Ich versuche es mal zu erklären, die INI vom Projekt habe ich angehängt.
Es geht um die Page 2, sie ist als zwei Arrays von uint16_t definiert, mit Faktor 0.001 und Offset 0. Also, wenn ich einen Wert von 1,123 haben will, sendet TS 1123 zur MCU. So weit so gut.
Ich setze einen Wert, sagen wir mal 1.234 (das gebe ich im CurveEditor ein), TS schickt dann 1234 zur MCU, ich schreibe das in die Konfig, alles super. Im Debugger sieht mein Empfangspuffer dann so aus:
Jetzt ändere ich diesen Wert (alt 1.234) auf 0, das klappt auch, Empfangspuffer sieht so aus:
Ich ändere den Wert wieder auf 1.234 und Empfangspuffer sieht so aus:
Alles richtig.
Wenn ich jetzt den Wert von 1.234 marginal ändere, auf sagen wir mal 1,172, dann sieht mein Empfangspuffer so aus:
Das bedeutet dann:
-> Offset ist 0, word(payload[4], payload[3])
-> Länge ist 1, word(payload[6], payload[5])
-> Wert ist 148, word(payload[8], payload[7])
Was macht er hier für ein Mist? Ich hätte erwartet, dass Länge 2 ist und der Wert dann 1172 ist...
Nach dem Schreiben in die Page habe ich dann 0.148 drin stehen, was natürlich falsch ist...
Hast Du eine Idee, was da schief läuft?
Danke Dir
- Dateianhänge
-
- tunerstudio.ini
- (3.65 KiB) 156-mal heruntergeladen
Re: TunerStudio für eigene Projekte
Hallo,
wieso er macht doch alles richtig.
Er tauscht im Byte mit Offset 0 das aus was sein muss.
Sieh dir mal 1234 Binär an
(Bit 15....Bit 0)
0000010011010010
So etzt sehen wir uns 1172 Binär an
(Bit 15....Bit 0)
0000010010010100
Also in den Bits 8-15 ändert sich nichts, die bleiben unverändert.
In den Bits 0-7 ändert sich was und bei der Zahl 1172 steht eben im Byte 0 148 drinnen.
Du musst es also so machen, das was TS dir sendet auf Offset 0 in deiner Tabelle schreiben.
Ich glaube man kann dieses Verhalten aber deaktivieren, tsWriteBlocks=off sollte bewirken das immer die ganze Variable / der ganze Wert geschrieben wird.
Er sollte dann für änderung von 1234 auf 1172 2 Bytes senden statt einem Byte.
Hoffe ist verständlich erklärt...
wieso er macht doch alles richtig.
Er tauscht im Byte mit Offset 0 das aus was sein muss.
Sieh dir mal 1234 Binär an
(Bit 15....Bit 0)
0000010011010010
So etzt sehen wir uns 1172 Binär an
(Bit 15....Bit 0)
0000010010010100
Also in den Bits 8-15 ändert sich nichts, die bleiben unverändert.
In den Bits 0-7 ändert sich was und bei der Zahl 1172 steht eben im Byte 0 148 drinnen.
Du musst es also so machen, das was TS dir sendet auf Offset 0 in deiner Tabelle schreiben.
Ich glaube man kann dieses Verhalten aber deaktivieren, tsWriteBlocks=off sollte bewirken das immer die ganze Variable / der ganze Wert geschrieben wird.
Er sollte dann für änderung von 1234 auf 1172 2 Bytes senden statt einem Byte.
Hoffe ist verständlich erklärt...
Zuletzt geändert von Alfagta am Fr Okt 04, 2024 8:26 am, insgesamt 1-mal geändert.
Wer aufhört besser zu werden hat aufgehört gut zu sein
Alfa 156 GTA
Alfa 75 Race Car MS III
Alfa 164 V6 Turbo
Test MS II
Tunerstudio V3.0.60.61 Registered
MLog View V4.3.30 Registered
MLog View HD V4.3.30 Registered
Alfa 156 GTA
Alfa 75 Race Car MS III
Alfa 164 V6 Turbo
Test MS II
Tunerstudio V3.0.60.61 Registered
MLog View V4.3.30 Registered
MLog View HD V4.3.30 Registered
- Hemi
- Site Admin
- Beiträge: 113
- Registriert: Sa Jan 05, 2008 9:44 pm
- Wohnort: Korntal-Münchingen
- Kontaktdaten:
Re: TunerStudio für eigene Projekte
Achtusch**sse...
Ja, das ist verständlich erklärt. Es sieht in der Tat so aus, dass wenn die Änderung nur marginal ist, dann wird nur LSB übertragen... wenn ich nämlich von 1.234 auf 1.333 ändere, dann funktioniert es.
Der Wert 1333 sieht binär dann so aus:
0000010100110101
Und da es im Vergleich zu 1234 eine Änderung im MSB bedeutet, werden zwei Bytes geschickt und meine Software merged es richtig in die Kennlinie...
Der Parameter tsWriteBlocks heißt nur, dass er die Werte "on block" schreibt, ohne eine Pause zwischen den einzelnen Bytes zu machen.
Ich habe heute Mittag eine Mail an Chris von EFI Analytics geschickt, mal schauen, was er dazu sagt.
Danke Dir auf jeden Fall!
Ja, das ist verständlich erklärt. Es sieht in der Tat so aus, dass wenn die Änderung nur marginal ist, dann wird nur LSB übertragen... wenn ich nämlich von 1.234 auf 1.333 ändere, dann funktioniert es.
Der Wert 1333 sieht binär dann so aus:
0000010100110101
Und da es im Vergleich zu 1234 eine Änderung im MSB bedeutet, werden zwei Bytes geschickt und meine Software merged es richtig in die Kennlinie...
Der Parameter tsWriteBlocks heißt nur, dass er die Werte "on block" schreibt, ohne eine Pause zwischen den einzelnen Bytes zu machen.
Ich habe heute Mittag eine Mail an Chris von EFI Analytics geschickt, mal schauen, was er dazu sagt.
Danke Dir auf jeden Fall!
Re: TunerStudio für eigene Projekte
Ja stimmt hast recht mit dem tsWriteBlocks, hab eben nachgelesen...
Da wartet er nicht auf das interWriteDelay sondern schreibt so schnell es geht.
Aber zu deinem Fall, TS macht alles eichtig nur du musst es in deinem uC korret handeln.
Es funktioniert alles wie gewünscht...
So mache ich das, funktioniert problemlos.
offs und len kommen aus dem Buff 2,3 sowie 4,5...
Gruß
Da wartet er nicht auf das interWriteDelay sondern schreibt so schnell es geht.
Aber zu deinem Fall, TS macht alles eichtig nur du musst es in deinem uC korret handeln.
Es funktioniert alles wie gewünscht...
Code: Alles auswählen
uint8_t *src = (uint8_t*)&BuffCmd[6];
uint8_t *dst = (uint8_t*)&cfg;
for (uint8_t i = 0; i <len; i++) {
*(dst+i+offs) = *(src+i);
}
offs und len kommen aus dem Buff 2,3 sowie 4,5...
Gruß
Wer aufhört besser zu werden hat aufgehört gut zu sein
Alfa 156 GTA
Alfa 75 Race Car MS III
Alfa 164 V6 Turbo
Test MS II
Tunerstudio V3.0.60.61 Registered
MLog View V4.3.30 Registered
MLog View HD V4.3.30 Registered
Alfa 156 GTA
Alfa 75 Race Car MS III
Alfa 164 V6 Turbo
Test MS II
Tunerstudio V3.0.60.61 Registered
MLog View V4.3.30 Registered
MLog View HD V4.3.30 Registered
- Hemi
- Site Admin
- Beiträge: 113
- Registriert: Sa Jan 05, 2008 9:44 pm
- Wohnort: Korntal-Münchingen
- Kontaktdaten:
Re: TunerStudio für eigene Projekte
Ja, ganz genau.
Dieses Verhalten, dass nur "Deltas" (so nenne ich es mal) übertragen werden, habe ich nirgends in den Dokus gelesen.
Habe es umgebaut und es geht.
Ich mache es ähnlichAlfagta hat geschrieben: ↑Fr Okt 04, 2024 8:36 am Aber zu deinem Fall, TS macht alles eichtig nur du musst es in deinem uC korret handeln.
Es funktioniert alles wie gewünscht...
So mache ich das, funktioniert problemlos.Code: Alles auswählen
uint8_t *src = (uint8_t*)&BuffCmd[6]; uint8_t *dst = (uint8_t*)&cfg; for (uint8_t i = 0; i <len; i++) { *(dst+i+offs) = *(src+i); }
offs und len kommen aus dem Buff 2,3 sowie 4,5...
Gruß
Code: Alles auswählen
uint16_t page_indentifier = word(payload[2], payload[1]);
uint16_t offset = word(payload[4], payload[3]);
uint16_t length = word(payload[6], payload[5]);
uint16_t value = word(payload[8], payload[7]);
if (length == 1)
{
uint8_t val = payload[7];
set_page2_value (page_indentifier, offset, &val, length);
}
else
{
uint16_t val = word(payload[8], payload[7]);
set_page2_value (page_indentifier, offset, &val, length);
}
und die Funktion zum Überschreiben:
Code: Alles auswählen
void set_page2_value (uint8_t page_indentifier, uint16_t offset, void* value, uint16_t length)
{
switch (page_indentifier)
{
case 2:
{
memcpy((uint8_t*)&input_maf + offset, value, length);
}
break;
}
}
Vielen Dank Dir für die Hilfe!