Cruisers Forum
 


Reply
 
Thread Tools Search this Thread Rate Thread Display Modes
Old 03-07-2022, 10:26   #2806
Registered User

Join Date: Jul 2014
Posts: 144
Re: Beta Test / Technical

Quote:
Originally Posted by Hakan View Post
Spart..
What's the reason to use Android for a navigator RPi system. The Android aim seems to get a cheap TV viewer or similar. I looked here.


A functional cruiser system would be to run a OpenPlotter image instead?
This is a repeater setup on a RPI connected to the TV mounted in the Skippers cabin. It is not the primary. We have a primary OpenCPN at the chart table. It also allows me to run the Navionics Boating app. Both the boating app and the opencpn app consume the navigation data output from the primary opencpn into the onboard wifi cloud.

The RPI android install is frankly a game changer for apps and entertainment. My post is about the functionality of the official paid for Android OpenCPN.

After attempting to test the fixes Dave posted. I cannot find any app that will allow me to edit the opencpn.conf file. All I get is permission denied when I try to edit it from at least 5 different txt edit apps all with permission set to be able to access all files. So maybe the permission being set on the file is weird in some way.

Anyway at this point I cannot edit the conf file. It looks like I may need to power down the pi take out the SD card pop that into something else and hack the file manually before putting it back checking it etc. Then rinse repeat until I get the dashboard looking right on the screen. A true ball ache and one that would need repeating if I want to change the dashboard layout.

I am reporting this as a BUG in the functionality of the official paid for Android app.

@bdbcat

In terms of the co-ordinate system I have a 1920x1080 display.

I assume the X and Y are related to the top left of the screen the floatw is the width and the floath the height. Right?

Cheers
Spart
sparticle is online now   Reply With Quote
Old 03-07-2022, 10:43   #2807
Marine Service Provider
 
bdbcat's Avatar

Join Date: Mar 2008
Posts: 6,825
Re: Beta Test / Technical

Spart...
"I assume the X and Y are related to the top left of the screen the floatw is the width and the floath the height. Right?"


Correct.


What version of Android is running?
I have had good luck with the app "XPlore" for native file editing.


Dave
bdbcat is offline   Reply With Quote
Old 03-07-2022, 11:50   #2808
Registered User

Join Date: Jul 2014
Posts: 144
Re: Beta Test / Technical

Quote:
Originally Posted by bdbcat View Post
Spart...
"I assume the X and Y are related to the top left of the screen the floatw is the width and the floath the height. Right?"


Correct.


What version of Android is running?
I have had good luck with the app "XPlore" for native file editing.


Dave
OK thanks Dave. I will try it when I get to the yacht next.

Otherwise it's the long way it seems.

Android 12

Cheers
Spart
sparticle is online now   Reply With Quote
Old 06-07-2022, 16:50   #2809
Registered User

Join Date: Jan 2022
Posts: 3
Re: Beta Test / Technical

Quote:
Originally Posted by bdbcat View Post
Rick...
Unless you just want to, there is no need to compile wxWidgets on your linux virtual system.
You might refer to the highly acclaimed OpenCPN Wiki, DeveloperGuide/CompilingLinux:


Code:
$ sudo apt-get install build-essential cmake gettext git-core gpsd gpsd-clients libgps-dev wx-common libgtk3.0-gtk3-dev libglu1-mesa-dev libgtk2.0-dev libgtk3-dev wx3.0-headers libbz2-dev libtinyxml-dev libsndfile1-dev libportaudio2 portaudio19-dev libcurl4-openssl-dev libexpat1-dev libcairo2-dev libarchive-dev liblzma-dev libexif-dev libelf-dev libsqlite3-dev
That long line will fetch and install all the development libraries and files that you need.

I use it frequently.

Dave




Dave,
I think the WIKI is outdated for Unbuntu 20.04. I can submit a new package list specific to Ubuntu if you would like. It wont compile unless you add the "libwxgtk3.0-gtk3-dev" package and remove the other referenced.
MarkRemington is offline   Reply With Quote
Old 25-08-2022, 07:22   #2810
Registered User

Join Date: Aug 2016
Location: Stockholm, Sweden
Posts: 205
Re: Beta Test / Technical

Trying to set up an updated compile environment on Ubuntu 22.04 (to be used for GPS Odometer) but are getting an odd error. I've added the programs as decribed under section 1 under 'Compiling on Linux' and are running as I have always done on Ubuntu 20.04. Are however now getting this message:

CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES
wxWidgets_INCLUDE_DIRS)
Call Stack (most recent call first):
/usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.22/Modules/FindwxWidgets.cmake:1025 (find_package_handle_standard_args)
cmake/PluginConfigure.cmake:546 (find_package)
CMakeLists.txt:103 (include)

The 'CMkakeLists.txt' line 103 reads 'include("PluginConfigure")'

Cant figure this out, it is new on 22.04 but working on my 20.04 installation. The wxWidget libraries are installed and reporting:
wx-common is already the newest version (3.0.5.1+dfsg-4).
libwxgtk3.0-gtk3-dev is already the newest version (3.0.5.1+dfsg-4).
wx3.0-headers is already the newest version (3.0.5.1+dfsg-4).

cmake is, as you can see above, version 3.22

Scratching my head assuming there is a search path missing......
Clues?


/LennartG
LennartG is offline   Reply With Quote
Old 28-08-2022, 02:52   #2811
Registered User

Join Date: Aug 2016
Location: Stockholm, Sweden
Posts: 205
Re: Beta Test / Technical

Correction to my question above: This also affects local (and only local) compile on 20.04 and was introduced thru changes in TP from release 194 to release 212. I use a selected part for FE2 in the GPS Odometer. Note that the uploaded version compiles ok but it would be nice to be able to compile locally as well.
LennartG is offline   Reply With Quote
Old 30-08-2022, 08:37   #2812
Registered User

Join Date: Mar 2011
Posts: 370
Re: Beta Test / Technical

What latency should one expect with OpenCPN Messaging ?

I'm decoding a NMEA 2000 PGN, which is then formatted into some JSON text and sent using the SendPluginMessage API. This PGN, 130820 is subsequently being consumed by a separate Plugin.

I'm seeing many orders of magnitude difference in processing time when using & not using the API. This impacts the performance of both plugins as it introduces an unacceptable amount of latency into the application.

Using the SendPluginMessage API I've logged the following (times are in microsoeconds)
Code:
17:05:24.066 MESSAGE twocandevice.cpp:1678 PGN: 127245, Duration: 15
17:05:24.081 MESSAGE twocandevice.cpp:1678 PGN: 127251, Duration: 62
17:05:24.097 MESSAGE twocandevice.cpp:1678 PGN: 127250, Duration: 151
17:05:24.112 MESSAGE twocandevice.cpp:1678 PGN: 127251, Duration: 197
17:05:24.127 MESSAGE twocandevice.cpp:1678 PGN: 127250, Duration: 170
17:05:24.154 MESSAGE twocandevice.cpp:1678 PGN: 127257, Duration: 299
17:05:24.159 MESSAGE twocandevice.cpp:1678 PGN: 127252, Duration: 16
17:05:24.178 MESSAGE twocandevice.cpp:1678 PGN: 127501, Duration: 17
17:05:24.211 MESSAGE twocandevice.cpp:1678 PGN: 127245, Duration: 21
17:05:24.211 MESSAGE twocandevice.cpp:1678 PGN: 127245, Duration: 66
17:05:24.221 MESSAGE twocandevice.cpp:1678 PGN: 128259, Duration: 70
17:05:24.237 MESSAGE twocandevice.cpp:1678 PGN: 130306, Duration: 155
17:05:24.253 MESSAGE twocandevice.cpp:1678 PGN: 127245, Duration: 8
17:05:24.268 MESSAGE twocandevice.cpp:1678 PGN: 127251, Duration: 272
17:05:24.282 MESSAGE twocandevice.cpp:1678 PGN: 127250, Duration: 143
17:05:24.297 MESSAGE twocandevice.cpp:1678 PGN: 127251, Duration: 135
17:05:24.313 MESSAGE twocandevice.cpp:1678 PGN: 127250, Duration: 281
17:05:24.328 MESSAGE twocandevice.cpp:1678 PGN: 127257, Duration: 167
17:05:24.342 MESSAGE twocandevice.cpp:1678 PGN: 127252, Duration: 14
17:05:24.358 MESSAGE twocandevice.cpp:1678 PGN: 127245, Duration: 14
17:05:24.373 MESSAGE twocandevice.cpp:1678 PGN: 127251, Duration: 67
17:05:24.389 MESSAGE twocandevice.cpp:1678 PGN: 127250, Duration: 129
17:05:24.404 MESSAGE twocandevice.cpp:1678 PGN: 65341, Duration: 90
17:05:24.465 MESSAGE twocandevice.cpp:1678 PGN: 127237, Duration: 205
17:05:24.481 MESSAGE twocandevice.cpp:1678 PGN: 127245, Duration: 6
17:05:24.499 MESSAGE twocandevice.cpp:1678 PGN: 130306, Duration: 177
17:05:24.524 MESSAGE twocandevice.cpp:1678 PGN: 127245, Duration: 12
17:05:24.527 MESSAGE twocandevice.cpp:1678 PGN: 127501, Duration: 11
17:05:24.547 MESSAGE twocandevice.cpp:1678 PGN: 127245, Duration: 12
17:05:24.588 MESSAGE twocandevice.cpp:1678 PGN: 130820, Duration: 13865
Not using the API results in the following: (Note that this means the other Plugin is inoperable !)
Code:
17:07:39.748 MESSAGE twocandevice.cpp:1678 PGN: 59904, Duration: 90
17:07:39.748 MESSAGE twocandevice.cpp:1678 PGN: 127245, Duration: 12
17:07:39.760 MESSAGE twocandevice.cpp:1678 PGN: 127251, Duration: 217
17:07:39.775 MESSAGE twocandevice.cpp:1678 PGN: 127250, Duration: 109
17:07:39.792 MESSAGE twocandevice.cpp:1678 PGN: 127257, Duration: 189
17:07:39.807 MESSAGE twocandevice.cpp:1678 PGN: 127252, Duration: 16
17:07:39.823 MESSAGE twocandevice.cpp:1678 PGN: 127251, Duration: 269
17:07:39.838 MESSAGE twocandevice.cpp:1678 PGN: 127250, Duration: 76
17:07:39.853 MESSAGE twocandevice.cpp:1678 PGN: 130306, Duration: 242
17:07:39.869 MESSAGE twocandevice.cpp:1678 PGN: 128259, Duration: 10
17:07:39.885 MESSAGE twocandevice.cpp:1678 PGN: 127245, Duration: 14
17:07:39.901 MESSAGE twocandevice.cpp:1678 PGN: 65341, Duration: 14
17:07:39.964 MESSAGE twocandevice.cpp:1678 PGN: 127237, Duration: 157
17:07:39.981 MESSAGE twocandevice.cpp:1678 PGN: 127245, Duration: 72
17:07:39.995 MESSAGE twocandevice.cpp:1678 PGN: 127245, Duration: 14
17:07:40.011 MESSAGE twocandevice.cpp:1678 PGN: 127245, Duration: 18
17:07:40.026 MESSAGE twocandevice.cpp:1678 PGN: 65305, Duration: 17
17:07:40.041 MESSAGE twocandevice.cpp:1678 PGN: 65305, Duration: 15
17:07:40.072 MESSAGE twocandevice.cpp:1678 PGN: 130820, Duration: 744
17:07:40.088 MESSAGE twocandevice.cpp:1678 PGN: 127251, Duration: 171
17:07:40.103 MESSAGE twocandevice.cpp:1678 PGN: 127250, Duration: 181
17:07:40.119 MESSAGE twocandevice.cpp:1678 PGN: 127257, Duration: 213
17:07:40.136 MESSAGE twocandevice.cpp:1678 PGN: 127252, Duration: 73
17:07:40.151 MESSAGE twocandevice.cpp:1678 PGN: 128267, Duration: 264
If this is the expected level of latency, then the alternative is to use a different inter-process communications method, which is likely to be OS dependent, or to use something cross platform such as MQTT (wxWidgets seems to be lacking in IPC services other than sockets)

I could contemplate a separate thread just for encoding the JSON and invoking the SendPluginMessage API, but that would just move the latency problem elsewhere.
Alternatively, move the functionality of the second plugin into the first, and not have to worry about any inter0process communications.
stevead is offline   Reply With Quote
Old 30-08-2022, 13:27   #2813
Marine Service Provider
 
bdbcat's Avatar

Join Date: Mar 2008
Posts: 6,825
Re: Beta Test / Technical

Steve..
If "not using the SendPluginMessage API", how are you otherwise processing the PGN?
And what are the time values indicating, exactly>


Dave
bdbcat is offline   Reply With Quote
Old 30-08-2022, 16:00   #2814
Registered User

Join Date: Mar 2011
Posts: 370
Re: Beta Test / Technical

Thanks Dave,

Pseudo Code
Code:
ParseMessages {
  start = now

  switch(pgn) {
  case 123
    Decode 123
    break;
  case 130820
     Decode PGN
     Generate JSON
     SendPluginMessage
     break;
  case 456:
     Decode 456
     break;
  case 789:
     Decode 789
     break;
  }
  end = now
 
  log end - now
  return
}
All PGN decoding is performed in the one plugin (in this case TwoCan)

Contents of SendPluginMessage is consumed by a separate plugin to update the state of its UI. I see a noticeable lag in the updating of the UI in the second plugin which I am trying to track down and eliminate.

Units are in microseconds, using std::chrono::high_resolution_clock

The second set of values, showing the reduced latency for processing PGN 130820 was generated by just commenting out SendPluginMessage.

Is SendPluginMessage synchronous and does it incur the processing overhead of other plugins that consume the message or is it asynchronous ?
stevead is offline   Reply With Quote
Old 30-08-2022, 17:05   #2815
Marine Service Provider
 
bdbcat's Avatar

Join Date: Mar 2008
Posts: 6,825
Re: Beta Test / Technical

Steve...
"Is SendPluginMessage synchronous and does it incur the processing overhead of other plugins that consume the message"
Yes. Also, the message is posted to the main OCPN event loop, and retruns immediately.
Have you tried disabling all except the two plugins that you are working on?


Dave
bdbcat is offline   Reply With Quote
Old 01-09-2022, 03:49   #2816
Registered User

Join Date: Mar 2011
Posts: 370
Re: Beta Test / Technical

Thanks for the explanation Dave,

With no plugins (except TwoCan), decoding time for PGN 130820 is within acceptable limits, although the encoding into JSON does incur some significant overhead.

With just two plugins (TwoCan and the as yet unreleased plugin), the latency I observed occurs.

After instrumenting the other plugin, the overhead is incurred whilst parsing the JSON and the processing of the if. elseif..else statements.

With a bit of a re-design of my JSON schema I should be able to reduce the overhead from the if..else statement processing.

One thing to consider would be to have an alternative OCPN Messaging system, that instead of passing a wxString in the message body, the ability to pass a blob of data that plugins can generate & consume of as they see fit. Is that what you are thinking for your NMEA 2000 design ?
stevead is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Beta Marine Diesel michaelmrc Engines and Propulsion Systems 48 23-03-2016 13:44
Need some technical advice....antennas. Just a Tinch Marine Electronics 15 01-12-2007 16:57
Blue Sea Systems Technical Brief GordMay Electrical: Batteries, Generators & Solar 0 16-03-2007 04:16
technical difficulties witchcraft The Sailor's Confessional 1 30-05-2005 14:09
Dow Corning Technical Manual GordMay The Library 0 12-04-2005 16:25

Advertise Here


All times are GMT -7. The time now is 13:09.


Google+
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2022, vBulletin Solutions, Inc.
Social Knowledge Networks
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2022, vBulletin Solutions, Inc.

ShowCase vBulletin Plugins by Drive Thru Online, Inc.