FreeEMS Issues - EMStudio
View Issue Details
0000765EMStudioUser Interfacepublic2012-11-28 17:452013-02-07 13:17
BenFenner 
BenFenner 
normalminoralways
resolvedfixed 
AllAllAll
0.0.1-SNAPSHOT 
0.0.10.0.1 
Bug
0000765: Initial message(s) received with no ECU connected need to be better.
Right now with no ECU connected the error given is: http://i.imgur.com/XgUMz.png [^]

That needs to be re-worked into better message(s). It seems there are three things going on? Maybe more?

Serial Monitor Mode blocking things?
Wrong port/connection settings?
Potentially just wanting to use the app in offline mode?
Others?
No tags attached.
related to 0000743assigned malcom2073 Intelligent connection handling for SM/FW 

Notes
(0002436)
Fred   
2012-11-28 17:50   
Duplicate of 0000743 really, but they can both live.
(0002437)
Fred   
2012-11-28 17:53   
(edited on: 2012-11-28 17:54)
(18:39:14) Fred: BenFenner: four cases:
(18:39:20) Fred: can't open port
(18:39:27) Fred: can, but no answer/bogus data
(18:39:32) Fred: can, id on sm
(18:39:35) Fred: can, id on fw
(18:39:43) Fred: 3 errors should be distinct

Any/all could suggest offline, and "found sm" should assist user in changing over to fw as a primary default option.

Additionally, "lots of data/bogus data" could suggest checking serial settings and or that there might be some other random device attached. This is difference to silence on the line, which could mean unplugged physically if using rs232.

(0002448)
malcom2073   
2012-11-29 17:39   
Suggested responses/actions for the errors, please give suggestions!

Can't open port:
Error: Unable to open Com port XXXX. Check to ensure no other application has the port open and that the port exists!

Unable to open port due to another freeems app having it: (Yes, that works atm)
Error: Unable to open Com port XXXX. There is another freeems application holding the port open. Please close all other freeems related applications and try again.

Port opens, but no data:
Error: Unable to communicate with ECU, COM port unresponsive. Please verify it is plugged in, powered up, and all COM settings are set properly.

Port opens, bogus data:
Error: Unable to communicate with the ECU. Corrupt data received, please verify COM port settings.

Port opens, SM mode:
Error: "Serial Monitor mode has been detected! Please remove SM jumper and hit ok" (At this point, ok would send a SM reset command and try again)

Port Opens: FW:
Uh... this is ok!
(0002449)
Fred   
2012-11-29 18:56   
Port opens, bogus data:
Error: Unable to communicate with the ECU. Corrupt data received, please verify COM port settings.

This could do with something about an unrelated device being attached, otherwise excellent. Thank you for your efforts on this!
(0002453)
BenFenner   
2012-11-29 20:48   
Minor change suggested:


Port opens, but no data:
Error: Unable to communicate with ECU; COM port unresponsive. Please verify the ECU data cable is plugged in, the ECU is powered up, and all COM settings are set properly.
(0002454)
BenFenner   
2012-11-29 20:49   
Looks great from here. Don't forget the option to "Go Offline" if appropriate.
(0002455)
Fred   
2012-11-29 20:59   
Error: Unable to communicate with ECU; Serial port unresponsive. Please verify that the cable is plugged into the ECU, that the ECU is powered up, and that all COM settings are set properly.

All COM references should be wholly replaced with serial. Serial port is generic across all platforms. COM port is a windowsfuckism. Ditto COM settings, Serial settings, thanks.

OK, that's my 2c on wording. Hentai motivated it a few weeks back re Sean's loader.
(0002457)
malcom2073   
2012-11-29 22:12   
Should most every situation have Ok, Retry, and Load Offline Data options? Or just Ok and Load Offline Data.?
(0002458)
Fred   
2012-11-29 22:19   
What would OK mean? I think OK and cancel are out of place here. Each option should say what it'll do? is it valid to have the app open without it being either offline or connected? I like that it is. MTX isn't capable of that. How do you say to the user "this button will take you to a bare app with nothing happening" ?
(0002459)
BenFenner   
2012-11-29 23:03   
In my opinion we have three states, and I think the names of the states are confused a little bit. In my opinion, we have an Offline state, an Offline with data loaded state, and an Online state.

The options should be:

Retry Connection - Work Offline

If Work Offline is chosen, then maybe ask about loading data? Or just leave it up to the user... Or auto-load the last offline data successfully loaded?
(0002460)
Fred   
2012-11-29 23:59   
Maybe:

Retry
Load Data
Do Nothing

or similar.

I like the go straight to the point approach. Having a second pop up for loading offline data would be a pain, as would having to select it from a menu if that's what you want.
(0002463)
malcom2073   
2012-12-04 18:22   
Need to put this in generic terms. The lower level should throw one of several types of errors, and present a custom message to the user.
Here's the error type:

enum SerialError
{
    UNABLE_TO_CONNECT, //Unable to open the com port
    UNABLE_TO_AQUIRE, //Unable to aquire a lock on the com port
    NO_DATA, //Opened com port, but no respose to messages/no data?
    INVALID_DATA, //Opened com port, garbage data
    LOADER_MODE, //Opened com port, in loader mode
    NONE //No error
};

UNABLE_TO_CONNECT
Message:
"Error: Unable to open serial port XXXX. Please ensure no other application has the port open and that the port exists!"
Buttons:
Ok, Retry, Load Offline File

UNABLE_TO_AQUIRE
Message:
"Unable to open serial port due to another freeems application locking the port. Please close all other freeems related applications and try again."
Buttons:
Ok, Retry, Load Offline File

NO_DATA
Message:
"Unable to communicate with ECU, Serial port is unresponsive. Please verify your FreeEMS Board is plugged in, powered up, and all serial settings are properly set."
Buttons:
Ok, Retry, Load Offline File

INVALID_DATA
Message:
"Unable to communicate with FreeEMS, corrupt data received. Please verify serial settings, in particular double check the baud rate."
Buttons:
Ok, Retry, Load Offline File

LOADER_MODE
Message:
"Serial Monitor mode has been detected! Please remove SM jumper!"
Buttons:
Ok, Retry, Load Offline File


"Ok" would close the error and leave you with a blank slate. I see this as accepting the error and requesting no action.

"Retry" would retry

"Load Offline File" would pop up the file selection dialog for you to select an offline file.

This allows every error to have the same buttons, and maintain all the expected functionality for each case, yes?
(0002464)
Fred   
2012-12-04 19:42   
UNABLE_TO_AQUIRE >> UNABLE_TO_AQUIRE_LOCK

OR

UNABLE_TO_AQUIRE >> UNABLE_TO_LOCK

enum SerialError >> enum SerialState/SerialResponse

OR

Remove "NONE"

"Please verify serial settings, in particular double check the baud rate."
>>
"Please verify serial settings! (especially baud rate and parity.)"

"Unable to open serial port due to another freeems application locking the port. Please close all other freeems related applications and try again."
>>
"Unable to open serial port XXXX because another compatible application has locked it. Please close all other serial-port applications and try again."

"Serial Monitor mode has been detected! Please remove SM jumper!"
>>
"Serial Monitor mode has been detected! Please remove SM jumper and click retry!"
(0002466)
malcom2073   
2012-12-05 18:39   
Initially in d663440bf001cc784f20307039a2263829b63a88

Check it out and let me know. Leaving issue open until I make the SM mode reset/retry thing work.
(0002577)
Fred   
2013-01-29 13:19   
5b3814b1a0c38ca2485d39ae7b817edf75534095

Connect to device without FreeEMS on it gives:

./src/mainwindow.cpp:1658: QMessageBox::information(0,"Error","Something has gone serious wrong, one of the commands timed out during interrogation. This should be properly investigated before continuing");

Which doesn't really align with our previous discussions on this.

Device doesn't exist box for /dev/ttyUSBOMG is fine, though. Can't test SM right now.
(0002597)
malcom2073   
2013-02-02 18:00   
Try the different ones now: 4418f017e94e025e62c5d9202d51551fbbd0669b
(0002602)
Fred   
2013-02-07 13:17   
Good. I guess all that is left is sending a reset to the SM on retry before trying to talk to FreeEMS?