Git Product home page Git Product logo

msloggerbase's People

Contributors

gslender avatar scudderfish avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

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

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

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

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)

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.

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)

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)

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

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.

Editable dashboard

  1. Allow the user to freely position gauges
  2. Use multitouch to set start and end points of gauges. This modifies range and rotation in one go.
  3. All user to resize/overlap gauges

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.