msloggerbase's People
msloggerbase's Issues
Refactor Megasquirt.java
To be able to call "calculate(getRuntimeVars())" before calling "createTableEditors()".
From Dave: "Make the generated classes implement an interface rather than extend an abstract class. That way the interface definition can go in common_src of Normaliser and be exactly shared between the two applications. We may need another interface that is implemented by a class in MSLogger. This is the main Megasquirt class and the interface defines the useful utility methods that the generated classes use."
Add bar gauge type
Add a bar gauge which can be positioned horizontally or vertically, with a label. Gauge should change to warning/danger colours as appropriate
MSL sometime have big gaps in them, FRD are fine
Rotating the android device makes all gauges RPM
NPE in GaugeRegister.resetAll
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:200)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
at java.lang.Thread.run(Thread.java:1019)
Caused by: java.lang.NullPointerException
at uk.org.smithfamily.mslogger.widgets.GaugeRegister.resetAll(GaugeRegister.java:29)
at uk.org.smithfamily.mslogger.activity.MSLoggerActivity$ResetGaugesTask.doInBackground(MSLoggerActivity.java:1065)
at uk.org.smithfamily.mslogger.activity.MSLoggerActivity$ResetGaugesTask.doInBackground(MSLoggerActivity.java:1041)
at android.os.AsyncTask$2.call(AsyncTask.java:185)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
... 4 more
List of channels isn't complete and doesn't represent the full list of output data from the ECU
I see we've enumerated the list of Guage Configurations, but this isn't the list of available Output Channels... so this is something that needs to be fixed. TS actually gives you the full list of [OutputChannels] in the ini to select from. This list also contains no duplicate, which is present in the [Guage Configurations] list.
Create std_realtime dialog
Move "Table" to some sort of widget so it can be easily reused in regular dialog too
Some firmwares crash with division by zero in calculate function
Fuzzy matching unknown firmware
If a firmware signature is unrecognised, chop a character off the end (an limit matching) until a match is found, or we run out of characters
Comms stuff to write to ECU
Gauge positions reset when disabling edit mode
- Switch to gauge edit mode
- Swap a gauge for the main one
- Switch off GEM
- Gauges will reset to original positions
Create std_enrichments dialog
Create 3D table dialog
NPE in Connection.writeCommand
According to play store, a user got that exception. I'm not surprised because I get it a lot too. The loop in ECUFingerprint continue to run after a connection tear down, so the stream end up being null in writeCommand. I'm not sure of the proper fix.
Here is the stack trace:
java.lang.NullPointerException
at uk.org.smithfamily.mslogger.comms.Connection.writeCommand(Connection.java:335)
at uk.org.smithfamily.mslogger.comms.Connection.writeAndRead(Connection.java:352)
at uk.org.smithfamily.mslogger.ecuDef.ECUFingerprint.fingerprint(ECUFingerprint.java:125)
at uk.org.smithfamily.mslogger.ecuDef.ECUFingerprint.getFingerprint(ECUFingerprint.java:86)
at uk.org.smithfamily.mslogger.ecuDef.ECUFingerprint.run(ECUFingerprint.java:56)
at java.lang.Thread.run(Thread.java:1019)
Move "Curve" (chart + x/y bins) to some sort of widget so it can be easily reused in regular dialog too (and std_enrichments, etc)
Rework guages & indicators
The current implementation of gauges is too inflexible and needs nuking from orbit.
- An ecu defines a list of OutputChannels
- An OC is connected to an Indicator. This is a View subclass. It is given an area it can draw in. It maintains the min/max/warning/danger values. It does not draw itself
- An indicator owns a Renderer and delegates drawing responsibility to it
- There are many subclasses to Renderer for Text, Numeric, LED, Gauge, Bar, Histogram
- An Indicator can change Renderer at runtime
- (Optional) Additional data sources can throw extra OutputChannels into the mix, such as GPS, accelerometers, magnetometers etc
- (Optional) MSL logging becomes a dump of all available OutputChannels.
This will fix #109
Indicators sometime become all RPM's one after connecting to an ECU
I fixed part of that bug at some point but looks like it still happen. No where near as often but somehow either gauges get saved as RPM or some weird order of events make that happen. I should of been able to rule that out by trying to reconnect before resetting gauges. Next time, I will try that!
Log accelerometer data
Log data captured from any onboard accelerometer to the MSL file. It will need to be normalised to account for device orientation, probably could do that automatically if GPS is saying we're not moving, or from a menu item.
Painful reconnect
When connected to my MS3 on ASUS TF300T (android 4.0.3), if I disconnect and try to reconnect, it either won't work or will stay in "Verify MS" state for like 30 seconds.
IO_TIMEOUT doesn't seems to work
IO_TIMEOUT with the TimerTask thing in ConnectionManager doesn't seems to work. I tried 1000ms of IO_TIMEOUT and it still take a while (maybe 5-10 seconds ?) before MSLogger report the MS as disconnected after I unplug my MegaStim. I'm guessing we're getting stuck in a loop somewhere ?
Selectable colour schemes
From a comment on play.google.com :-
Pucci on Wednesday, August 29, 2012 at 14:38 Samsung Galaxy S (GT-I9003L) Version 4.2.2 Spanish
Really good APP for Logging display I have tested this soft in my pug 404 1979 with MS3+MS3X, it works fine, nice refresh rate. The gauges works really nice, fast respone, all the gauges can be customized so it is powerfull for cars without dashboard. cons: can not modify the colour scheme. I think it could be good for daylight change the scheme to another set of colours.
Probably need a 'light' scheme (black on white) and a 'night' scheme (red on black) as a minimum.
Bad Window Leak when using app for the 1st time
If you use app for 1st time (new users) and you don't have an ecu to connect to the app ungracefully crashes due to a bad window leak - MSLoggerActivity line 1330
This is due to Megasquirt service sending an UNKNOWN_ECU broadcast after the activity has been collapsed or something similar.
We need to review all the logic paths for how the app starts and shutsdown, including when connected first time, next time and with / without ECU connected.
Temp units in MSL are not reflecting app configuration
Multiple ECUThread created somehow
Attempt to use from thread'ECUThread:MS2Extra SerialGS26 ' when owned by thread 'ECUThread:MS2Extra SerialGS26
java.io.IOException: Attempt to use from thread'ECUThread:MS2Extra SerialGS26 ' when owned by thread 'ECUThread:MS2Extra SerialGS26
at uk.org.smithfamily.mslogger.comms.Connection.checkConnection(Connection.java:246)
at uk.org.smithfamily.mslogger.comms.Connection.flushAll(Connection.java:480)
at uk.org.smithfamily.mslogger.ecuDef.Megasquirt$ECUThread.getPage(Megasquirt.java:656)
at uk.org.smithfamily.mslogger.ecuDef.Megasquirt.getPage(Megasquirt.java:773)
at uk.org.smithfamily.mslogger.ecuDef.Megasquirt.loadPage(Megasquirt.java:751)
at uk.org.smithfamily.mslogger.ecuDef.gen.MS2Extra_SerialGS26.loadConstants(MS2Extra_SerialGS26.java:2050)
at uk.org.smithfamily.mslogger.ecuDef.Megasquirt$ECUThread.run(Megasquirt.java:517)
Finish edit table dialog
NPE in ConnectionManager.connect
Steps to reproduce:
1- Connect to MS
2- Unplug stim
3- Tap disconnect
4- Tap connect
5- Attempting to create second connection! will be printed in the log
6- Eventually that stack trace shows up and the app crash.
10-08 18:50:37.717: E/AndroidRuntime(17510): FATAL EXCEPTION: ECUThread:1349740230749
10-08 18:50:37.717: E/AndroidRuntime(17510): java.lang.NullPointerException
10-08 18:50:37.717: E/AndroidRuntime(17510): at uk.org.smithfamily.mslogger.comms.ConnectionManager.connect(ConnectionManager.java:143)
10-08 18:50:37.717: E/AndroidRuntime(17510): at uk.org.smithfamily.mslogger.comms.ECUConnectionManager.connect(ECUConnectionManager.java:1)
10-08 18:50:37.717: E/AndroidRuntime(17510): at uk.org.smithfamily.mslogger.comms.ECUConnectionManager.checkConnection(ECUConnectionManager.java:48)
10-08 18:50:37.717: E/AndroidRuntime(17510): at uk.org.smithfamily.mslogger.comms.ConnectionManager.flushAll(ConnectionManager.java:321)
10-08 18:50:37.717: E/AndroidRuntime(17510): at uk.org.smithfamily.mslogger.comms.ECUConnectionManager.flushAll(ECUConnectionManager.java:1)
10-08 18:50:37.717: E/AndroidRuntime(17510): at uk.org.smithfamily.mslogger.ecuDef.Megasquirt$ECUThread.run(Megasquirt.java:617)
Rotating android device while StartupActivity is open will create multiple StartupActivity on top of each other
MSL format needs updating
To track current TS behaviour the log file should have opening lines of
- Firmware
- Capture date
- Fields
- Units
The output data should also be rounded/presented as per [Datalog] section of the INI file
Live charting
Update the chart based upon the live data, not a logfile
Create std_constants dialog
ECU flags preferences generated on the fly from ecu flags in class
Finish edit curve dialog
MS3 CRC check
CRC32ProtocolHandler.check code is in comment and always return true instead because the commented code still doesn't work. Shouldn't take much to make it work tho.
Create std_warmup dialog
Editable dashboard
- Allow the user to freely position gauges
- Use multitouch to set start and end points of gauges. This modifies range and rotation in one go.
- All user to resize/overlap gauges
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.