CScintillaCtrl, CScintillaView & CScintillaDoc v1.87

Just to let everyone know that v1.87 of CScintillaCtrl, CScintillaView & CScintillaDoc has been released. Updates for this version include:

  • Rationalized some of the code in CScintillaView::Serialize.
  • The size of the buffer used in SScintillaView::Serialize can now be customized via a member variable “m_nLoadSaveBufferSize”.
Categories: Web Site Updates

CScintillaCtrl, CScintillaView & CScintillaDoc v1.86

Just to let everyone know that v1.86 of CScintillaCtrl, CScintillaView & CScintillaDoc has been released. Updates for this version include:

  • Fixed a bug in CScintillaView::Serialize where SetUndoCollection was not being called when a document was being loaded. This prevents the view from being marked as modified as it is edited. Thanks to Andrew Truckle for reporting this issue.
  • Updated CScintillaView::Serialize to correctly load Ascii, UTF8 with BOM, UTF8 without BOM, UTF16LE with BOM, UTF16LE without BOM and UTF16BE with BOM documents.
  • Updated CScintillaView::Serialize to save documents with whatever BOM they were initially loaded with.
Categories: Web Site Updates

AA+ v2.55

April 29, 2024 Comments off

Just to let everyone know that v2.55 of AA+ has been released. Updates for this version include:

  • Fixed a number of compilation issues in AADynamicalTime.cpp, AAELP2000.h, AAVSOP2013.cpp and AAVSOP87.h when compiling with GCC. Thanks to Andrew Roberts for reporting this issue.
Categories: Web Site Updates

CScintillaCtrl, CScintillaView & CScintillaDoc v1.85

April 27, 2024 Comments off

Just to let everyone know that v1.85 of CScintillaCtrl, CScintillaView & CScintillaDoc has been released. Updates for this version include:

  • Reimplemented CScintillaView::Serialize to use CreateLoader interface and SetDocPointer function when loading a document. This change significantly improves the load time for large documents.
  • Reimplemented CScintillaView::Serialize to use GetCharacterPointer function when saving a document. This change significantly improves the save time for large documents.
Categories: Web Site Updates

AA+ v2.54

April 26, 2024 Comments off

Just to let everyone know that v2.54 of AA+ has been released. Updates for this version include:

Categories: Web Site Updates

CScintillaCtrl, CScintillaView & CScintillaDoc v1.84

April 26, 2024 Comments off

Just to let everyone know that v1.84 of CScintillaCtrl, CScintillaView & CScintillaDoc has been released. Updates for this version include:

  • Verified the code against Scintilla v5.5.0.
Categories: Web Site Updates

SQLiteWrappers v1.41

April 21, 2024 Comments off

Just to let everyone know that v1.41 of SQLiteWrappers has been released. Updates for this version include:

  • Verified the code works against SQLite v3.45.3
Categories: Web Site Updates

SGP4PropWrappers v1.0

April 20, 2024 Comments off

Just to let everyone know that v1.0 of SGP4PropWrappers has been released.

As a extension to the author’s AA+ class framework for Computational Astronomy, I was looking for open source code which would calculate the position of Artificial Satellites. What I found is that these algorithms originated in 1970 and was called Simplified General Perturbation 4 (SGP4). For the background to this algorithm, please see https://en.wikipedia.org/wiki/Simplified_perturbations_models. In 1980 this algorithm was made publicly available with the publication of Spacetrack Report No. 3. This original code was implemented in Fortran. Since then there has been a number of implementations and re-implementations of SGP4 made available. Open source and commercial implementations include https://github.com/dnwrnr/sgp4, http://www.zeptomoby.com/satellites/trackLibrary.htm, https://github.com/csete/gpredict, https://www.chiandh.eu/comp/soft.html, https://ktrack.sourceforge.net, https://www.qsl.net/kd2bd/predict.html, https://github.com/KJ7LNW/sgp4sdp4, http://celestrak.org/software/tskelso-sw.php and https://github.com/Bill-Gray/sat_code. The original SGP4 implementation is now maintained by US Space Command as the Astrodynamics Standards (AstroStds) libraries. These libraries are export controlled requiring a license but a subset is freely available (in binary form) and redistributable. Included in AstroStds is C wrapper code to use it, along with support for other computer languages. SGP4PropWrappers provide a better (IMHO) C++ wrapping for the AstroStds and includes a fully reworked application to calculate a complete topocentric ephemeris for satellite passes such as the ISS.

The complete list of classes which SGP4PropWrappers provides are:

  • SGP4::CDLLLoadError which represents an exception which is thrown when loading an AstroStds library fails.
  • SGP4::CGetFunctionError which represents an exception which is thrown when locating functions in an AstroStds library fails.
  • SGP4::RETVAL is an enum class which represents the return value from AstroStds methods / functions.
  • SGP4::CDllMain encapsulates the functions in the DllMain library.
  • SGP4::CEnvConst encapsulates the functions in the EnvConst library.
  • SGP4::CTimeFunc encapsulates the functions in the TimeFunc library.
  • SGP4::CXAKep provides a C++ class encapsulation of the “XA_KEP_*” Named Constants array type as used by the CAstroFunc and CSGP4Prop classes.
  • SGP4::CXAEqnx provides a C++ class encapsulation of the “XA_EQNX_*” Named Constants array type as used by the CAstroFunc class.
  • SGP4::CXAClassical provides a C++ class encapsulation of the “XA_CLS_*” Named Constants array type as used by the CAstroFunc class.
  • SGP4::CXATopo provides a C++ class encapsulation of the “XA_TOPO_*” Named Constants array type as used by the CAstroFunc::ECIToTopoComps method.
  • SGP4::CAstroFunc encapsulates the functions in the AstroFunc library.
  • SGP4::CXATle provides a C++ class encapsulation of the “XA_TLE_*” Named Constants array type as used by the CTLE and CSGP4Prop classes.
  • SGP4::CXSTle provides a C++ class encapsulation of the “XS_TLE_*” Named Constants array type as used by the CTLE class.
  • SGP4::CTle encapsulates the functions in the TLE library.
  • SGP4::CXASGP4Out provides a C++ class encapsulation of the “XA_SGP4OUT_*” Named Constants array type as used by the CSGP4Prop::Sgp4PropAll method.
  • SGP4::CSGP4Prop encapsulates the functions in the SGP4Prop library.

Features

  • Provides a C++ wrapper for v9.3 of the most important non export controlled Astrodynamics Standards (AstroStds) libraries.
  • All the various wrapper functions / methods are C++ “const correct” unlike the C wrappers provided with AstroStds.
  • All the classes and functions are in a C++ namepace called “SGP4”.
  • Provides a reimplementation of the Sgp4Prop sample application provided with AstroStds using modern C++.
  • The sample application has been extended to generate topocentric satellite ephemeris information. This includes Right Ascension, Declination, Azimuth, Altitude, Range, Right Ascension rate, Declination rate, Azimuth rate, Altitude rate, Range rate, Is the satellite sunlit and is the observer sunlit.
  • The sample application allows only passes to be logged when the elevation is positive.
  • The sample application allows only passes to be logged where the observer is not in daylight. These additions allow a more useful ephemeris to be generated to help spot satellites such as the International Space Station by yourself.
  • A full time constants file generated from the author’s AA+ library (tme_constants.txt) is included in the download covering the date range 1956 to 2030. This includes data to allow accurate conversion to and from the following time scales: UTC, UT1, TDT/TT/ET & TAI. A time constants file is required for the SGP4Prop sample application to calculate accurate UT1 values for calculating Greenwich Sidereal Time and ET values for calculating sunlit conditions for the satellite being observed and the observer’s location. If you do not use a time constants file during ephemeris generation using the sample application then AstroStds assumes that all time scales are the same which can results in errors upwards of a minute using modern date values.
  • The start date, stop date and step size for the ephemeris generated by the sample app can be provided via command line parameters in addition to “6P” cards.
  • Will compile on Windows, Linux and Mac as per the AstroStds libraries themselves.
  • Classes have no external dependencies on other libraries such as ATL or MFC.
  • Hides the details of the AstroStds libraries not working well with C style null terminated strings.
  • Makes it easier to deal with the various array types used by the AstroStds libraries.
  • Provides methods to control loading the AstroStd libraries from user supplied directories. These methods use exceptions to report loading errors.
  • Includes code in the sample application to fully unit test the various wrapper classes and code.

Categories: Web Site Updates

DtWinVer v2.68

April 7, 2024 Comments off

Just to let everyone know that v2.68 of DtWinVer has been released. Updates for this version include:

  • Provided a new IsWindows11Version24H2 method.
Categories: Web Site Updates

CScintillaCtrl, CScintillaView & CScintillaDoc v1.83

March 29, 2024 Comments off

Just to let everyone know that v1.83 of CScintillaCtrl, CScintillaView & CScintillaDoc has been released. Updates for this version include:

  • Updated copyright details.
  • Updated class to work with Scintilla v5.4.3. New messages wrapped include: SCI_GETUNDOACTIONS, SCI_GETUNDOSAVEPOINT, SCI_SETUNDODETACH, SCI_SETUNDOTENTATIVE, SCI_SETUNDOCURRENT, SCI_PUSHUNDOACTIONTYPE, SCI_CHANGELASTUNDOACTIONTEXT, SCI_GETUNDOACTIONTYPE, SCI_GETUNDOACTIONPOSITION & SCI_GETUNDOACTIONTEXT.
Categories: Web Site Updates