Page 1 of 13 1235 Last
Results 1 to 15 of 186

Thread: StatusDisplay - status.json / journal display and surface navigation assistant.

  1. #1

    StatusDisplay - status.json / journal display and surface navigation assistant.

    With the inclusion of status.json as an addition to the player journal data offered by the game in 3.0, I started development of an application to display that data and, given that positional information is included when in proximity to a landable body, allow the player to set destination latitude / longitude and calculate the range and bearing to that destination. Following success with status.json, attention has now moved to reading and displaying information from the player journal.

    Displays

    StatusDisplay offers two types of displays: "grids" and "MFDs" which display either buttons or panels selected by the user in a number of display elements.

    Elements are rectangular portions of a display which can show either buttons or panels.

    Buttons are designed as small display elements which may show control bindings or game data and may be assigned to any element in an MFD display.

    Panels are designed as large display elements which show game related data and may be assigned to any element of a grid display and the central elements of an MFD display.

    The basis hue, saturation and luminosity of grids and MFDs can be modified.

    The border settings for the grid and MFD displays can be individually defined - example shows 0% for both - which reduces the size of the image within the window (and, in the case of MFD displays, expands buttons to the edges) to suit individual display requirements.

    Grids are comprised of up to 144 display elements arranged in a 12 x 12 grid. The user defined size of the grid display can be set in the range 240px x 60px and 3840px x 2160px. Grid displays are resized by changing their dimensions in the grid settings dialog. The background of any grid can be disabled allowing completely transparent elements in the image. There is also an option to display elements with rounded corners rather than square corners. Each grid element can be set to display a panel. If adjacent elements are set to display the same panel then they will be combined to form larger chunks, firstly horizontally then vertically.

    Grid1 is a grid which will only be displayed when the GuiFocus is "straight out of the cockpit", if not it will be hidden.

    When in focus, grid displays are opaque, reverting to a user defined opacity on loss of focus.

    MFDs are comprised of 20 peripheral elements and up to 20 central elements. The outer 20 can be set to mirror bound controls by extracting relevant control bindings from the user's control bindings file with the corresponding button being assigned to the element. There is an option to have the application automatically switch between ship and SRV bindings with the SRV set being defined separately. The central 20 elements behave like a 4 x 5 grid and can have either buttons or panels assigned to each element. Elements in the central section of the MFD display will be combined to form chunks as they are for grid displays.

    Horizontal and vertical text alignment can be specified for each group of display elements for each MFD display, i.e. top row, bottom row, left column, right column and centre block.


    Example grid:


    Example MFDs:



    StatusDisplay options are set in the options dialog (accessed by right clicking on any of the displayed windows) which incorporates all grid and MFD toggling checkboxes and settings buttons, route selection, input of body radius (needed to calculate speed-over-ground and range to target), destination position, body radius (to allow distances to surface targets to be expressed in metres). All display windows are set to be always on top, so will be visible when on the same screen as the game while playing in borderless or windowed mode.

    Beta 0.0.5.7:

    1) Tidy up of fuel panels;
    2) Added different log scale "tick" variants to the Altimeter panel; now offers 4, 5, 8 & 10 tick options.
    3) Code tidy up.

    Previous new features:
    ]New in 0.0.1.8, optional second MFD control set for use when in SRV.
    New in 0.0.1.9, ability to load current game bindings directly from Custom.3.0.binds file for each MFD separately.
    New in 0.0.2.0, ability to select one, both or neither of DEST / POSN to display in the centre of each MFD - now slightly reduced in height to leave one row of centre buttons visible when both DEST and POSN selected.
    New in 0.0.2.1, refresh rate can now be selected by user; some active MFD display elements now "pulse"; displayed time should now correct to GMT.
    New in 0.0.2.2, very limited Journal information.
    New in 0.0.2.3, a bit more Journal information and a fuel gauge. :)
    New in 0.0.2.4, optional Info panel in Overlay and/or MFD.
    New in 0.0.2.5, concatenation of consecutive journal entries of the same type for fuel scooping; discovery scans and ship passive scans.
    New in 0.0.2.6, refresh of MFDs now subject to change in text / colour of elements, subject to a minimum refresh rate of 1Hz.
    New in 0.0.2.9, new fonts: Droid Sans Mono; Inconsolata; SV Basic Manual. Fix to default settings. Option to select process priority added.
    New in 0.0.3.0, two more MFD displays; trip meter (shares Info panel) - shows information for jumps made in the present game session.
    New in 0.0.3.1, minimum MFD element text (chars/lines) setting; "To Edge" MFD element setting; Trip Meter zero button (in Options).
    New in 0.0.3.2, "To Edge" setting now permits MFD display element internal border to be set in the range 0 to 10; default = 1.
    New in 0.0.3.5, Location and Trip panels for Overlay and MFDs. These are individual versions of the two displays combined in the existing Info panel (which remains).
    New in 0.0.3.7, Comms display panel added. This is a large panel similar in size to the Journal panel and is available on both the main overlay and the MFD displays.
    New in 0.0.3.9: now reads navigation.json which contains POI and Route information including proximity criteria for determining whether each waypoint has been reached. Initially limited to surface navigation, the intention is to expand this to include inter-system routes and dockings.
    New in 0.0.4.1: Added /Publish and /ReadHere command line parameters to instruct StatusDisplay to write journal / status.json data as it comes in to the same directory that the executable is in and to read from that directory. Requires two copes of StatusDisplay to be running to function. Allows game information to be able to be displayed on a different PC than the game is being played on.
    New in 0.0.4.2, panel display system now based on a 12 x 12 grid of panel elements. Elements are formed into "chunks" first horizontally then vertically to form larger display elements in the grid. The main overlay and Tiny window have been converted into panels. Panel size can be set in the range 240px x 40px to 3,840px x 2,160px. There are known issues with toggling the border and resizing of the main panel. Workaround is here:
    https://forums.frontier.co.uk/showth...=1#post7042793
    New in 0.0.4.3, added a few new micro-Panels; added two-letter designation to the raw flags panel.
    Beta 0.0.4.4: bugfix release.

    Beta 0.0.4.5,
    1) Converted MFD centre elements to a pseudo-panel, uses MFD display elements but can "chunk" them together;
    2) Changed save-file format to use Base64 rather than hex for MFD and Panel assignment settings; increases number of possible panels to 4095 (the same as for MFD elements) and paves the way for reworking the display of panels on MFDs (to be the same as for Panels, for the centre section);
    3) Bugfix in Options dialog (was refreshing and closing up drop-downs);
    4) Activating any window permits the use of LEFTALT-R to toggle recording of session history (interleaved journal and status.json data, as it is published by the game);
    5) Added some slightly more verbose status flag display panels (3-off, 9 flags per, in the order published in status.json).
    New in Beta 0.0.4.6, MFD centre elements can now display either elements or panels. New 3x9 more verbose flag display panel added.

    Beta 0.0.4.7:
    1) Added "countdown" display element and panel - effectively a user-configurable timer for which the display flashes when the time has elapsed. It has a "snooze" feature. ;)
    2) Added "Great Circle Navigation" feature and panel - allows the user to be guided on an arbitrary great circle route (defined by initial point and initial heading). The closest point on the GC, related to the player's current position, is calculated in real-time and a "target point" (a bit further along the GC) is calculated for the player to head for. A track error "tolerance" is also included to warn the player when they "step off the path".
    3) Added a position "track" display, initially for Great Circle Navigation but also for just trundling around when the vehicle has position lock.
    4) Added a 9x3 flag display panel (to complement the previously added 3x9 version).

    Beta 0.0.4.8:
    1) New bindings added for Chapter 4;
    2) New Ch.4 events added (not necessarily implemented but StatusDisplay is prepared for known events);
    3) New Ch.4 status.json flags / data added;
    4) The refresh rate of all windows can be individually set in the range 1 Hz to 16Hz.
    5) Bugfix relating to some drop-down settings.

    Beta 0.0.4.9:
    1) Fix to tracking of which MFD or panel is being configured; should stop settings windows becoming unresponsive;
    2) FSSSignalDiscovered event now collated.

    Beta 0.0.5.0:
    1) Fixed FireGroup display, now with added "FireGroup A"!
    2) Added more "LEFTALT" bindings; LEFTALT-C co-locates all windows; LEFTALT-L loads settings; LEFTALT-S saves settings; LEFTALT-O shows options dialog.
    3) HUD Mode display "fixed" - now shows which HUD mode is selected.
    4) Friends event now collated.

    Beta 0.0.5.1:
    1) Addition of StatusDisplay cumulative CPU utilisation as a percentage and as core-seconds.
    2) The path that StatusDisplay uses to locate journal files, status.json and the bindings file is that contained in the environment variable "USERPROFILE". StatusDisplay can now be redirected to a different directory by appending the desired path to the second line of the settings file, e.g. SD:00000000000000B1;C:\Users\User where "C:\Users\User" is the desired path. This requires that the PC on which StatusDisplay is running has read access to the storage location, i.e. the user folders, on the target PC.

    Beta 0.0.5.2:
    1) Start of implementation of "proper" text handling for localised text from the journal.

    Beta 0.0.5.3:
    1) Added Fuel Reservoir level display element, making use of improved fuel level information publication in status.json.

    Beta 0.0.5.4:
    1) Added "Limpets" button - shows number of limpets in the ship's hold.
    2) Added "FSD Emergency Drop"; "Focus Systems"; "Focus Engines" & "Focus Weapons" buttons.

    Beta 0.0.5.5:
    1) Added "Private Group" name button;
    2) Added Mode / Private Group panel.
    3) Added Fuel panels (main, aux.); Vertical if height > width, else horizontal.
    4) Added Pips panels (System, Engine, Weapon, ALL); Vertical presentation with text at bottom.

    Beta 0.0.5.6:
    1) Added "both" fuel panel, vertical only; main and aux tank remaining, displayed side-by-side.
    2) Added "Altimeter" panel - logarithmic scale, i.e. 10m; 100m; 1,000m; etc.; Vertical if height > width, else horizontal.


    Link to Discord server with release and direct comms: https://discord.gg/x8ZeQJC

    Direct link to 7z file containing Beta 0.0.5.7 executable: https://cdn.discordapp.com/attachmen...190130-2025.7z


    Many more defined buttons still to be added - please suggest inclusions (i.e. omissions) below.



    Using StatusDisplay:

    • For options, please right click on overlay window (any StatusDisplay window really - just that the overlay window is the only one displayed by default)
    • If game overlay is desired, the game should be run in a mode other than fullscreen.
    • Any window can be moved by click-and-drag in the window area (other than controls). All windows, apart from the Main panel, can be disabled. Each window can have its own refresh rate, between 1Hz and 16Hz.
    • The "AutoLoad" option must be checked (and subsequently options saved) to enable auto-loading of user settings when starting StatusDisplay.
    • Unless specifically mentioned in the change log for a Beta release the settings file (StatusDisplay.ini, in the same directory as the executable) should carry over between versions.
    • If, for any reason, StatusDisplay becomes unresponsive, activate a panel or MFD by clicking on it then use LEFTALT-Q to quit.
    • StatusDisplay can record a session log, with journal and status.json data interleaved, written in the order that it is published by the game. Use LEFTALT-R to toggle the recording.
    • By default, StatusDisplay locates status.json, journal and bindings files in the relevant sub-directories of the current user's home directory, stored in the "USERPROFILE" environment variable. An alternate location can be specified by manually appending it to the second line of the settings.ini file, i.e. SD:00000000000000B1;C:\Users\User where "C:\Users\User" is the desired path. This requires that the PC on which StatusDisplay is running has read access to the storage location, i.e. the relevant user folder, on the target PC.

  2. #2
    Hi Robert,

    this is going to be a great puzzle, to rearrange my gadgets to be able to make your display work in my cockpit!

    This means many exciting DIY-hours

    Best regards!

  3. #3
    Originally Posted by Robert Maynard View Post (Source)
    With the inclusion of status.json in the player journal data offered by the game in 3.0, I've started to develop an application to display that data and, given that positional information is included when in proximity to a landable body, allow the player to set destination latitude / longitude and calculate the range and bearing to that destination.

    It's early days yet - I'll be expanding it to display the flags that are also published in status.json - both in a window and also in graphical form suitable for display on a screen behind an MFD (I use a pair of Thrustmaster Cougar MFDs as additional controllers).

    Current progress:

    1) Display of time and raw flags; position (if available, i.e. in proximity of a landable body) and destination (if set and if positional data is available).
    2) Beginnings of MFD display template - to be filled with decoded flag information, i.e. landing gear up/down, etc.

    Current game screen overlay, i.e. 1):
    https://cdn.discordapp.com/attachmen...46/unknown.png

    Current MFD display template:
    https://cdn.discordapp.com/attachmen...95/unknown.png

    When in focus, window 1 is opaque and changes to 60% opacity on loss of focus. Also on loss of focus, the buttons (not yet final) "disappear" by resizing the window. Window is set to be always on top, so will be visible when on the same screen as the game while playing.

    It's my first Windows GUI application - so everything's a learning experience....
    If you can get this working in a window I can pin inside my Rift, you will officially become "My hero". Lazy explorers (like me) need this ASAP!

  4. #4
    Some progress made with the MFD display windows (not the font or text size though) - independently resizable and they refresh every second. The diameter of the body can now be entered which allows speed over ground and range to destination to be expressed as a speed and distance rather than Arc°/hr and Arc°.

    Next on the list:

    1) font / text size;
    2) customisable "button" (i.e square next to MFD button) assignment;
    3) save / load window positions / sizes and button assignments;
    4) something to put in the middle square.

  5. #5
    This is an awesome idea!

    Any chance you could trigger the LEDs on the MFDs to indicate Hardpoints, Cargo Scoop, or Landing Gear deployed? Mass Locked?

  6. #6
    Originally Posted by AndreZero View Post (Source)
    This is an awesome idea!

    Any chance you could trigger the LEDs on the MFDs to indicate Hardpoints, Cargo Scoop, or Landing Gear deployed? Mass Locked?
    I'm not interfacing with the MFDs - just putting images on the screen behind them.

    The square next to each button changes colour - and, later, may possibly flash, depending on severity - when each flag is set.

  7. #7
    I guess I'm asking if it is possible for your application to do that as a future enhancement. I assume the data you would need are in the status.json?

  8. #8
    The data is certainly in status.json - however I'm not sure that the button backlights are individually addressable to permit single buttons lights to be changed.

  9. #9
    Hi,

    I've made some experiments with the TARGET software in the past, the button backlights can't be controlled separately, only the two small LEDs on the upper left/right. Together, that is four, so gears/scoop/hardpoints/lights (or whatever) status could be displayed with some additional plugin stuff... It was just a pain to follow the on/off statuses with VA and TARGET (however not impossible).

    Best regards!

  10. #10
    Originally Posted by Brigetiol1 View Post (Source)
    Hi,

    I've made some experiments with the TARGET software in the past, the button backlights can't be controlled separately, only the two small LEDs on the upper left/right. Together, that is four, so gears/scoop/hardpoints/lights (or whatever) status could be displayed with some additional plugin stuff... It was just a pain to follow the on/off statuses with VA and TARGET (however not impossible).

    Best regards!
    That's pretty much my understanding. You can adjust the backlighting on a per-MFD level but not per button. I was thinking about those 4 LEDs as status lights.
    I've got a proof of concept library/utility that sets the LEDs at https://github.com/AndreMessier/ThrustmasterMFDLights Just need to figure out how to link those to the statuses. I could probably get gear, hardpoints, and cargo scoop from VA but masslock would need to come from elsewhere.

  11. #11
    Originally Posted by AndreZero View Post (Source)
    That's pretty much my understanding. You can adjust the backlighting on a per-MFD level but not per button. I was thinking about those 4 LEDs as status lights.
    I've got a proof of concept library/utility that sets the LEDs at https://github.com/AndreMessier/ThrustmasterMFDLights Just need to figure out how to link those to the statuses. I could probably get gear, hardpoints, and cargo scoop from VA but masslock would need to come from elsewhere.
    Gear, hardpoints, scoop and masslock are all in status.json - in the Flags field.

  12. #12
    From the previous "to-do-list":
    Originally Posted by Robert Maynard View Post (Source)
    1) font / text size;
    2) customisable "button" (i.e square next to MFD button) assignment;
    3) save / load window positions / sizes and button assignments;
    4) something to put in the middle square.
    Item 1 is pretty much complete - with the added bonus that the main overlay window is now resizable (via a settings dialog).

  13. #13
    Originally Posted by Robert Maynard View Post (Source)
    From the previous "to-do-list":

    Item 1 is pretty much complete - with the added bonus that the main overlay window is now resizable (via a settings dialog).
    Items 2 pretty much complete and 4 started (the position and destination data from the overlay window is now in the middle of MFD0 as well (likely to be optional).

    .... just settings savings to go for first release.

  14. #14
    Great stuff, looking forward to trying this.

  15. #15
    Saving of window state (i.e. displayed or not and, in the case of the overlay, which elements are visible and for the MFDs, the size of the window (overlay window size is dictated by fontheight whereas MFD window size is user specified)) and position complete. Settings will auto-load if desired.

    Saving of MFD "button" assignment next.

Page 1 of 13 1235 Last