December 2016 v4 Development Summary
Added 2017-01-03 03:44:38 +0000 UTCIn December, v4 development covered the following areas:
- Completing the process of getting the vertical bulletin scroll operational and fixing bugs found with it
- Utilizing modern C++ compiler options like the address sanitizer and undefined behavior sanitizer to see if v4's codebase has problems in those areas. There were a small number of issues which were easily fixed.
- Implementing the horizontal warning crawl
- Rewriting the code that interfaces with the FMOD sound library, as there were significant bugs in the existing code
- Drafting the outline for how the configuration GUI will function
- Creating the architecture required for v4 to read in files for configurations and data. This required use of another third party library which means it had to be implemented and tested on all platforms (windows, linux, osx).
- Beginning work on creating a national list of cities that will be used to populate the regional observations and regional forecast segments. This is about a third of the way completed so far.
- Integrating various databases that contain information about every town and city in the US about their longitude and latitude locations and states, all metar stations along with their longitude/latitude locations, and shapefiles that contain the geographical longitude and latitude polygons for all NWS zones. The integration of all this data will allow v4 to automate a great portion of creating configurations for new locations.
- Attempting to find the best cross platform method of navigating the file system and determining the working directory that the v4 binary is executing in, this is needed for specifying config and profile locations, and also for determining where to look for the default configuration/profile.
- Beginning to write some areas of v4's configuration GUI
- Rewriting the layout of some data members in v4's config and profile classes to avoid some pitfalls that were occurring with various C++ behavior
Implementing the vertical bulletin scroll in v4 required some extensive rewriting to utilize off screen textures, or frame buffer objects, and then ensure the timing was consistent when a scroll repeated vs when it first displays. There was also so improvements to the word wrapping behavior to better match the 4000's.
The compiler debugging sanitizer options would not work on OSX or Windows, and was tested in Linux. Now that there is a way to test them, they should prove useful for minimizing these types of bugs in v4's code.
Implementing the horizontal warning crawl exposed some significant bugs with the code that interfaces with the FMOD sound library, requiring a fairly extensive rewrite, and as a result v4's sound code is much more robust now.
A general outline for v4's configuration was written up and will be used as a reference for GUI development, some of which has already begun. The database integration mentioned above involved converting the data to a format compatible with v3's data structures for that information, and then serializing it in binary format to either be stored in the program itself, or for the really big datasets, their own separate data files which will then be loaded in when needed.
In January, work will continue primarily with the configuration GUI development. The completion of the GUI will allow initial closed beta testing to be possible.
Thank you again for being a supporter of this project.