• L'Assemblée Générale du Prius Touring Club aura lieu le 7 décembre 2024 du côté de Rennes. Si vous êtes adhérent renseignez-vous ici.

elm327 BT / Android

  • Initiateur de la discussion Initiateur de la discussion priusfan
  • Date de début Date de début
Oui.

Mon point de vue concerne un utilisateur-conducteur (écopilote ?)

Dans Pcm actuel, je ne m'intéresse qu'à 3 d'entre elles pour conduire, ampères, % accélérateur_ou_frein et tr/mn. Et à tour de rôle. Il est d'ailleurs intéressant que les "aiguilles" de % d'accélérateur et/ou ampères bougent dans le même sens que le pied (pour acquérir un automatisme contrairement par ex au &£$!%* levier de marche AV/AR)

L'accélérateur seulement pour les glides donc dans la zone 0 à 1% ! Le reste c'est purement informatif. Quoi que en mode plug-in jusqu'à 30-50% doit être utile.


Ampères ou Watts c'est proche. Probable qu'en plug-in ce seront des watts qui fixent les limites. (20 kW selon pEEf sur Priuschat serait la limite maxi du boost-converter)

Pour ce qui est de la couleur. Pour les chiffres c'est plutôt décoratif. Par contre l'arc de secteur en rouge ou vert pour les ampères_watts ça doit être perçu, surtout si le secteur a assez de surface (donc très expansé sur le premier %).
Moins évident changer de couleur pour les tr/mn quand par exemple on dépasse 3500-4000 tr/mn, le thermique fait du bruit et cela s'entend ?
 
[Mode HS On]

Un PC vraiment mini.....

http://www.blogeee.net/2011/03/toradex-xiilun-le-plus-petit-pc-du-monde/#more-18131

5511615801_27889d586b.jpg


Reste à savoir quel système d'exploitation (Androïd ?) on peut mettre dessus pour le faire tourner dans la Prius avec éventuellement affichage sur l'écran de la Prius (la solution de POnt Vert sans son 'énorme PC'

[Mode HS Off]
 
Pour ce qui est de la couleur. Pour les chiffres c'est plutôt décoratif. Par contre l'arc de secteur en rouge ou vert pour les ampères_watts ça doit être perçu, surtout si le secteur a assez de surface (donc très expansé sur le premier %).
Moins évident changer de couleur pour les tr/mn quand par exemple on dépasse 3500-4000 tr/mn, le thermique fait du bruit et cela s'entend ?

Va falloir que je synthétise tout cela. Pour l'instant, j'ai fait des trucs simples et l'écran de mon téléphone est petit, c'est un HTC Hero (je vais changer prochainement mais pas en neuf !).
 
[Mode 1/2 HS On]

C'est de la bombe ATOM...ique donc théoriquement il pourrait supporter du Windaz sauf qu'ils parlent de Linux (eh, c'est moins payant). Android je ne crois pas.
Stockage sur µSD, pas con, ça va aujourd'hui jusqu'au moins 16GB.
Avec Windaz il pourrait servir à faire tourner le PCM sauf que pour l'affichage sur MFD il faudrait trouver un truc convertissant le signal HDMI/DVI en Video Composite NTSC, ou en VGA (convertisseurs VGA / NTSC acompatibles avec le MFD de la Prius existent et ont été testés). Sinon l'affichage sur un écran 4,5-5 pouces avec entrée DVI ou USB (priusfan en avait un comme ça).

Je pense que la voie d'avenir se situe plutôt du coté des devs sous Android/BT. On a un pléthore d'appareils qui supporteront ça avec de multiples possibilités d'affichage :
Archos 32 en stand alone ou alors sur le MFD de la Prius
Divers smartphones, à partir de 3,2" de diagonale d'écran c'est lisible.
Les Archos 5 Android BT peuvent se fixer aisément derrière le volant tout seuls ou sur une station d'acceuil.

[Mode 1/2 HS off]
 
et l'idée de son au passage de seuil vers le haut ou vers le bas, cela ne serait pas ergonomique ? plus la peine de lire, informé à l'oreille.

Je suis d'accord sur le fait qu' Android est en train de devenir une plateforme intéressante : entre les smartphones, les tablettes et les tablettes à clavier (genre laplop). Je n'ai toujours pas de téléphone Android, je reste avec le dernier smartphone Windows avec stylet, car j'adore écrire sur écran. Mais cela ne devrait pas tarder.

Et je devrais recevoir demain après moult embuches mon HP slate 500 sous Seven (32 bits) j'espère que cela marchera mieux que ma tablette sous Seven (64 bits). Cela me permettra d'apprécier PCM en attendant.
 
progress report

Les sons sont une bonne idée pour garder les yeux sur la route mais personnellement j'écoute très souvent de la musique en conduisant et ça me gênerait, je préfère vérifier une information (ex.: RPM sous 950 pour pouvoir passer en N et me reposer le pied) d'un coup d'oeil, facilité par le bon choix de la couleur.

J'ai fait un nouveau commit ce soir, il est maintenant possible de développer la partie PriusII en s'inspirant de ce que j'ai fait pour la PIII (même si j'ai pas encore tout décodé, tout le mécanisme est là). Je ne lis pas encore les fichiers xml pour les différentes config, mais niveau code tout est prêt pour (j'ai maintenant une bonne vision de la gueule que doivent avoir les fichiers xml). Je pense que développer la partie PII peut se faire en quelques heures.
La phase d'init vérifie à quelle version de HSD on a affaire (grâce aux infos de Planétaire et Priusfan) puis charge la bonne classe pour décoder (et utilise un jeu de commandes séparées).
Je me suis servi de la même archi pour faire la fenêtre de surveillance de la batterie HT, en fait chaque activity peut décider quelles commandes envoyer et quelle classe saura les décoder (d'ailleurs en écrivant ça je réalise que ce n'était sans doute pas nécessaire de faire une classe séparée pour la surveillance de batterie HT, j'aurai pu discriminer sur la commande).
J'ai aussi codé la suggestion de Priusfan pour gérer le cas où le ATS0 ne fonctionne pas (mais pas encore testé, j'attend de le faire avant de renvoyer le dongle bleu).
Pour finir, j'ai viré mes instanceof dans ResponseHandler pour revenir à de l'objet et laisser chaque famille de commande (init, manuelle ou liveMonitoring) implémenter comment la réponse doit être analysée.
 
ta production inspire le respect :jap::jap::jap:

juste un tout petit truc : quand tu détectes le type de watture, il faut gérer le cas où le ats0 n'a pas marché (on se traine donc des espaces).
j'imagine de doubler le test de la manière suivante

cmd.response_decoder_map.put("7EA03","2ZR_FXE.xml");
cmd.response_decoder_map.put("7EA10","1NZ_FXE.xml");

cmd.response_decoder_map.put("7EA 03","2ZR_FXE.xml");
cmd.response_decoder_map.put("7EA 10","1NZ_FXE.xml");


as tu testé la récup des infos batteries?
 
nope

Merci pour le compliment :-D

Si tu relis bien le code, tu verras que je fais le test du atsp0 juste avant la détection de HSD et que je vire les espaces le cas échéant; il n'y a donc pas besoin de tester contre une chaîne contenant des espaces (bon je dis ça mais j'ai pas encore testé, hein!).

Oui j'ai testé les voltages de la batterie HT (d'ailleurs j'ai encore un peu de code non committé) et ça marche 😎, maintenant je n'ai pas trop de billes pour interpréter mais le but est de surveiller à très long terme que je n'ai pas un groupe de cellules qui s'éloigne trop du pack...
 
Effectivement tu es extrêmement productif Guinness. Félicitations :jap:

@Planétaire,Priusfan,
Auriez vous l'équivalent P3 de code_p2_can_01.xls svp ?
 
@guinness:
"Si tu relis bien le code,..." , j'avais clairement annoncé ma méconnaissance de l'environnement, maintenant je l'ai prouvé ...😳

@parkerbol:
je te propose un skype pour détailler le modop et te filer un coup de main pour mettre en place les règles pour la p2.

enchainement:

  • recenser les infos qui t'intéressent, définir leur fréquence de collecte et les localiser.
  • adapter la séquence d' enchainement des commandes dans le dev android.
  • éxécuter l'appli en mode logging.
  • analyser les logs pour valider règles de décodage.
  • mettre en place ces règles.
 
Salut. je pars chez les beaux parents. Je te vois donc demain soir si ça te va.
 
nouveau commit

Ca y est, j'ai pu tester le machin bleu, j'ai bien fait car ça n'a pas marché du premier coup: tout d'abord une erreur de ma part de faire échouer l'init si ats0 ne répond pas "OK" (vu qu'on gère le cas ensuite, mieux vaut laisser glisser cette erreur); ensuite il y avait un piège 🙂sad🙂 dans les réponses du dongle bleu: il rajoute un espace avant le '\n', ce qui nous fait donc des lignes à 29 au lieu de 28.

J'espère qu'on n'aura pas d'autres soucis avec d'autres dongles.
Personnellement je suis très satisfait de l'OBDLink même s'il est plus cher et plus encombrant, j'adore notamment sa fonction de mise en sommeil sur détection de changement de voltage: plus besoin de m'inquiéter d'une éventuelle panne de batterie 12V si je n'utilise pas ma voiture pendant longtemps.
Les diodes sont aussi très utile pour la mise au point de mon programme: je sais si la socket bt a été fermée ou pas simplement en regardant la diode centrale.
Maintenant pour uniquement faire du monitoring live en conduisant (avec un programme déjà mis au point), le dongle bleu est probablement le plus adapté d'abord par son prix et ensuite par son encombrement, même s'il va plus de deux fois moins vite.
 
@guinness:
je partage complètement ton analyse en ce qui concerne la facilité d'usage du truc bleu et, évidemment, au sujet de l'interface obdlink, cette fameuse loupiote du milieu aide énormément pour les phases de mise au point (les zotres LEDs aussi d'ailleurs).


aujourd'hui, pas de prius.
demain oqp, (mais espère discuter avec parkerbol fin après-midi).
weekend prochain: déménagement entreprise et donc, semaine à venir, je serai aux abonnés absents en ce qui concerne ce dev...
 
Salut à tous,

J'ai pas pu logger dans le fichier après les modifs pour la p2 (CommandScheduleur.java else if 1NZ ...). En effet, le fichier est bien initialisé mais reste vide. J'ai testé deux fois et reparcouru le code et j'ai pas bien compris pourquoi ...

En EV et en mode console sur BT, j'ai sorti ça :
Code:
atsh 7e2	Received (148ms): OK
21c3		Received (355ms):
		7EA 10 27 61 C3 3F FF 0F A0
		7EA 21 00 00 3F FF 0F A0 00
		7EA 22 00 00 00 00 00 00 48
		7EA 23 99 35 94 00 80 00 43
		7EA 24 41 3E 3F 6B 00 80 7C
		7EA 25 7C 49 4B 01 80 00 00
21c4		Received (241ms):
		7EA 10 11 61 C4 00 21 00 6B
		7EA 21 47 43 62 06 04 7F 80
		7EA 22 FF 20 00 00 00 00 00
atsh 7e0	Received (189ms): OK
0104		Received (131ms):
		7E8 03 41 04 00
0105		Received (235ms):
		7E8 03 41 05 39
0144		Received (169ms):
		7E8 04 41 44 2C 3F
Si vous avez une idée ...
 
bravo!!!
cela me semble vraiment excellent.
pasdebol :-D, je bosse encore demain et ne serai donc pas dispo pour approfondir d'ici qqs jours.
je pense faire une pose vers le milieu de la semaine et je te proposerai un décodage; d'ici là, continue à élargir des requêtes.

ps: entretemps, suite à déménagement entreprise, je dois paramétrer tous les VPN...
 
Pas de pb Priusfan, je vais toaster quelques lignes pour voir où ça se situe et je vais peut être faire un logcat.
 
Cette fois c'est bon j'ai une log qui tient la route 😀
@Priusfan, je l'ai mise sur ton ftp ../parkerbol/p2_2011-03-25_161748.txt

Pour planétaire :

Code:
16:18:01:001 Sent: ATSH 7E0	Received (81ms): OK
16:18:01:106 Sent: 0104	Received (87ms): 7E8 03 41 04 00 
16:18:01:209 Sent: 0105	Received (93ms): 7E8 03 41 05 74 
16:18:01:304 Sent: 0106	Received (89ms): 7E8 03 41 06 80 
16:18:01:425 Sent: 0107	Received (114ms): 7E8 03 41 07 AD 
16:18:01:516 Sent: 010C	Received (85ms): 7E8 04 41 0C 00 00 
16:18:01:599 Sent: 010D	Received (76ms): 7E8 03 41 0D 00 
16:18:01:691 Sent: 010E	Received (85ms): 7E8 03 41 0E 8A 
16:18:01:785 Sent: 010F	Received (87ms): 7E8 03 41 0F 46 
16:18:01:879 Sent: 0110	Received (87ms): 7E8 04 41 10 00 06 
16:18:01:984 Sent: 0111	Received (97ms): 7E8 03 41 11 25 
16:18:02:087 Sent: 0115	Received (95ms): 7E8 04 41 15 17 FF 
16:18:02:181 Sent: 0124	Received (88ms): 7E8 06 41 24 81 2A 6A B1 
16:18:02:450 Sent: 012E	Received (260ms): NO DATA
16:18:02:701 Sent: 0132	Received (244ms): NO DATA
16:18:02:781 Sent: 0133	Received (73ms): 7E8 03 41 33 60 
16:18:02:865 Sent: 013C	Received (79ms): 7E8 04 41 3C 0F 9A 
16:18:02:959 Sent: 013E	Received (89ms): 7E8 04 41 3E 10 6C 
16:18:03:051 Sent: 0142	Received (85ms): 7E8 04 41 42 36 17 
16:18:03:151 Sent: 0143	Received (93ms): 7E8 04 41 43 00 00 
16:18:03:242 Sent: 0144	Received (83ms): 7E8 04 41 44 80 00 
16:18:03:351 Sent: 0145	Received (102ms): 7E8 03 41 45 00 
16:18:03:443 Sent: 0146	Received (83ms): 7E8 03 41 46 3B 
16:18:03:525 Sent: 0147	Received (76ms): 7E8 03 41 47 77 
16:18:03:621 Sent: 014C	Received (84ms): 7E8 03 41 4C 25 
16:18:03:890 Sent: 0153	Received (259ms): NO DATA
16:18:04:000 Sent: 2124	Received (103ms): 7E8 06 61 24 81 32 6A A7 
16:18:04:100 Sent: 2130	Received (94ms): 7E8 03 61 30 00 
16:18:04:350 Sent: 212E	Received (244ms): NO DATA
16:18:04:430 Sent: 2133	Received (73ms): 7E8 03 61 33 60 
16:18:04:690 Sent: 2132	Received (254ms): NO DATA
16:18:04:782 Sent: 2131	Received (85ms): 7E8 04 61 31 00 00 
16:18:04:878 Sent: 213E	Received (91ms): 7E8 04 61 3E 10 68 
16:18:04:975 Sent: 213C	Received (89ms): 7E8 04 61 3C 0F 91 
16:18:05:066 Sent: 2147	Received (85ms): 7E8 03 61 47 77 
16:18:05:160 Sent: 2146	Received (89ms): 7E8 03 61 46 3B 
16:18:05:249 Sent: 2145	Received (83ms): 7E8 03 61 45 00 
16:18:05:343 Sent: 2144	Received (85ms): 7E8 04 61 44 80 00 
16:18:05:487 Sent: 2143	Received (138ms): 7E8 04 61 43 00 00 
16:18:05:603 Sent: 2142	Received (110ms): 7E8 04 61 42 36 17 
16:18:05:866 Sent: 2141	Received (261ms): NO DATA
16:18:05:961 Sent: 214E	Received (88ms): 7E8 04 61 4E 00 00 
16:18:06:049 Sent: 214D	Received (88ms): 7E8 04 61 4D 00 00 
16:18:06:150 Sent: 214C	Received (94ms): 7E8 03 61 4C 25 
16:18:06:415 Sent: 2153	Received (260ms): NO DATA
16:18:06:506 Sent: 21B3	Received (84ms): 7E8 06 61 B3 20 A4 00 00 
16:18:06:625 Sent: 21B2	Received (113ms): 7E8 06 61 B2 0A E5 07 A0 
16:18:06:734 Sent: 21CD	Received (102ms): 7E8 10 0D 61 CD 00 00 00 80 
7E8 21 09 FF FF 1E 00 70 1D 
16:18:06:854 Sent: 21D6	Received (108ms): 7E8 10 09 61 D6 00 00 00 00 
7E8 21 00 00 00 00 00 00 00 
16:18:06:966 Sent: 21D6	Received (104ms): 7E8 10 09 61 D6 00 00 00 00 
7E8 21 00 00 00 00 00 00 00 
7E8 10 09 61 D6 00 00 00 00 
7E8 21 00 00 00 00 00 00 00 
16:18:07:049 Sent: ATSH 7E2	Received (76ms): OK
16:18:07:281 Sent: 21C3	Received (222ms): 7EA 10 27 61 C3 3F FF 0F A0 
7EA 21 00 00 3F FF 0F A0 00 
7EA 22 00 00 00 00 00 00 16 
7EA 23 9E 41 62 00 80 00 5D 
7EA 24 5C 66 6C 6F 00 80 7C 
7EA 25 7C 49 4C 08 80 00 00 
16:18:07:447 Sent: 21C4	Received (141ms): 7EA 10 11 61 C4 24 40 00 6C 
7EA 21 4A 5E 3F 06 04 80 80 
7EA 22 FF 20 00 00 00 00 00 
16:18:07:525 Sent: ATSH 7E0	Received (69ms): OK
16:18:07:592 Sent: ATSH 7E2	Received (59ms): OK
16:18:07:834 Sent: 21C3	Received (233ms): 7EA 10 27 61 C3 3F FF 0F A0 
7EA 21 00 00 3F FF 0F A0 00 
7EA 22 00 00 00 00 00 00 15 
7EA 23 9E 41 62 00 80 00 5D 
7EA 24 5C 66 6C 6F 00 80 7C 
7EA 25 7C 49 4C 08 80 00 00 
16:18:08:001 Sent: 21C4	Received (140ms): 7EA 10 11 61 C4 24 40 00 6C 
7EA 21 4A 5E 3F 06 04 80 80 
7EA 22 FF 20 00 00 00 00 00
 
effectivement, c'est un progrés...
ton séquencement est un peu étonnant:
on voit des salves de 7e2 21 c3 , 21c4 puis des salves pour 7e0...

pour ce qui est de 7e0, essaie de grouper tes requêtes pour les 01 et les 21 , càd au lieu de demander successivement
0104
0105
0106
0107
tu demandes: 0104050607
cela marche parfaitement pour la p3 et cela fait gagner un temps fou; tu peux en grouper 7 dans une demande.
 
Et il faudrait connaître la liste des infos qui vous intéressent.
De façon à faire des regroupement optimisés pour limiter le nombre de pid appelés.
En effet certaines infos sont accessibles dans plusieurs pid. Par exemple les tr/mn.
Et vus les temps de réponse il ne faut pas être trop gourmand.

A+ ;-)
 
Oui effectivement mais comme on avait dit dans un premier temps on balance tout à la suite, j'ai fait comme ça.
Les temps sont affreusement longs en BT.
Sinon Planétaire, la liste est .
 
En effet, le fichier est bien initialisé mais reste vide. J'ai testé deux fois et reparcouru le code et j'ai pas bien compris pourquoi ...
...
Si vous avez une idée ...

Bonjour à tous,
Je rentre de 10 jours sans PC, ça fait du bien (1800 bornes avec mon BT HSD Monitor 😎). C'est cool pour l'avancement PII, n'hésite pas à committer je te dirai si je vois des trucs louches.

Pour le fichier de log j'avais constaté ce genre de bug mais normalement avant de partir j'avais committé des corrections, mais c'est vrai que je ne joue pas trop avec cette fonctionnalité donc il y a peut-être encore des problèmes.

Je risque d'être pas mal pris par le boulot et ma saison d'activités sportives va bientôt commencer donc finies les longues heures à coder sur le PC :-D

Priusfan j'ai toujours ton dongle 😳, mea maxima culpa, je me bouge et te renvoie ça asap..
 
Grâce à toi, beaucoup de travail a été fait, et pour avancer encore plus je vais voir avec mon frère mon bout de code des aiguilles avant de l'implémenter.
Je n'ai pas eu besoin du logcat, mais la détection P2 n'avait pas marché la première fois, ce qui explique que ça n'écrivait pas.
Pour les synchros de code, je les avais faites, je ne commiterai ma partie que quand ce sera propre.
 
@guinness
tu étais à la recherche d'info sur le freinage; d'aprés adrianblack, elles seraient dispo avec les requètes suivantes (mais je n'ai pas vu le détail):

Regen Cooperation 07B02158 On or Off
Regen Requested Force 07B02148 ~0-720 NM
Regen Operating Force 07B02148 ~0-720 NM (Shows actual regen braking force)
Friction Brake Sensor 07B02107 0.00-4.50 (Shows actual friction braking amount)
Brake Pedal Force 07B02141 x.xx MPA (not exact, but close)
 
Pour les P2, dans le xls de berkeley, feuille "HV_ECU_CAN", pid 7e2 2 21 c3, on récupère des infos sur le freinage:

-Regenerative Brake Torque *4
-Request Regenerative Brake Torque *4
-Master Cylinder Control Torque *4
 
Merci Priusfan, effectivement j'avais aussi repéré ça dans le doc d'Adrian, ça sera pour plus tard...

Pour l'instant je me contente pas mal de l'implem actuelle, j'ai les infos qui me manquaient avec une appli classique style torque (je ne fais pas (encore?) d'analyse a posteriori 8))
 
Pages vues depuis le 20 Oct 2005: 316,284,095
Retour
Haut Bas