Jsbsim Versions Save

An open source flight dynamics & control software library

v1.2.0

5 months ago

JSBSim version 1.2.0

Release files

  • Windows 64 bits
    • JSBSim-1.2.0-setup.exe (Windows installer compiled with Microsoft Visual Studio Enterprise 2019 (build 16.11.34114.132))
  • Ubuntu Focal 20.04 and Jammy 22.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

v1.1.14

5 months ago

JSBSim version 1.1.14

Release files

  • Windows 64 bits
    • JSBSim-1.1.14-setup.exe (Windows installer compiled with Microsoft Visual Studio Enterprise 2019 (build 16.11.34114.132))
  • Ubuntu Focal 20.04 and Jammy 22.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

v1.1.13

1 year ago

JSBSim version 1.1.13

Release files

  • Windows 64 bits
    • JSBSim-1.1.13-setup.exe (Windows installer compiled with Microsoft Visual Studio Enterprise 2019 (build 16.11.33027.164))
  • Ubuntu Bionic 18.04 and Focal 20.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

  • The license of libexpat is now included in the Windows installer and in the Python wheels.
  • Input sockets that were broken on Windows have been fixed.

Python module

  • The Python script JSBSim has been renamed JSBSim.py and now has the same features than the binary executable JSBSim.exe.
  • Fixed the data folders that are installed along with the Python module: some aircraft sub-directories System and Engines were missing in the previous release (issue #687)
  • Python wheels for MacOSX are now provided as universal binaries for Python >=3.8 which allows using these binary wheels with Apple Silicon chips.
  • Python wheels for Python 3.11 are now available.
  • JSBSim Python module is now installed under a single folder including the licenses and the aircraft data. In the previous release, the files were scattered among several folders. This allows a cleaner installation and removal (PR #755).
  • Type hints are now provided along with JSBSim Python module (as per PEP 561 and PR #756).
  • Usage of uninitialized instances of JSBSim classes now throws an exception to avoid a crash of the Python interpreter.
  • eTemperature and ePressure are now derived from the Python module enum.
  • Some internal methods are no longer accessible. Their names were prepended by the double underscore __ which according to Python programming guidelines are meant to be private methods. So you were warned !

MATLAB S-Function

  • By default, the S-Function is now compiled using the flag JSBSIM_STATIC_LINK since JSBSim is supplied as a static library in the Windows installer (PR #735).

Developer

  • Removed the Messages feature as it was unused and was using a static member that could lead to a segmentation fault when using several instances of FGFDMExec (issue #666)
  • Restored the automatic rebuild of the Python module that should occur when the headers included in jsbsim.pyx are modified.
  • Replaced CMAKE_SOURCE_DIR by PROJECT_SOURCE_DIR to allow JSBSim being built using CMAKE FetchContent (issue #684)
  • The dependency to the win32api module has been removed to build JSBSim Python module on Windows.
  • Random number generation is now made using C++11 standard library. This allowed removing another static member (issue #666)
  • Fixed a bug that prevented building JSBSim as a DLL using the MinGW compiler (issue #719)
  • Unit tests have been added for the following classes: FGRealValue, FGParameter, FGParameterValue, FGCondition.

v1.1.12

1 year ago

JSBSim version 1.1.12

Release files

  • Windows 64 bits
    • JSBSim-1.1.12-setup.exe (Windows installer compiled with Microsoft Visual Studio Enterprise 2019 (build 16.11.32602.291))
  • Ubuntu Bionic 18.04 and Focal 20.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

  • Improvements to the <table> element:
    • Better error handling and improved messages when an error is found.
    • <table> now accepts 1x1, 1xN and Nx1 shapes (issue #185).
  • The XML schemas for scripts and systems have been updated to match the most recent JSBSim features.
  • Accelerations with respect to the ECI frame (and expressed in the body frame) are now exported by the properties:
    • accelerations/uidot-ft_sec2
    • accelerations/vidot-ft_sec2
    • accelerations/widot-ft_sec2
  • Rotational accelerations with respect to the ECI frame (and expressed in the body frame) are now exported by the properties:
    • accelerations/pidot-rad_sec2
    • accelerations/qidot-rad_sec2
    • accelerations/ridot-rad_sec2
  • Clarified the legal notice as well as the license used by JSBSim and its dependencies.
  • Temporary fix for issue #654: the balloon content can no longer reach 0.0 moles.
  • The example script scripts/weather-balloon.xml now display the burst event.

Python module

  • The minimum Python version is now 3.7
  • The dependency of the Python module to setuptools has been removed.
  • Fixed issue #611 - extra arguments can now be added to the constructor __init__ of a class inheriting from FGFDMExec.
  • Fixed issue #641 - the method FGFDMExec.get_property_catalog() no longer has arguments to match the signature of its C++ counterpart.

MATLAB S-function

  • The documentation matlab/README.md for the MATLAB S-Function has been improved.
    • Added MacOS build instructions
    • Documented the version of MSVC used to compile the JSBSim library
  • Added MacOS compile line for MATLAB S-Function in the script JSBSimSimulinkCompile.m
  • Allow two engines
  • Overrode script control through SFunction input
  • Control input on scripts only when allowed
  • Added XML script to config the I/O ports of s-function
  • Added error handling and dynamic update of I/O ports
  • Created optional second input for wind/turbulence
  • Added read/write checks for nodes
  • Weather input now loaded to JSBSim
  • Updated simulink model ex737cruise.slx and ex737cruise_io.xml.

Aeromatic++

  • Overhaul of the propeller code, the produced tables now matches published data quite close.
  • Created a configuration file in metric units when the parameters are entered in metric units.
  • Added the option to save the aerodynamics section and the external-force section into separate files.

Developer

  • The Python module shall now be compiled with setuptools>=60.0.0
  • Migrating the front-end of the Python module build process from setuptools to build (work in progress)
  • The Python source package now includes the Cython source code jsbsim.pyx instead of the Cython output jsbsim.cxx. This allows having consistent input data if the local version of Cython is different than the one used by JSBSim while building the source package.
  • Added an .editorconfig file to set coding conventions for editors.
  • Progress has been made on the migration from distutils to setuptools (still work in progress).
  • The JSBSim library can now be built as a DLL on Windows.
  • JSBSim now builds and uses libexpat 2.4.8 (unless explicitely requested to use the system libexpat library).

v1.1.11

2 years ago

JSBSim version 1.1.11

Release files

  • Windows 64 bits
    • JSBSim-1.1.11-setup.exe (Windows installer)
  • Ubuntu Bionic 18.04 and Focal 20.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

This is the last release of JSBSim that supports Python 3.6. Python 3.6 has reached its end of life and is no longer supported by the Python Foundation (see PEP494). Please upgrade to Python 3.7 or higher.

  • Output files are now written in the current directory instead of being written in the aircraft folder (issue #337)
  • The uninstall of Python wheels now completely removes the directory structure that was created during the installation of the aircraft data.
  • A new exception TrimFailureException is now thrown when trim fails. This eases the detection of the trim failure (previously the exception message needed to be checked).
  • An exception is thrown when a latitude higher than 90 degrees is supplied to a <waypoint> control element (PR #536)
  • Fix the sign of the initial NED climb rate (property ic/gamma-deg) (PR #545)
  • JSBSim now checks malformed data in <table> elements. Anything different than numbers and spaces/tabs will be rejected.
  • Usage of <location> and <orientation> in engines is now officially dropped (PR #559, #561 and #563). These elements were deprecated long ago in favor of the corresponding elements <location> and <orientation> in thrusters. Therefore the code removed is no-op.
  • The computation of the initial rotation rates has been fixed (Issue #553). Previously, the rotation rates could be initialized with extremely high values when the vehicle was spawned over the Poles. And for a given set of initial conditions, the initial rotation rates could have different values depending on the initial latitude at which the vehicle was initialized. This now fixed.
  • [Windows] The script JSBSimSimulinkCompile.m that builds the MATLAB S-function is now set to be executed immediately after the installer JSBSim-setup.exe has been run and no longer need manual updates before being run.
  • The precision with which values are transmitted thru a socket can now be set via the attribute precision such as <output precision="8"> (PR #579)

Developer

  • Added 2 new methods to FGFDMExec: SetOutputPath and GetOutputPath to specify the path to which the output files will be written.
  • Python method FGFDMExec.set_root_dir() no longer alters the aircraft, engine and system paths. This is now the same behavior than its C++ counterpart FGFDMExec::SetRootDir.
  • All JSBSim exceptions now inherit from JSBSim::BaseException. There still exist std::string exceptions thrown by JSBSim. Cleanup is still in progress.
  • JSBSim no longer calls exit() or abort(). Exceptions are thrown instead. This gives the calling application an opportunity to gracefully recover.
  • The MATLAB S-Function is now tested on Windows and MacOSX in addition to Linux.
  • As distutils will be deprecated for Python 3.11, the migration to setuptools has been started. There are still a number of distutils features which have no equivalent to setuptools so this is work in progress.
  • Improved the ability of setup.py to be executed on multiple platforms (removed some hardcoded statements)
  • SGPropertyNode:getName() is no longer used as it has been dropped from the official SimGear library. This allows remaining compatible with FlightGear.
  • When <input> and <output> elements are read from a file, JSBSim now checks that the file can be read before reading it, otherwise an exception is thrown. This avoids SEGFAULTs.

v1.1.10

2 years ago

JSBSim version 1.1.10

Release files

Binary files

  • Windows 64 bits
    • JSBSim-1.1.10-setup.exe (Windows installer)
  • Ubuntu Bionic 18.04 and Focal 20.04 - amd64
    • *.deb (Debian packages)

Python module

Release 1.1.10 supports Python 3.6 and higher

  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

  • Added the Matlab example files (TestJSBSim.m and ex737cruise.slx) in the Windows installer JSBSim-1.1.10-setup.exe to allow the user testing the S-Function once it is built.
  • Provide Python package for Python 3.10
  • Fixed an error where JSBSim could not autodetect the location of the bundled aircraft data (issue #337)

Developer

  • The XML validation schema for scripts has been updated. All scripts are now validated against this schema when a GitHub Action is triggered.

v1.1.9

2 years ago

JSBSim version 1.1.9

Release files

Binary files

  • Windows 64 bits
    • JSBSim-1.1.9-setup.exe (Windows installer)
  • Ubuntu Bionic 18.04 and Focal 20.04 - amd64
    • *.deb (Debian packages)

Python module

Release 1.1.9 supports Python 3.6 and higher

  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

  • Fixed an error which prevented the equatorial and polar radii from <planet> to be propagated to the initial conditions.
  • The header files needed to build the Matlab S-Function are now included in the Windows installer (issue #491).
  • The planet radii in <planet> can now be specified by the tags <equatorial_radius> and <polar_radius> which are more self explanatory than <semimajor_axis> and <semiminor_axis> (which are still valid).
  • The support of Ubuntu Xenial 16.04 has been dropped: JSBSim packages for this version of Ubuntu are no longer released.
  • Improved the error messages returned by FGTable: the file name and line number where the error occurred are now printed.
  • Check the number of <input> tags for flight controls such as <pure_gain> (issue #497). This avoids a crash when some or all <input> elements are missing.
  • JSBSim now accepts 2 sign conventions for the cross product inertia (xy, xz, yz) in <mass_balance> (see PR #502). The sign convention is specified by the parameter negated_crossproduct_inertia which defaults to true for backward compatibility.
  • The attribute negated_crossproduct_inertia is now specified in the JSBSim models that are using non zero cross product inertia.
  • Turbine engines can now windmill even before they start (issue #494 and PR #509).
  • Fixed a sign error in the computation of aero/h_b-mac-ft (PR #508 )
  • Example scripts and aircraft data (as well as their engines and systems) are now included in the Python wheels (issue #337). They can be accessed from the Python module using the new function jsbsim.get_default_root_dir().

Developer

  • Added a regression test for the <planet> feature.
  • Expanded the unit test of FGTable. It now checks:
    • Initialization from XML
    • Table names using the prefix #
    • 3D tables
    • Error handling.
  • Fixed a bug where FGTable instances were not untied from the property manager during their destruction. This could lead to segmentation faults when the property manager was later destroyed.
  • Exceptions raised by FGTable are now instances of the TableException class.
  • A minimum Python version is now specified for the binary wheels (currently 3.6 or higher).
  • The Python script setup.py is no longer changing the current directory.
  • The flag INSTALL_PYTHON_MODULE has been renamed INSTALL_JSBSIM_PYTHON_MODULE. The former being too generic, this avois potential name clashes with other modules.
  • Two new scripts have been added in the admin folder:
    • XML_mass_update.py which allows automatically updating selected XML files in the aircraft data. It has avoided manual updates for the aircraft models which have been updated with the new XML attribute negated_crossproduct_inertia.
    • prepare_test_release.sh which modifies JSBSim to dry run a test release 0.99.xx to be published to TestPyPI

v1.1.8

2 years ago

JSBSim version 1.1.8

Release files

  • Windows 64 bits
    • JSBSim-1.1.8-setup.exe (Windows installer)
  • Ubuntu Xenial 16.04, Bionic 18.04 or Focal 20.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

  • Add an interface to Matlab (PR #445)
  • Fix a bug in <linear_actuator> that resulted in erroneous output values when oscillating around the zero value (issue #485)
  • Update the Windows installer to distribute the files needed to build the interface with Matlab

Developer

  • Improve test coverage for FGQuaternion
  • Restore automatic deployment of the wheels for Python 3.9
  • Deployment now need the build for MinGW32 to succeed
  • Add a unit test for FGPropertyValue and FGTable
  • Add an assert that forbids to set the value of FGPropertyValue when the property was specified with a minus sign
  • Add a regression test for issue #485
  • Expand the message of the exception that is raised when not providing a value or a property to FGParameterValue.

v1.1.7

2 years ago

JSBSim version 1.1.7

Release files

  • Windows 64 bits
    • JSBSim-1.1.7-setup.exe (Windows installer)
  • Ubuntu Xenial 16.04, Bionic 18.04 or Focal 20.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

  • Mass flows can now be specified using SI unit (kg/s)
  • Fixes issues where propellers were reported:
    • to generate high torques while being motionless or,
    • to unexpectedly spin in mild wind conditions.
  • [Python] The methods load_ic and load_script now raise a FileNotFoundError exception when called on non existing files. This avoids the Python interpreter being killed when specifying a wrong path (or filename) to these methods.
  • Adds a new property propulsion/fuel_freeze to freeze fuel consumption (PR #462). This can be used for simulations that require the aircraft mass to remain constant.
  • Adds a new flag DONT_EXECUTE_RUN_IC that can be specified to FGFDMExec::ResetToInitialConditions (PR #466). When specified, this flag avoid calling FGFDMExec::RunIC when FGFDMExec::ResetToInitialConditions is executed.
  • Fixes an error in the F-15 model where the kinematic element was not connected to the elevator position (PR #471)

Aeromatic++

  • Fixes lift curves for delta wings (issue #436 / PR #450)
  • Samples input files are now provided for aeromatic++ in the folder utils/aeromatic++/samples/ (PR #453)
    • These sample files are distributed with the Windows installer JSBSim-1.1.7-setup.exe
  • Fixes a bug which avoided engine data to be generated (issue #436 / PR #458)

Developer

  • [Python] Both signatures of FGFDMExec.load_ic are now tested.
  • Improves the release message
  • Uses GitHub default TOC (table of contents) for Markdown documentation rather than providing our own (ugly) one.
  • Avoids building JSBSim with Python 3.10 since this new version of the language will not be released until October 2021.

v1.1.6

2 years ago

JSBSim version 1.1.6

Release files

  • Windows 64 bits
    • JSBSim-1.1.6-setup.exe (Windows installer)
  • Ubuntu Xenial 16.04, Bionic 18.04 or Focal 20.04 - amd64
    • *.deb (Debian packages)
  • Python wheel packages can be installed from PyPI with the command pip install jsbsim or pip install --upgrade jsbsim when JSBSim is already installed on your system.
  • Conda packages are available from conda-forge. To install this package with conda run: conda install -c conda-forge jsbsim

Changelog

User

  • New properties propeller-power-ftlbps, propeller-torque-ftlb and propeller-sense for Propeller power, torque, and sense (PR #394)
  • Fixes segmentation faults, a delta-wing Lift_alpha and Drag_alpha problem in aeromatic++ (issue #400)

Developer

  • Always set useDefault to false when calling SGPropertyNode::tie() (issue #363)
  • Fixes build with recent versions of MinGW64 (issue #397)
  • Fix ws2tcpip.h casing for cross compilation.