rgleason / climatology_pi Goto Github PK
View Code? Open in Web Editor NEWThis project forked from seandepagnier/climatology_pi
climatology plugin for opencpn
This project forked from seandepagnier/climatology_pi
climatology plugin for opencpn
[ 57%] Building C object libs/glu/CMakeFiles/GLU_static.dir/libtess/sweep.c.o
/Users/distiller/project/libs/plugingl/src/pidc.cpp:304:14: warning: comparison of different enumeration types in switch statement ('wxPenStyle' and 'wxDeprecatedGUIConstants') [-Wenum-compare-switch]
case wxDOT_DASH: {
^~~~~~~~~~
/Users/distiller/project/libs/plugingl/src/pidc.cpp:299:14: warning: comparison of different enumeration types in switch statement ('wxPenStyle' and 'wxDeprecatedGUIConstants') [-Wenum-compare-switch]
case wxSHORT_DASH: {
^~~~~~~~~~~~
/Users/distiller/project/libs/plugingl/src/pidc.cpp:294:14: warning: comparison of different enumeration types in switch statement ('wxPenStyle' and 'wxDeprecatedGUIConstants') [-Wenum-compare-switch]
case wxLONG_DASH: {
^~~~~~~~~~~
/Users/distiller/project/libs/plugingl/src/pidc.cpp:289:14: warning: comparison of different enumeration types in switch statement ('wxPenStyle' and 'wxDeprecatedGUIConstants') [-Wenum-compare-switch]
case wxDOT: {
^~~~~
[ 59%] Building C object libs/glu/CMakeFiles/GLU_static.dir/libtess/tessmono.c.
and
[ 84%] Building CXX object CMakeFiles/climatology_pi.dir/src/climatology_pi.cpp.o
In file included from /Users/distiller/project/src/ClimatologyOverlayFactory.cpp:33:
/Applications/Xcode-12.5.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3.h:15:2: warning: gl.h and gl3.h are both included. Compiler will not invoke errors if using removed OpenGL functionality. [-W#warnings]
#warning gl.h and gl3.h are both included. Compiler will not invoke errors if using removed OpenGL functionality.
^
/Users/distiller/project/src/ClimatologyOverlayFactory.cpp:1247:16: warning: absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value [-Wabsolute-value]
if(fabsf((double)lat/10) >= 90 || (double)lon/10 > 15 || (double)lon/10 < -360)
^
/Users/distiller/project/src/ClimatologyOverlayFactory.cpp:1247:16: note: use function 'std::abs' instead
if(fabsf((double)lat/10) >= 90 || (double)lon/10 > 15 || (double)lon/10 < -360)
^~~~~
std::abs
[ 86%] Building CXX object CMakeFiles/climatology_pi.dir/src/ClimatologyUI.cpp.o
2 warnings generated
and
[ 90%] Building CXX object CMakeFiles/climatology_pi.dir/src/IsoBarMap.cpp.o
In file included from /Users/distiller/project/src/IsoBarMap.cpp:33:
/Applications/Xcode-12.5.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3.h:15:2: warning: gl.h and gl3.h are both included. Compiler will not invoke errors if using removed OpenGL functionality. [-W#warnings]
#warning gl.h and gl3.h are both included. Compiler will not invoke errors if using removed OpenGL functionality.
^
1 warning generated.
Hi Rick
Sorry : I've been absent for a long time from internet (someone who's old and ill needs me to be close ...)
I'm trying to switch the whole OpenCPN stuff from wxgtk3.0 to wxgtk3.15
I got a little problem to build the climatology_pi
There's a missing include line in :
https://github.com/rgleason/climatology_pi/blob/master/src/ClimatologyOverlayFactory.cpp
I created a patch to build it it on a Linux system (as we can't attach a file ending with .patch I added a .txt to its name !)
climatology_pi-1.4.46-add-missing-gl-include.patch.txt
This problem may occur when you will use wxgtk3.1.5 inside flatpak
I hope this will be helpful
It looks like a comment button on top right menu bar. Is it for going to "now"?
It should work, whatever it does.
This needs to be adjusted somehow. Perhaps for DPI high res screens?
Hi Rick
Climatology is Ok inside flatpak (the data are in the right place)
but
When I build this plugin from your source :
https://github.com/rgleason/climatology_pi/archive/refs/tags/v1.4.44.tar.gz
The data directory is empty...
In github the code shows the link to the place where Sean De Panier uploaded the last data he collected :
https://github.com/seandepagnier/climatology_pi_data/tree/b2f26b6935712665eefd1652e4a70384a645b526
but these data are not copied in your tree
To build my package I used a workaround : I download all the data from Sean De Panier's site
https://github.com/seandepagnier/climatology_pi_data/archive/b2f26b6935712665eefd1652e4a70384a645b526.zip
and expand them inside your code when I build the package
Should these data be copied inside data directory of the tree before this code is tagged and provided as a tar.gz file to download ?
building v1.5.6.0
https://github.com/rgleason/climatology_pi/runs/14073575805
https://app.circleci.com/pipelines/github/rgleason/climatology_pi/224/workflows/7bb1348f-3cea-4d85-b43a-9080af61e4a8/jobs/3015
+ cloudsmith push raw --republish --no-wait-for-sync --name climatology_pi-1.5.6.0-debian-armhf-10-buster-armhf-metadata --version v1.5.6.0 --summary 'climatology opencpn plugin metadata for automatic installation' opencpn/climatology-prod /home/circleci/project/build/climatology_pi-1.5.6.0-debian-armhf-10-buster-armhf.xml
DEPRECATION: Please upgrade your Python as Python 2.7 is no longer maintained. Python 2.7 support will end as of cloudsmith-cli v1.0.0.
Checking raw package upload parameters ... -�/�OK
Checking climatology_pi-1.5.6.0-debian-armhf-10-buster-armhf.xml file upload parameters ... |�\�OK
Requesting file upload for climatology_pi-1.5.6.0-debian-armhf-10-buster-armhf.xml ... -�/�OK
Creating a new raw package ... |�\�-�OK
Created: opencpn/climatology-prod/climatology_pi-1560-debian-armhf-10-buster-arm-E8S (eMEKgQZDVEFX)
+ cloudsmith push raw --republish --no-wait-for-sync --name climatology_pi-1.5.6.0-debian-armhf-10-buster-armhf-tarball --version v1.5.6.0 --summary 'climatology opencpn plugin tarball for automatic installation' opencpn/climatology-prod /home/circleci/project/build/climatology_pi-1.5.6.0-debian-armhf-10-buster-armhf.tar.gz
DEPRECATION: Please upgrade your Python as Python 2.7 is no longer maintained. Python 2.7 support will end as of cloudsmith-cli v1.0.0.
Checking raw package upload parameters ... -�/�OK
Checking climatology_pi-1.5.6.0-debian-armhf-10-buster-armhf.tar.gz file upload parameters ... |�\�OK
Requesting file upload for climatology_pi-1.5.6.0-debian-armhf-10-buster-armhf.tar.gz ... -�/�OK
2023-06-07 12:47:48,217 WARNING Retrying (RetryWithCallback(total=5, connect=6, read=5, redirect=None, status=6)) after connection broken by 'ProtocolError('Connection aborted.', error(104, 'Connection reset by peer'))': /
2023-06-07 12:47:48,217 WARNING Retrying (RetryWithCallback(total=5, connect=6, read=5, redirect=None, status=6)) after connection broken by 'ProtocolError('Connection aborted.', error(104, 'Connection reset by peer'))': /
2023-06-07 12:47:48,217 WARNING Retrying
https://www.cruisersforum.com/forums/f134/weather-routing-100060-2.html#post3564291
Sean has a fix, but bdbcat had a previous fix for MacOS
This is the only way I could find that it would build. https://github.com/rgleason/climatology_pi/tree/streamline
I am not sure if the CMakeLists.txt lines starting with If Unix could be simplified somehow, or if they are needed.
CMakeLists.txt Lines Lines 202-214
include_directories(BEFORE ${PROJECT_SOURCE_DIR}/include)
# not used
# not used
include_directories(BEFORE ${PROJECT_SOURCE_DIR}/libs/)
include_directories(BEFORE ${PROJECT_SOURCE_DIR}/libs/GL)
include_directories(BEFORE ${PROJECT_SOURCE_DIR}/libs/glu/include)
include_directories(BEFORE ${PROJECT_SOURCE_DIR}/libs/ocpn-api)
include_directories(BEFORE ${PROJECT_SOURCE_DIR}/libs/wxJSON/include)
#include_directories(BEFORE ${PROJECT_SOURCE_DIR}/libs/jsoncpp)
# not used
include_directories(BEFORE ${PROJECT_SOURCE_DIR}/libs/pluginDC/include)
CMakeLists.tx Lines 250-270
IF(NOT UNIX)
include_directories(BEFORE ${PROJECT_SOURCE_DIR}/libs/zlib-1.2.3)
include_directories(BEFORE ${PROJECT_SOURCE_DIR}/libs/bzip2)
add_subdirectory(${PROJECT_SOURCE_DIR}/libs/bzip2)
target_link_libraries(${PACKAGE_NAME} ocpn::bzip2)
ENDIF(NOT UNIX)
IF(WIN32)
IF(MSVC)
SET(OPENCPN_IMPORT_LIB "../../${CMAKE_CFG_INTDIR}/${PARENT}")
include_directories(BEFORE ${PROJECT_SOURCE_DIR}/buildwin/include)
target_link_libraries(${PACKAGE_NAME} "${CMAKE_SOURCE_DIR}/buildwin/zlib1.lib")
ELSE()
# MINGW
TARGET_LINK_LIBRARIES(${PACKAGE_NAME} "-lz")
ENDIF()
ENDIF(WIN32)
include_directories(BEFORE ${PROJECT_SOURCE_DIR}/libs/jsoncpp)
add_subdirectory(libs/jsoncpp)
target_link_libraries(${PACKAGE_NAME} ocpn::jsoncpp)
#include_directories(BEFORE ${PROJECT_SOURCE_DIR}/libs/pluginDC/include)
#add_subdirectory(libs/pluginDC)
#target_link_libraries(${PACKAGE_NAME} ocpn::pluginDC)
Why wouldn't these work as simple includes? at Lines 202-214?
include_directories(BEFORE ${PROJECT_SOURCE_DIR}/libs/jsoncpp)
include_directories(BEFORE ${PROJECT_SOURCE_DIR}/libs/pluginDC/include)
don't get it.
This limit needs to be increased for high DPI screens.
/home/circleci/project/libs/plugingl/src/TexFont.cpp:25:10: fatal error: 'wx/wx.h' file not found
#include <wx/wx.h>
^~~~~~~~~
also
/home/circleci/project/libs/plugingl/src/qtstylesheet.cpp:2:10: fatal error: 'qdebug.h' file not found
#include <qdebug.h>
/home/circleci/project/libs/plugingl/src/pi_shaders.cpp:25:10: fatal error: 'qdebug.h' file not found
[ 62%] climatology-i18n [pt_BR]: Created mo file.
#include "qdebug.h"
/home/circleci/project/libs/plugingl/src/pidc.cpp:28:10: fatal error: 'wx/wxprec.h' file not found
#include "wx/wxprec.h"
https://github.com/rgleason/climatology_pi/issues/new
I think it will build for android with these fixes, it built Android before and it worked.
1.4.28.0 Climatology failure when used for weather_routing, OpenCPN crashes.
1.4.26.0 works
09:02:41.355 MESSAGE ClimatologyOverlayFactory.cpp:2278 climatology found compressed data: C:\ProgramData\opencpn\\plugins\climatology_pi\data\cyclone-she.gz
09:02:41.371 MESSAGE pluginmanager.cpp:553 PlugInManager: Using data dirs from: C:\Users\fcgle\AppData\Local\opencpn\plugins;C:\Program Files (x86)\OpenCPN\plugins
09:02:41.371 MESSAGE pluginmanager.cpp:565 PlugInManager: using data dir: C:\Users\fcgle\AppData\Local\opencpn\plugins\climatology_pi
09:02:43.253 MESSAGE ClimatologyOverlayFactory.cpp:1362 climatology_pi: cyclone cache time 1871 ms
09:02:48.575 ERROR filefn.cpp:1183 Directory 'C:\ProgramData\opencpn\\plugins\weather_routing\\boats' couldn't be created (error 183: Cannot create a file when that file already exists.)
09:02:48.576 ERROR filefn.cpp:1183 Directory 'C:\ProgramData\opencpn\\plugins\weather_routing\\polars' couldn't be created (error 183: Cannot create a file when that file already exists.)
09:02:55.593 MESSAGE gshhs.cpp:1338 Loading World Chart Q=0 in 0 ms.
09:02:55.594 MESSAGE gshhs.cpp:1338 Loading World Chart Q=4 in 0 ms.
09:02:55.594 MESSAGE gshhs.cpp:1521 GSHHG: Loaded quality 4 for land crossing detection.
09:04:12.696 MESSAGE chart1.cpp:1852
The cursor located data overrides the size of the boxes.
Ave Windspeed is too small to see and not centered.
Should be DPI responsive.
ClimatologyOverlayFactory.cpp
systemGetProcAddress(ADDR) not defined
build-circleci-jammy
https://app.circleci.com/pipelines/github/rgleason/climatology_pi/200/workflows/21590938-b772-454c-a2f5-ec50d738c8af/jobs/2553
CMakeFiles/climatology_pi.dir/src/ClimatologyOverlayFactory.cpp.o -c /home/circleci/project/src/ClimatologyOverlayFactory.cpp
/home/circleci/project/src/ClimatologyOverlayFactory.cpp: In function ‘void QueryGL()’:
/home/circleci/project/src/ClimatologyOverlayFactory.cpp:106:36: error: ‘glXGetProcAddress’ was not declared in this scope; did you mean ‘systemGetProcAddress’?
106 | #define systemGetProcAddress(ADDR) glXGetProcAddress((const GLubyte*)ADDR)
| ^~~~~~~~~~~~~~~~~
/home/circleci/project/src/ClimatologyOverlayFactory.cpp:106:36: note: in definition of macro ‘systemGetProcAddress’
106 | #define systemGetProcAddress(ADDR) glXGetProcAddress((const GLubyte*)ADDR)
| ^~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/climatology_pi.dir/build.make:79: CMakeFiles/climatology_pi.dir/src/ClimatologyOverlayFactory.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/circleci/project/build'
make[1]: *** [CMakeFiles/Makefile2:166: CMakeFiles/climatology_pi.dir/all] Error 2
make[1]: Leaving directory '/home/circleci/project/build'
Climatology saves the data to the wrong folder "C:\ProgramData\opencpn\plugins\climatology_pi\data" which is a "user" folder.
This data is not changed by the "user", so it should land in
C:\Program Files (x86)\OpenCPN\plugins\Climatology_pi\data\
for downloaded data untouched by Users, as it is necessary for the plugin to run,
LATER: This above statement is incorrect... I now believe the data directory and files should land in
%localappdata%\opencpn\plugins\climatology_pi\data
Whereas this location (which is not needed in this case) is the new location for User writable data:
%localappdata%\opencpn\plugins\climatology_pi\data
OpenCPN/OpenCPN#1022 (comment) Leamas writes:
This is related to https://github.com/OpenCPN/OpenCPN/issues/2256. Basically, plugins which writes data need to use GetpPrivateApplicationDataLocation() to get a reference to the directory where files should be written. Some plugins don't, this is bugs which must be fixed for many reasons (flatpak is just one of them).
Until this is sorted out it's probably no point pushing this -c (portable) OpenCPN issue further.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.