Skip to content

Helios 1.6.5011.1

Pre-release
Pre-release

Choose a tag to compare

@derammo derammo released this 23 Sep 14:36
· 975 commits to master since this release

Summary

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