fesch / canze Goto Github PK
View Code? Open in Web Editor NEWTake a closer look at your ZE car
Home Page: http://canze.fisch.lu
License: Other
Take a closer look at your ZE car
Home Page: http://canze.fisch.lu
License: Other
The Energy to full needs to be removed from the charging screen. This was a misinterpretation in the data streams. We have not found an "Energy to full" field yet. Has anyone?
Suggestion from Alexander: My suggestion would be to have a Setting in the App called "Safe Driving Mode" that would be enabled by default and prevents button operation when moving.The user can disable "Safe Driving Mode", after getting a big disclaimer.
by @avataranedotas: Nissan Leaf records the number of times it has charged, level2 and quick
solmoller:
(...) And I rarely get a sane temperature reading on the charging screen
yoh-there:
The sane part come form the Fluence ZE having only 4 compartment sensors instead of 12 and I have not made Zoe/Fluence variants. Your first 4 values should be "sane", but I would love to hear if the ARE sane!
solmoller:
I've had sane results from sensors 7 and 12, but I think that it could be just random numbers now.. Any suggestions on how to dig out Fluence battery temps? Henrik
yoh-there:
Sure! According to Alexandre, the Fluence's temperatures are given with request https://docs.google.com/spreadsheets/d/1p_zEgy8RqvTV79mT4HFdyKinz3l3q-WlECp_W2ymePM/edit#gid=651307834 79b/7bb, request 0x2104/0x6104 (same as Zoe), bit positions 32, 56, 80, 104, and an average in 12 Not that this is the same as the first 4 temperatures in the Zoe, so i would expect the first 4 to be right, and the next 8 to be nonsensical. Somebody should really integrate Alexandre's work in the main spreadsheet. What would be great if we then create two initialization variants of the Fields class. Note that there is a "car" column (Fluence/Zoe/Both) in the spreadsheet, so it is tedious, but not hard.
fesch:
That right. I've already prepared the settings activity to let the user chose his "car" (Zoe or Fluence for now), so this deployment should not be that hard.
Meanwhile i found the same - but I am not sure we draw the same conclusion: Zoe Battery T1 I read as 7bb.6104.32, Fluence I'd presume is 7bb.2104.32 Will test shortly
yoh-there:
Nope, 21 is the request code, 61 the answer. The app uses only the reply code and uses internal tables to send the proper request.
solmoller:
Ah, never mind, I see in the Fields.java, that it may be me misreading the spreadsheets
(...)
Oh, Henrik, I think I found it. For the Zoe, the temperatures have an offset of 40, so the real values can go from -40 to 215 ;-) The Fluence ZE does not have those offsets. I was looking at your values (your email of sept 14) and it completely makes sense. At that moment, your 4 compartment temps were 21, 20, 19, 19. So yes, we do need to work in the initialisation of Fields.
We are going to have a lot of people testing this app with various dongles. Apart from a list of known good/bad dongles in the hardware section on the wordpress site, we could add a test to the setup menu.
I suggest adding a button at the end of the BT setup: 'Test'. Pressing it makes the app issue
ATZ
We might go as far as to do some speed testing, but that is outside what I can describe
Henrik
The idea is to move the versions from the code and
activity_test.xml -> activity_test_x10.xml
TestActivity.java -> TestX10Activity.java
To avoid further name clashes, I propose to always include what is tested in the name.
As more developers join in, needing a bit of a playground, I also propose to create a new screen with will contain all test buttons and move those out of the way of the main screen.
On my S3, when I run the driving screen, things freeze (BT led not flashing on the dongle for quite a while, at least 10 seconds or more). Could this be a time out? I have a feeling we need to include a time out value defined at al filters as some raw packets flow very fast, others very slow.
I could do the analysis per frame type if we agree?
ISO-TP sequences should have a time out in the order of 100 ms.
I will fix that in "charging".
Issue reported by "kaimaik" through PM
I installed the version 2015.09.27 and 2015.10.01 on both my HTC One android 5.1.0 and a tablet android 4.4.2 .
For both CanZe versions, the device displays "not connected" although the the bluetooth connects.
When pushing the key for settings, version 2015.09.27 crashes whereas the version 2015.10.01 displays: not allowed while driving. Not possible to enter the settings menu.
No way to make those versions work.
Version 2015.09.20 however, is working fine, except for the leafspy, then CanZe also crashes.
Any ideas how to solve the problem?
When the app runs in the background it keeps trying to communicate with the OBD - fine, but it should stop complaining about the missing connection on top of other apps.
Need to reformat the graphical representation in Alexandre's sheet to the formal description in the main sheet. Beware of proper bit positions, these are not always correct in the table headers!
By mail, MH
@fesch : I get no grip on wat is saved between screens in Android and what not. Can you enlighten me a bit?
While the ideal solution would be to get this from the navigation system, I don't think we will be able to get that from the main bus. Getting it from google maps would be an option, but I assume it is fairly complicated to do and would require an internet connected device (some people just add a cheap non connected tablet to their car).
A quick, poor man's solution would be to enter the distance to travel in the app, and using the odometer (so we know the actual distance to travel) and the actual battery status, calculate the remaining km's on arrival.
The text based pages do not round displayed numbers - creating some screens that sometimes are just the speed and nothing else, as the speed may have 10 decimals
Request MH via email.
Personally (JM) I feel a "heat map" as @solmoller suggested, clicking through to the "coldest" and "hottest" cells / cell compartments would suffice, but that's me.
I think this could and should be combined with issue #33
I think that some of the ELM commands can be issued only once and do not need to be resend on each request, so putting them in the init method could speed up the polling.
I will investigate on this ...
Bug found (and fixed) in the ELM driver, that removed the first payload byte. Probably caused my miscounting startbit for single frame UDS messages, while non-UDS messages are very often FIRST/NEXT (where the bug AND the miscounting was not present.
While the issue is closed in the code, it needs to be double cecked in the spreadsheet and in the initialisation of the Fields class, so I am leaving this open.
Rationale: On the fora, often there is a mention of a software update of a module (recently the BCB and the airco) and dealers seem to not always install the latest stuff. The impression I get is they get an advisory when they report in your car at Renault but they don't always follow it. After all, it's an advisory. Better to simply KNOW.
Alexandre supplied me with the proper commands. I will check them out and implement those if they work, preferably for all 16 (for the Zoe) ECU's. I would appreciate if a Fluence owner could check if all 16 are present. See the spreadsheet for all the ECU adresses.
This would be thrilling, and also negating the need for an i907 a bit.
It is especially important to be able to reset the BCB (CAN ID known now!), as it can completely disable the car when it goes in error. Unfortunately, the BCB is the only device that is not included in the i907, so we cannot record what happens with a reset. We will try to log a BCB reset at a friendly garage.
The application starts, but does not connect to my Konnwei. When going into the setting screen, the app crashes.
Not implemented as I wanted to be sure first: shouldn't, in case of a character not being available (closing brace line 347), control be released to the OS, i.e. through
SystemClock.sleep(2);
I know sleep should at all times be avoided on a UI thread, but this is not running in a UI thread I think.
Maybe you have already, but I don't think I can see/change that. Anyway, I did "make" his empty page. I will email his regular email address to you.
By AM
While previously tested, the status of the charging plug hatch seems off in the charging screen. Need to investigate.
The latest build does not work on my LG Optimus 2X stock rom. There is no connection established and when I enter settings the app crashes.
Running the 2015.09.20 build, settings and connection works. The Leafspy page crashes in this version, but the charging page works just fine.
Reported by MH (512MB RAM tablet, not much, but a great tablet for CanZe only, about 50 euro's)
This happened today twice within some minutes of the start :-/
Lacking enough Android experience to pick this up myself: we might want to implement some sort of optional, detailed logging of the traffic, especially with the ELM driver, as people connect devices beyond our control and debugging is hard anyway (especialy with Studio not running connected to the phone, which is often very inconvenient for us, and impossible for the casual user).
List of paired bluetooth devices now tries to display the alias names. Needed as most dongles announce themselves as "OBD2". Now, you can give them meaningful names in Android, and see those names in the settings field.
Request to add brake pedal position to driving screen.
In the ELM327.java the address for the TCU is wrong, it should be 7DA instead of 7CD
On my mako (Nexus 4) under Cyanogenmode 12.1, launching the LeafSpy clone activity in CanZE, it always crashes.
I use a Konnweii 902 ELM327
Waiting for more details
By mail, MH
@fesch : How to approach this (we are obviously talking text oriented screens)? New layouts per device seems a bit overdone. Can the fonts be made relative to the screen size?
MH suggests a setting but I think that is "mêh"
By AM: JM: I am not sure this is THE answer, but it seems you can get the inverter temperature from the PED (see sheet 1) and I suspect that being the main driver for the fan. Also, from what I read on one of the forums, for a Fluence another good strategy might be: check the SOC and charging current. When charging is finished, simply disable the charger for a minute. Note this will not avoid the fan being engaged, but at least it will stop running when no longer needed.
May I suggest to add an optional parameter "cycles" to addListener, being an integer, stating per how many cycles this field should be actually queried. Rationale is that i.e. cell temperatures vary very slowly and need to be queried only once per, say 10 cycles. This will speed up the updateing of more fluid fields.
Well are having people opening bugs with outdated builds.
I suggest we follow http://stackoverflow.com/questions/7607165/how-to-write-build-time-stamp-into-apk
And add a build date to the GUI under settings - this will allow normal people to communicate the version they are having issues with. It should also lead them to update the app before logging issues
The code appears simple:
try{
ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), 0);
ZipFile zf = new ZipFile(ai.sourceDir);
ZipEntry ze = zf.getEntry("classes.dex");
long time = ze.getTime();
String s = SimpleDateFormat.getInstance().format(new java.util.Date(time));
zf.close();
}catch(Exception e){
}
Are we interested? https://www.openvehicles.com If so I think somebody should spin-off as this cannot be integrated in CanZE. opinions please.
I think the response timeout of sendAndWaitForAnswer should be made frame ID dependent, i.e. frame repeat time + 20ms for non ISO-TP frames, and 100ms for ISO-TP frames). It would improve performance further in the situation a timeout does occur.
In theory, it could also be used to control the query rate of different frames for the Due based devices, though there it competes with "skips".
IMHO a low priority, high impact enhancement, as it affects the spreadsheet, ELM, Field, Fields and possibly the Due devices.
For my tests with the X10 data I switched back to my Due as it gives me nearly real-time data for the free frames.
I've added this issue - OK, it is not really an issue - to not to forget to continue digging into this direction to.
For certain cases the ELM is fine, but for anything that has to be show in real-time it is of no use.
By mail, MH
Is it possible to show an on/off indicator for the
Just a nice to have
I used CanZE on a 20 km drive today, and had a very strange experience.
I was using cruise control, when suddenly the cruise control disables and the speedometer reads 127 km/h for maybe a second before it returns to actual speed, but without cruise control enabled.
This happened a total of three times, and I noticed the odometer and all driving data had been erased after these incidents.
A few things were different in my set up. The phone was connected to both rlink and elm327 via bluetooth.
I was showing the driving info screen, but had the app in the background as i was using Spotify.
I think it happened when the phone went into standby all three times, or at least a little while after the phone entered standby.
The phone is a LG G4. The ELM is a ver 1.4 knock off China adapter. Android 5.1.
The driving screen is almost ready, but Torque does not show and the progress bars for pedal and ccPedal do not work.
Note: in the driving screen the indicated speed is the UNCORRECTED, REAL speed. Use at your own risk re. speeding tickets.
In the Charge section it would be very nice if we could have a time plotted chart of the control pilot value, which would be plotted during a charge session, (and ideally also be saved until the next charge session starts).
This way we can have a "peek" into what is happening during a the smart charge process, or load balancing process, if present on a particular charger.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.