Code Monkey home page Code Monkey logo

raymarine_autopilot_pi's People

Contributors

bdbcat avatar berndcirotzki avatar hakansv avatar nohal avatar rasbats avatar rgleason avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

raymarine_autopilot_pi's Issues

cmake does not find wxWidgets

I am trying to compile against wx32 but the libs are not found.

CMake Error at /usr/local/src/cmake-3.26.3-linux-x86_64/share/cmake-3.26/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES
  wxWidgets_INCLUDE_DIRS)
Call Stack (most recent call first):
  /usr/local/src/cmake-3.26.3-linux-x86_64/share/cmake-3.26/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /usr/local/src/cmake-3.26.3-linux-x86_64/share/cmake-3.26/Modules/FindwxWidgets.cmake:977 (find_package_handle_standard_args)
  cmake/PluginConfigure.cmake:546 (find_package)
  CMakeLists.txt:132 (include)

When I use ci/circleci-build-debian.sh I get

E: Failed to fetch http://repo.netdata.cloud/repos/edge/debian/bullseye/Packages.xz Hash Sum mismatch

Debian 11

Android builds fail

-- CMakeLists: Adding target link libraries to autopilot_route_pi
-- CMakeLists_TINYXML: Building TinyXML
CMake Error at libs/nmea0183/CMakeLists.txt:63 (include):
  include could not find load file:

    SimpleWxConfig


CMake Error at libs/nmea0183/CMakeLists.txt:64 (SimpleWxConfig):
  Unknown CMake command "SimpleWxConfig"

How to install.. ??

Bernd,
Sorry if this sounds very stupid, but I am not an OPENCPN user and I need to find out how to install this to assist someone.
First, is this different from the AutoTrackRaymarine plugin that appears in the plugins? ??
Second.. where is the .tar to allow me to load it into OpenCPN?

The reason I ask is that I work (unpaid) with Luis at VelaNaviga, who sells the very reasonably priced ;-) NMEA3WIFI as a hobby.

This multiplexer accepts $STALK commands and sends them as Seatalk. (I helped with that coding)

I have been trying to help a French user, but it appears he also has (only?) the AutoTrackRaymarine plugin, and this does not seem to offer the $STALK output .. - it just offers an option to talk to an com port for an NGT-1: which is a NMEA2000 interface!

Many thanks!!
Dagnall

https://www.vela-navega.com/index.php/nmea3wifi

$STALK datagram 84 sentences

You use this in GetAutopilotCompasCourse() to produce the course received from the autopilot in $STALK 84,:
CompassValue = (int)((parameter[0] & 0x0c) >> 2) * 90 + parameter[1] / 2)

Using Thomas Knauf as the reference I am using this in an attempt at making a Raymarine Autopilot simulator:
CompassValue = (int)((parameter[0] & 0x3) * 90) + (parameter[1] & 0x3F) * 2) + (parameter[1] & 0xC ? (parameter[1] & 0xC == 0xC ? 2 : 1): 0)

The result:
You: 9
Me : 126

Could you explain the logic of your formula? This is new territory for me.
Are you missing + (parameter[1] & 0x3F) * 2)?

raymarine_autopilot_pi setup to build

  1. I first renamed my autopilotRM_pi to raymarine_autopilot_pi using a browser on my remote repository and going to Settings (gear) in upper right bar. The simply changing the name and hit "rename" https://github.com/rgleason/raymarine_autopilot_pi
  2. I then went my local repository autopilotRM and simple renamed it to raymarine_autopilot_pi. So that the remote names were right I went into the ".git" directory under raymarine_autopilot_pi and edited the "config" which is a text file, to get your remotes corrected.
  3. I suggest that you do the same. I believe that the forks from your repository will stay in line.

Next I went to cloudsmith and made new repositories raymarine-autopilot-alpha raymarine-autopilot-beta raymarine-autopilot-prod and declared them to be open source (very important and added the opensource license and the opencpn website. I then set the retainage of files settings for each of the 3 repositories. https://cloudsmith.io/~opencpn/repos/?page=2

I then synchronized with your repository, remote and local, and updated the TP FE2 frontend to v1.0.223.1 which bdbcat has just improved for O5.7.1 (and future O5.8). I have pushed that in hope that it would build.

It did not. I have to setup the keys next, for appeveyor, circleci, and cloudsmith. (You need to have accounts for this. I can point you in the right direction for this.) You will also need to do this if you are going to build in the cloud.

I am can also send you an invitation to join the OpenCPN organization on Cloudsmith, once you have an account. That will enable you to manage your plugin on the cloudsmith OpenCPN repository.

More later. Will make a PR to your repository too.

Update github manual using Edit Manual?

The OpenCPN Plugin Documentation:
Original manual was derived from Bernd's documentation by rgleason and was hosted in the Opencpn Manual wiki.
Mike [rasbats] translated this from dokuwiki to antora/asciidoctor and moved the documentation to github.com.
https://opencpn-manuals.github.io/main/autopilot-rm/0.1/index.html

This page can be edited when logged into your github account, there is a "Edit this page" on the upper right. This is essentially making a new commit, which is then merged.

The other way to do it is to edit locally in your local repository and then make a commit, then it would be PR and merged to my repos and then it would be updated in the github documentation. (I think that is the way it works for us)

Autopilot going in Standby on its own

Hi Bernd,

I installed your Plugin on android and it seems to be working overall, except for the settings dialog which cannot be used because it's too big and cannot be scrolled to the bottom where the ok button is.
So, I adjusted the settings direct in the conf file.
The main window is also not really scaled right on Android but functional. I put in the maximum Skalefaktor of 21.
But what happens mostly is that the autopilot will go on standby about every 10 minutes or so.
And that's exactly what I was trying to prevent with the Plugin.
It seems that the autopilot is confused by the echoed back stalk sentences from OpenCPN and shuts off?
How can you prevent it from echoing everything to the output without compiling your own version of OpenCPN?

Grüsse,
Hans

Language files and Crowdin Process

Dear Bernd,

I see your PR here to

https://github.com/rgleason/raymarine_autopilot_pi/pulls

and I just wonder if these changes are in the language crowdin files too? The reason I ask is if they are not, then the next time someone like Hakan or Dave or someone else updates all the language translation files, those changes will not be there.

I think you should review the process with @Hakansv https://github.com/Hakansv as he is well versed in this process. I cannot find the Development documents anymore, which cover Language so I cannot provide a link to that (This is a separate problem).

Once we know that the crowdin files have these improvements, we can probably merge them.

Also, I think you should add more description to the readme explaining that the type of autopilot needs to be set in preferences and providing a connection settings examples for each of the autopilot types.

These additions should also be made in the manual too.
https://opencpn-manuals.github.io/main/autopilot-rm/0.1/index.html

Thanks. Rick

High Res Display, Control Panel is Better - some adjustments needed

Bernd, Thank you! Pulled your changes to my repos, and built locally and tested.

The control panel is much better. There are some adjustments needed.
For reference, I have a display resolution of 3840 x 2400 and the Windows 11 "Display" "Scale" is set to the recommended 250% .
We need a little more ability to zoom the png bigger. Also the separate icons in the control panel seem to be cut off and need more area. Don't know how that is fixed....
See screenshots please.
Scale-adjust-small
Zoomed-to-10

I will try testing some more.

Plugin builds, but fails on opn start

Raspberry Pi 4
AArch64 Bullseye
cmake 3.18.4
wxWidgets-3.2.2.1
OpenCPN 5.8.4-1+1637c28 (flatpak)

07:26:10 AM: Warning: Unknown image data format.
../src/gtk/bitmap.cpp(595): assert ""image.IsOk()"" failed in InitFromImage(): invalid image
07:26:10 AM: Warning: Unknown image data format.
../src/gtk/bitmap.cpp(595): assert ""image.IsOk()"" failed in InitFromImage(): invalid image
07:26:10 AM: Creating Raymarine Autopilot Plugin
../src/gtk/bitmap.cpp(970): assert ""IsOk()"" failed in GetWidth(): invalid bitmap
../src/gtk/bitmap.cpp(963): assert ""IsOk()"" failed in GetHeight(): invalid bitmap
../src/gtk/bitmap.cpp(1060): assert ""IsOk()"" failed in GetSubBitmap(): invalid bitmap
../src/gtk/bitmap.cpp(970): assert ""IsOk()"" failed in GetWidth(): invalid bitmap
../src/gtk/bitmap.cpp(963): assert ""IsOk()"" failed in GetHeight(): invalid bitmap
../src/gtk/bitmap.cpp(1060): assert ""IsOk()"" failed in GetSubBitmap(): invalid bitmap
07:26:10 AM: Deleting Raymarine Autopilot Plugin

What should I do?

Bernd,
I was just thinking of updating Autopilot-Plugin (RM) to Jon Goughs Frontend2 version 1.0.222 (which is for Opencpn 5.7.1 plugins - we will leave the 5.6.2 plugins available) and I notice you did some work yesterday and made some commits.
Should I make a PR to my repos and use that now to then do the FE2 1.0.222 update?
Will that fit with your workflow?

Active Route Test

I set a premade route active, autopilot_raymarine and then started Marco Bergman's ais-simulation.exe
https://github.com/marcobergman/ais_simulation
and finally got things right and recorded a session (I had autopilot_route enabled at first, which messed up things!)

I hope I am doing this right.
1-Turn-at-wpt

2-Continue

3-Overshoot

Testing on Raymarine ST EVO

Hi Bernd,

I compiled and enabled your fantastic plugin. I don't get the autopilot status and also don't see any outgoing msgs generated by the plugin..

I connected the PC with an Actisense NGW-1. I get all data from the seatalk ng bus instruments and use them on Opencpn without issue.

Is plugin written exclusively for your hardware? (stng->nmea converter?)

support for more pilots via Pitufino's pilot-control API

This plugin could reach way more users when it's not just using a single API ($STALK at the moment) but different ones (selected by the user). The Pitufino gateway for example is able to control most of the NMEA2000 pilots out there and the API is public:
https://github.com/ch-fb/pitufino-doc/tree/main/protocols

For receiving pilot status it uses a new NMEA0183 sentence, but for sending control commands, HTTP POST requests need to be sent (in this way security and authentication can be provided. By using just NMEA messages, a pilot could be easily hijacked by another close-by vessel!)

ST2000 Tiller Pilots

Hi Bernd
I'm in the middle of adding an ST2000+ to a pi openplotter system
and I'm wondering if your tiller also requires an NMEA code for
Apparent Wind Angle and Speed = VWR .
This is a problem on mine as none of my instruments produce this code.
So I have been trying to find a converter for MWV to VWR.
If I get this to work with your plugin it will be another for your list of working devices

thanks, james

Setting in OpenCPN 5.0.0

Hi Bernd,
I have a Seatalk1 to NMEA0183 multiplexer as recommended from you and I have your Plugin running on OpenCPN 5.0.0.

Next weekend I have in mind to test the autopilot features at my Raymarine S2G together with an ST6002 on my boat.

The multiplexer already seems to be ready as I was able to connect to it by receiveing a response from it by typing "$SWVERSION" in putty telnet.

But now I have some doubts how to do the connection setting in open CPN: How do your plugin know from which COM ports it shall receive the Seatalk1 data and to which COM port it shall send?

The settings possible in the OpenCPN connections window seems to be very limited for that
image

Thanks for your assistance!
Dirk

Language Translation Process

Bernd, here is some info about language translation
https://opencpn-manuals.github.io/main/ocpn-dev-manual/0.1/dm-i18n.html

  1. See how to identify strings to be translated " _(some string)"
  2. After you know that you will not be adding more new translation "strings", notify Hakan.
  3. He will clone your repository, make a .pot file and upload it to crowdin OpenCPN to be translated by human translators (not machine).
  4. In about 2-3 weeks he will make his repository=yours, add the newly translated .po files and then make a PR to your PI.
  5. You should then accept and merge the PR and re-publish the plugin (or advise me).

Later: I am going to do what Hakan suggested to help fix the conflicts.

Tested-works - a few issues to fix. A question..

Do you want the plugin to be named
"raymarine_autopilot_pi"
"autopilot_raymarine_pi"
"autopilotRM_pi"?
obviously your choice, but I need to know before I make the 3 cloudsmith repositories.
https://cloudsmith.io/~opencpn/repos/?page=1

The name can be changed reasonably easily now, (I can show you how) but later when it gets into the PIM plugin manager catalog and setup with a workflow landing in cloudsmith it cannnot be changed as easily..
https://cloudsmith.io/~opencpn/repos/?page=1

Two main issues:

  1. At the end of the route, the boat simply turns 180 degrees and heads off in that direction. I think it should continue on the same course, and there should probably be an optional alert or alarm or something (watchdog_pi)? The alarm might be too much to do right now.
  2. For my high res screen the control menu is very small is there some way to fix that (maybe some options for a larger menu?) perhaps a slider to adjust the size?
    You can see this in the screenshot attached.
    AutopilotRM_pi

Tested it with Marco Bergman's ais_simulator
https://github.com/marcobergman/ais_simulation

Another small suggestion:
3. At some point it would be good to simplify the icon and make it more black and white.

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.