Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Custom payload EFB API for livery developers and VAs #7665

Open
jbud opened this issue Dec 24, 2022 · 4 comments
Open

Custom payload EFB API for livery developers and VAs #7665

jbud opened this issue Dec 24, 2022 · 4 comments
Labels
Request New feature or request

Comments

@jbud
Copy link
Contributor

jbud commented Dec 24, 2022

Aircraft Version

Experimental

Description

Would love to see a weights and balance API for the EFB payload section so that livery designers for the A32NX could include 2-class or 4-class seating maps by loading a json file with seat dimensions layout, empty weight, and default balance for the configuration.

References (optional)

Example of the A320-200 DAL layout
seatmap

A reference option for the json layout could be similar to how headwind has their seat map done: here
However an api would need to be developed to load the json from the selected livery similar to how liveries can alter the registration tag in the cockpit.

Additional info (optional)

This was partially requested in issue #7362 but I wanted to have a more firm idea on the request.

Discord Username (optional)

budzique#1196

@jbud jbud added the Request New feature or request label Dec 24, 2022
@jbud
Copy link
Contributor Author

jbud commented Dec 24, 2022

Here's an example of a json file to make the API use easier. I know it would be an undertaking to procedurally generate the seat coordinates based on rows and columns but hopefully not too hard.

{
    "specs": {
        "payload-type": 1,
        "payload-name": "DAL 3-class",
        "prefix": "A32NX",
        "emptyPosition": -8.75,
        "macSize": 13.454,
        "leMacZ": -5.386,
        "weights": {
            "maxZfw": 64300,
            "minZfw": 42500
        },
        "pax": {
            "defaultPaxWeight": 80,
            "defaultBagWeight": 15,
            "minPaxWeight": 10,
            "maxPaxWeight": 250,
            "minBagWeight": 1,
            "maxBagWeight": 250
        },
        "class-weight-modifier": {
            "FIRSTCLASS": 95,
            "COMFORTPLUS": 8,
            "PREFERRED": 0,
            "ECO": 0
        }
    },
    "colors": {
        "1": "4F0147",
        "2": "119DA4",
        "3": "19647E"
    },
    "payload-seatmap": {
        "section-1": {
            "name": "FIRSTCLASS",
            "rows": 4,
            "cols": 4,
            "seat-img": {
                "len": 19.2,
                "wid": 24.4,
                "padX": 28,
                "padY": 0,
                "imageX": 25.4,
                "imageY": 24.4,
                "color": 3
            }
        },
        "section-2": {
            "name": "COMFORTPLUS",
            "rows": 6,
            "cols": 3,
            "seat-img": {
                "len": 19.2,
                "wid": 19.2,
                "padX": 16,
                "padY": 0,
                "imageX": 25.4,
                "imageY": 19.2,
                "color": 2
            }
        },
        "section-3": {
            "name": "PREFERRED",
            "rows": 6,
            "cols": 2,
            "seat-img": {
                "len": 19.2,
                "wid": 19.2,
                "padX": 20,
                "padY": 0,
                "imageX": 19.2,
                "imageY": 19.2,
                "color": 1
            }
        },
        "section-4": {
            "name": "ECO",
            "rows": 6,
            "cols": 7,
            "seat-img": {
                "len": 19.2,
                "wid": 19.2,
                "padX": 13,
                "padY": 0,
                "imageX": 19.2,
                "imageY": 19.2,
                "color": 1
            }
        },
        "section-5": {
            "name": "ECO",
            "rows": 6,
            "cols": 10,
            "seat-img": {
                "len": 19.2,
                "wid": 19.2,
                "padX": 13,
                "padY": 0,
                "imageX": 19.2,
                "imageY": 19.2,
                "color": 1
            }
        },
        "section-6": {
            "name": "ECO",
            "aisle-side": "RIGHT",
            "rows": 3,
            "cols": 1,
            "seat-img": {
                "len": 19.2,
                "wid": 19.2,
                "padX": 13,
                "padY": 0,
                "imageX": 19.2,
                "imageY": 19.2,
                "color": 1
            }
        }
    }
}

@jbud
Copy link
Contributor Author

jbud commented Dec 25, 2022

I started working on this and I have made some progress. I do have a lot to do but for now here's what it looks like. if ANYONE wants to take over I'm sure it can be done quicker than myself. The way I've done it so far is hacky and requires either an external tool, or a full rebuild of the plane each time you switch layouts. I do commit to having it fully flightworthy before any PR is opened. anyway here's a preview
3classdalefb

@jbud
Copy link
Contributor Author

jbud commented Dec 25, 2022

Currently looking into using SimBrief airframe to change the seat map. this may be an optimal way for the time being as importing dynamically seems to be giving me trouble.

@2hwk
Copy link
Member

2hwk commented Jan 17, 2023

May be affected by #7442 which allows external input into the boarding system

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Request New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants