Priusfreunde.de

Willkommen, Besucher
Bitte anmelden oder registrieren.    Passwort vergessen?

Infodisplay für den P3: Hat jemand Interesse?
(2 Leser) hoffeck, (1) Besucher
Der Prius der dritten Generation, mit überarbeitetem Antrieb für mehr Leistung und noch weniger Verbrauch. Ab 2009 in Deutschland, 2012 erschien das Facelift-Modell. 2016 wurde er vom Prius 4 abgelöst
Zum Ende gehenSeite: 12
THEMA: Infodisplay für den P3: Hat jemand Interesse?
*
#456501
Aw: Infodisplay für den P3: Hat jemand Interesse? 05.03.2018 23:42 - vor 6 Jahren, 4 Monaten  
Da mir der Support beider Läden noch nicht geantwortet hat, habe ich mir selbst einen Parser gestrickt.
Wirft man etwa 80 Sekunden Log des (leider ansonsten kaum zu etwas brauchbaren) Busmasters dort hinein und packt die IDs in ein Histogramm, sieht man, was wie oft gesendet wird:

Ganz links stehen die Raddrehzahlen, um 0x300 werden die Intervalle deutlich länger.
ea827
Beiträge: 26
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Letzte Änderung: 05.03.2018 23:45 von ea827.
Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
 
#456842
Aw: Infodisplay für den P3: Hat jemand Interesse? 07.03.2018 12:52 - vor 6 Jahren, 4 Monaten  
Mit diesem Skript extrahiere ich aus dem Busmaster-Log die CAN-Pakete:
Code:

fid = fopen('p3_M1.log'); 
    i = 1;
   clear C;
   clear id_ext;
   id_list=(1:1);
   id_list2=(1:1);
  %// clear id_list;
 %//  clear id_list2;
   j=1;
   p=1;
  
    while ~feof(fid)
         line = fgets(fid);
         teststr = '***START DATE AND TIME';
         teststr2 = '***<Time><Tx/Rx><Channel><CAN ID><Type><DLC><DataBytes>***';
         
         if(strfind(line,teststr))
         t_start = sscanf(line, '%*s %*s %*s %*s %*u:%*u:%*u %d:%d:%d:%d'); 
         end 
         %//  M = sscanf(line, '%d');
         if(strfind(line,teststr2))
             line = fgets(fid);
            while ~feof(fid) 
             line = fgets(fid);
             M = sscanf(line, '%u:%u:%u:%u %*s %*s %x %*s %x %x %x %x %x %x %x %x'); 
              
             
             if (M(5) == hex2dec('230')) 
                 
                   if(M(6)>0)
                         id_ext(p,1)=M(6);
                   end 
                   
                   if(M(6)>1)     
                         id_ext(p,2)=M(7);
                   end
                         
                   if(M(6)>2)      
                         id_ext(p,3)=M(8);
                   end    
                         
                   if(M(6)>3)      
                         id_ext(p,4)=M(9);
                   end      
                         
                   if(M(6)>4)      
                         id_ext(p,5)=M(10);
                   end
                         
                   if(M(6)>5)      
                         id_ext(p,6)=M(11);
                   end
                         
                   if(M(6)>6)
                        id_ext(p,7)=M(12);
                   end
                   
                   if(M(6)>7)
                        id_ext(p,8)=M(13);
                   end      
                       
                       p=p+1;
                    end
             
             
              if (M(5)>37)   
          
                
                 C(i,1) = ((M(1)-t_start(1))* 3600)+((M(2)-t_start(2))*60)+(M(3)-t_start(3))+(M(4)/10000);
                 C(i,2) = M(5);
                 i=i+1;
                 
                 if ~ismember(M(5),id_list)
                   id_list(j)=M(5);
                    
                    j=j+1;
                   
                 end
                 id_list2 = sort(id_list)';
                 id_list3 = dec2hex(id_list2); 
               end
            end
         end    
  end
    fclose(fid);
%//clear('S'), tic, S  = parse('p3_M1.log'); toc



Die Werte plotte ich anschließend, so fällt schnell auf, wo wirklich ein Messwert steckt.
ea827
Beiträge: 26
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
 
#456913
Aw: Infodisplay für den P3: Hat jemand Interesse? 07.03.2018 20:05 - vor 6 Jahren, 3 Monaten  
Heute Abend bin ich mal eine Runde von knapp 10km gefahren und habe sowohl mit dem Hybrid Assistant als auch mit dem Laptop geloggt.
Um die auf der Fahrt zusammengekommenen 45MB durch den Wolf zu drehen braucht Matlab eine Weile, weshalb ich mal versuche, das Logfileauslesen und die Analyse der Daten auf zwei Skripte aufzuteilen, denn eigentlich muss ich diese große Tabelle ja nur einmal erstellen.

Auf gut Glück habe ich mal ID 0x49D ausprobiert, da tut sich etwas, was ich aber noch nicht zugeordnet bekomme. 0x49C liefert schon mehr Anhaltspunkte, man beachte die "Kirche" zwischen 400 und 600


Da werde ich mir wohl ein Infodisplay programmieren müssen
ea827
Beiträge: 26
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Letzte Änderung: 07.03.2018 20:07 von ea827.
Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
 
Zum Anfang gehenSeite: 12
Moderation: JoAHa, KSR1, Timico, Shar