Here's the first version of the DashBoard plugin, made from the demo plugin from Dave.
Display Lat, Lon, COG, SOG from NMEA stream in a wxMiniFrame.
Fonts can be changed by user in global settings.
I created a basic DashboardInstrument class, that'll be expanded to handle:
- analog data display (done)
- compass
- "speedometer" view
- "wind" view
and maybe
- depth
- GPS status
- route overview
- chart overview
For now there's no way to change colors, I choose Blue ; might change. Maybe there'll be a way to manage colors in OpenCPN some day?
I also plan to create an option form to select instruments to display, reorder them, select NMEA fields...
The current right-button menu might change to a top panel button when it's more mature.
I choose to use a wxMiniFrame instead of the wxWindow used by Dave. It might change.
There'll be more patches as I complete any of the features I'm currently working on
great!
Having these informations displayed other than in the statusbar is one of the most requested features.
Despite of the fact that I personally do not have any programming skills, I wonder if it would be possible to integrate such things by using a wxSplitterWindow?
I guess many user would prefer this kind of integration because it is more like any other application they are familiar with. Maybe an additional icon in the toolbar to switch split screen on/off?
And how would the config options be integrated for modules in general and this one in particular?
I am asking because I am a great fan of giving the user the possibility to choose which options to use and which not.
Even without real testing (just looking at your screenshot) I am quite sure, that this a very useful plugin - no matter how it is realized in the end.
Note: Now that we've switched to git, I produce patches directly with git, These patches include notes and other usefull information for Dave & git processing.
If you've an error again, please provide output error file (.rej)
Location: SF Bay Area; Former Annapolis and MA Liveaboard.
Boat: Looking and saving for my next...mid-atlantic coast
Posts: 6,197
For consideration, when you get to instruments, don't forget things like rudder angle and autopilot information.
Or have some sort of full customization setup (per widget) so non-programmers can make their own instruments based on NMEA data e.g. similar to the way an excel chart object setup prompts you for info
Thank you for your help, installation seems to be good. But if I get the DashboardWindow, it is emty of data. My GPS is working fine (Network LIBGPS) and I have try with an other one, it is the same.
If it is usefull, I have put the details of installation. Here they are :
Congratulations SethDart, works fine, if I have a NMEA data stream.
jpiebrig's problem is most likely that gpsd doesn't provide such a stream. I can't get it working either with gpsd, but with a direct connection it works well.
I shut down gpsd and connected to /dev/ttyUSB0. It seems that I have a slight problem with my BU353, that insists on resetting itself to SIRF mode. After changing to NMEA mode, no problems.
You were right, it works well directly on /dev/ttx. Thanks to you and congratulations to SethDart for that pluggin. I am impatient to see the others...
Well I guess it's related to NMEA sentence. Currently, only RMC is handled by DashBoard. One of the future feature will be to accept others sentences for the same instrument maybe automaticaly with priorities or user set.
I've included 3 samples graphics for Speedometer, Compass & Wind view. The classes I created can display many more. Now is the time to brainstorm how we can offer that to user. IMHO we should remain as simple as possible. I'm still thinking about the configuration options. Should we offer a list of pre-defined dials? Which ones? I'm thinking of a simple list of instruments/dials users can select & order, no more... Opinions? Remember: KISS
Note: I've no skills in graphics&colors so any suggestions welcome. These are rough example matching my views, they can be enhanced ; anyone?
Since there is a limited amount of data that can/needs to be displayed it would seem that providing a predefined selection of instruments would be that way to go. Also, I would like to suggest that an alternative numeric display be provided for when a dial is not desired. I agree that a simple list for selecting and ordering the information to be displayed is the way to go.
The info I would like see displayed includes position, course true/magnetic, speed, wind speed true/relative, rudder angle, and depth.
The next question would be where to positions the instruments on the display. I would prefer a two button context menu solution. The first button would step the display position thru the four edges of the display. The second button would hide/show the instruments on the display.
The classes I created can display many more. Now is the time to brainstorm how we can offer that to user. IMHO we should remain as simple as possible. I'm still thinking about the configuration options. Should we offer a list of pre-defined dials? Which ones? I'm thinking of a simple list of instruments/dials users can select & order, no more... Opinions? Remember: KISS
Quote:
Originally Posted by Viking Sailor
Since there is a limited amount of data that can/needs to be displayed it would seem that providing a predefined selection of instruments would be that way to go.
How do you know this?
As the data needs to be in NMEA 0183 format I would propose to "scan" for available data (that can be displayed). Otherwise you start limiting a user with no need.
Quote:
Also, I would like to suggest that an alternative numeric display be provided for when a dial is not desired.
I agree. A numeric display also needs less space and offers therefor the possibility to display more information. And some users may find its readability better.
Quote:
I agree that a simple list for selecting and ordering the information to be displayed is the way to go.
Beside the question of integration in OCPN the way PolarCom does it isn't that bad in my opinion.
Quote:
The next question would be where to positions the instruments on the display. I would prefer a two button context menu solution. The first button would step the display position thru the four edges of the display. The second button would hide/show the instruments on the display.
Did I get you right that you want the dashboard to be displayed in full size (the complete chart window)?
As I am still a fan of having the chart window a split screen where to dsiplay things like the dashboard permanently beside the chart (when split screen is enabled) the option to make it "full size" might also be a good idea (espacially for users with small screens).
Thanks SethDart for this great work - carry on!
Gunther
__________________
Deutschsprachige Community- und Support-Website unter OpenCPN.de
How do you know this?
As the data needs to be in NMEA 0183 format I would propose to "scan" for available data (that can be displayed). Otherwise you start limiting a user with no need.
I agree with your statement. Thus, I think we must simply be having a small "communications" problem here. My point is that the data contained in the NMEA messages is the only data available for display. So, once it is decided what NMEA data is to be displayed and the display format for that data, there will be a fixed set of formatted data that can be displayed. This is why a simple list for selecting and ordering the data to be displayed makes sense.
Quote:
Originally Posted by Netsurfer
Beside the question of integration in OCPN the way PolarCom does it isn't that bad in my opinion.
I tried PolarCom some time ago and wasn't impressed with it. I currently don't have PolarCom loaded and so I am unable to try it at the moment. However, I seem to remember that there wasn't any way to select which instruments you wanted not to display. (Please correct me if I'm wrong on this.)
Quote:
Originally Posted by Netsurfer
Did I get you right that you want the dashboard to be displayed in full size (the complete chart window)?
No. I would like the dashboard display to take up no more the a quarter of the screen.
Quote:
Originally Posted by Netsurfer
As I am still a fan of having the chart window a split screen where to dsiplay things like the dashboard permanently beside the chart (when split screen is enabled) the option to make it "full size" might also be a good idea (espacially for users with small screens).
I am suggesting that a way be provided whereby the navigator can easily position the dashboard at the top, bottom, right, or left edge of the display. This is to allow the dashboard to be moved to the edge of the display that least interferes with navigation. The same rationale applies to the show/hide control.
I think your suggestion of a full size display for smaller screens is excellent.
Well, I see the problem behind NMEA sentences & dial vs digital display more important, let me try to explain:
It's right that there's a a limited set of NMEA sentences
... but a single information may come from different sentences that must be interpreted, not something a user can choose.
True heading for example: it may come in a single sentence or you need to compute it with magnetic + variation
When it comes to wind, you can have it from 0-360Deg or 0-180 left/right
There's also the problem with units: some sentences provide both Feet/Meters/Fathoms, some meters only. Same for Knots/Kmh/ms. (In the future we may have something to transform any value to user selected unit to have a uniform unit display)
All that to say I don't think we should let the user go down to NMEA level, we should provide him with valid data usefull for navigation. Let the program alone do the best to compute with the sentences received.
For digital display, it's quite simple: display of the value with it's title & unit (already available for Position, SOG, COG, Heading, STW & Depth). The only question is building a list of values, there are a lot, and Water heading degree true is not something most of us would use ;-)
For dials, there's another problem: You can have two informations in it (at least that's how I made it for now) for example the speedometer display an arrow for SOG plus digits in the middle as well as STW on the bottom-left.
There's a lot of possible combinations for these, some might ask for SOG only, some will prefer Compass with digital SOG in it. I've seen compass display with another arrow for displaying BRG when a route is active.
We must come with a (sort of) limited list of such dials.
Here's a list to begin with:
- Digital data display
* Clock
* Position
* COG
* SOG
* VMG
* HDG
* Depth
* Rudder angle
- Dials
* Speedometer
* Compass
* Apparent wind
* True wind
* ?? Navigation compass (BRG+RNG+?? TTG)
- Others
* GPS status
* Route overview
* Chart overview
* Depth view
PS: I'm also thinking of a compass displayed as a ruler, it'd be smaller to display to fit on small screens