I have started this project mainly to bring my personal desires to the great features available from HamClock. My advice is that you start there, then check out my design goals to see if this project may provide some benefit to you. I am not here to criticize HamClock, only to bring a slightly different vision to packaging the features. It has taken on a life of its own as I looked into the various small environment GUI systems that are available; I finally decided to write my own.
The short answer is because none of the existing available alternatives met all my needs. The long answer is a bit more complicated. I may get to writing all about that some time, but for now here is part of the story.
I started out porting HamClock to Raspberry Pi C++ using NanoGui. You can read about that experience in my other repository GuiPi. Eventually most of what is there will end up here. Ultimately though I was not satisfied with NanoGui. It is a great piece of work and impressive, but not close enough to what I wanted. So here we are.
Basic Doxygen documentation is hosted by codedocs.xyz.
See Installing documentation.
Rose is primarily aimed at a Raspberry Pi with a small display. My personal target environment is a Pi 3B in a SmartyPi case with the Raspberry Pi 7 inch touchscreen display.
My development environment is Linux (Linux Mint at the moment) using CLion as my IDE. So everything should work on any Linxu distribution, but certainly distributions which are like Debian.
A also have a Pi 4B with 8GB of memory I use to generate packages which I host on GemFury. I may replace my Pi 3B with a Pi 4B 2GB model.
sudo apt install cmake libsdl2-dev libsdl2-ttf-dev libsdl2-image-dev libcgicc-dev libsoci-dev libsqlite3-dev libcurl4-openssl-dev libcurlpp-dev
SDL2 Using packages available in the respective OS repositories
- SDL is used as the graphics drawing package.
- SDL2_IMAGE is required for image manipulation.
- SDL2TTF is required for font manipulation.
- The version of SDL2 distributed with Raspberry Pi OS needs to be modified to change the following lines:
*
to:
/* Note: If you modify this list, update SDL_GetPixelFormatName() */ enum
/* Note: If you modify this list, update SDL_GetPixelFormatName() */ typedef enum
- and
to:SDL_DEFINE_PIXELFOURCC('O', 'E', 'S', ' ') };
SDL_DEFINE_PIXELFOURCC('O', 'E', 'S', ' ') } SDL_PixelFormatEnum;
- CURL is used for accessing assets on the WWW.
SOCI with sqlite3 plugin
- Database access for:
- Application settings.
apt install graphviz doxygen
https://www.brailleinstitute.org/freefont
https://vicrucann.github.io/tutorials/quick-cmake-doxygen/
https://forums.libsdl.org/viewtopic.php?p=48648
https://github.com/jdupuy/dj_fft
https://www.movable-type.co.uk/scripts/latlong.html
https://ithoughthecamewithyou.com/post/international-date-line-longitude-latitude-coordinates
https://metacpan.org/pod/Astro::MoonPhase https://www.ben-daglish.net/moon.shtml https://www.subsystems.us/uploads/9/8/9/4/98948044/moonphase.pdf