Helios 1.6.5011.1
Pre-releaseSummary
This is a giant release with many upgrades and changes to the core of Helios. These changes allow for the creation of new interface types and controls. As such, there are many changes from 1.6.3xxxx releases, so the version number has been bumped to 1.6.5xxxx to reflect that.
derammo's Notes
This is my final release, after which I am taking an indefinite leave from Helios development. There will be multiple builds, so go ahead and file bugs against it, so I can fix some of them, time permitting.
Thanks to those who helped with testing and other contributions along the way, and thanks to those who tried to get me some Patreon support to keep this effort going. To anyone considering taking over as lead developer: I think there are around 2000 to 3000 users right now, based on github download counts. Many BMS users have been getting their Helios binaries from an unauthorized redistribution, so we have no idea how many of those there are.
Soft Interface Support (derammo)
The biggest user-visible feature in this release is the support for DCS interfaces defined in JSON files. This means savvy profile developers can edit or complete the interfaces themselves, without having to compile Helios. I am also contributing initial versions of DCS interfaces for the following aircraft/devices/vehicles:
A-4E-C
AH-6J
AJS37
Alphajet
Bf-109K-4
C-101CC
ChristenEagleII
Edge540
F-14B
F-16C_50
F-22A
F-5E-3
F-86FSabre
FW-190A8
FW-190D9
Hercules
I-16
JF-17
L-39ZA
M-2000C
MB-339PAN
Mi-24P
Mi-8MT
MiG-15bis
MiG-19P
MiG-21Bis
NS430
P-47D
P-51D
SA342M
SpitfireLFMkIX
SuperCarrier
UH-1H
VNAO_Room
VNAO_T-45
Yak-52
These interfaces are generated from DCS-BIOS interface definitions (thanks WarLord at the DCS FlightPanels / DCS-BIOS projects!). Because of limitations of the import, these interfaces will usually have all the switches, gauges, and buttons defined correctly, but certain "special" exports will not be done yet. This means, contributors will be invited to complete these interfaces as we move forward. Please see https://github.com/HeliosVirtualCockpit/HeliosInterfaces for details.
Custom interface files can be distributed with Profiles that use them. Just include them in the .helios16 archive to place them in Documents\Helios\Interfaces\....
The existing DCS interfaces from previous versions of Helios are still present but are hard coded in C#. This means they generally require a developer for any changes, with the exception of the F/A-18C interface (see below.)
Other Features (all by derammo)
Editable F/A-18C interface
This interface is defined in the Helios code as before, but you can edit its functions by editing a JSON file, just like the purely JSON-defined interfaces. This means you can fix small issues in the interface without coding in C# also. This interface was selected to trial this hybrid mode of configuration, which might be used for all existing DCS interfaces in the future.
implemented image caching
if enabled, image source objects for the same image are shared by all Helios visuals
this improves load times dramatically, since large profiles tend to have hundreds of buttons and switches that only use a few images
enabled by default
ProfileEditor has tools options setting
ControlCenter has preferences panel switch
improved Profile Reset behavior
the first SetValue call after Reset will now trigger updates
to allow any dependent controls to re-synchronize to the
current state (this matters to DCS and BMS interfaces)
this behavior can be turned off in Tools Options
implemented Numeric Text Display
this variant of Text Display shows numeric values without having to use Lua to convert
it has a configurable Unit assigned to it for conversion
it has a configurable Precision to control how many decimal places to show
implemented raw conversion
binding values can now be converted to their
underlying raw type without Lua, so that Knots
can for example be bound to Numeric. A message
will be displayed in the bindings UI.
updated to latest avalondock
optimization: not rendering controls during load for load speed improvement
default export frequency of DCS interface set to 30 instead of 15
profile editor can now paste Helios XML from text
this means you can copy to a text file and then
later copy that text back to profile editor, for example
to save off a number of items you frequently want to add
to a profile
UI cleaning: empty documentation strings now collapse in UI
Helios Developer Tools (all by derammo)
This optional install (separate MSI) adds various tools useful to Helios Profile developers (not profile users) to Helios. These include, but are not limited to:
DCS Interface Test
This tool animates all values in a DCS interface for testing of bindings.
Requires:
- a DCS interface in the profile
Generate DCS Functional Test Profile
This tool creates an entire profile of controls bound to each and every function in a DCS interface, organized as clickable pages by device, placed on the right-most monitor.
Requires:
- a DCS interface in the profile
- an empty right-most monitor
BMS Changes
Falcon Interface - Add Flight Start Mode binding value. (#455) (linknetx)
MapControl & MapViewer fix for badly formed navpoint string values. (#454) (linknetx)
Falcon Interface - Synchronize all binding values at start of flight. (#453) (linknetx)
Falcon Interface - Poll flight data for current flight only modification. (#451) (linknetx)
Falcon Interface - Poll flight data for current flight only. (#450) (linknetx)
Bug Fixes and Resolved Issues
exceptions thrown during Add Interface now shown in dialog (#456) (derammo)
Core Upgrades for Helios Developers (all by derammo)
internal: support for selection-aware plugin tools
internal: enum converter filtering
enum converter for XAML can now filter out
undesired values from the enum collection
internal: binding value units by name
Helios binding units can now be looked up by name
so they can be used in a combo box for example
internal: plugin loading improved
Helios now won't load random DLLs from Plugins
internal: visual renderer factored and simplified
internal: native windows controls
Helios visuals can now register for native windows mouse
events for right clicking and other advanced use cases
if they declare themselves aware of that API
Helios visual renderers can now be implemented by native
windows controls for display of regular widgets in the
Helios visual tree
Helios visuals can now register for manipulation (touch)
events directly from windows if they declare themselves
aware of that API
internal: helios visuals can be configured from xml model
hidden feature: secondary profile directory
by placing the correct key in settings file, Control Center can be
told to load profiles also from an additional location, such as a
dropbox or similar folder
internal: support for interface hierarchy
interfaces can now be children of other interfaces, and their parent must be added first
interfaces are now a tree in the UI
this allows for example a single Falcon interface, to which various Falcon feature interfaces could be added
originally developed for a canceled project that had a single interface to DCS with multiple per-aircraft child interfaces
internal: fixed exceptions handling in control center log
status viewer log target was using incorrect async call,
causing exceptions to be ignored instead of becoming fatal
Full change notes from previous releases here: https://github.com/HeliosVirtualCockpit/Helios/wiki/Change-Log