jukebox-web/README.md
2024-02-03 11:40:58 -05:00

5.4 KiB


Belden Jukebox Front/Back Specifications

This document outlines how data will be transmitted between the frontend and the backend.


Standard Object

  • All objects sent between the frontend and backend will follow this format.
{
    type: "name_of_request"
    call: "send, request"
    data: {
    }
}

CABLE_MAP Object

Front:

Front -> Back

{
    type: "cable_map"
    call: "request"
    data: {
    }
}

Back:

Back -> Front

{
    type: "cable_map"
    call: "send"
    data: {
        map: [
            item {
                part_number: 12345
                position: 0-53
                name: "Fancy Displayable Name"
                brand: "Belden"
                description: "This is a good cable!"
                short_description: "Good cable!"
            }
            ... many more items
        ]
    }
}

CABLE_DETAILS Object

Front:

Front -> Back

{
    type: "cable_details"
    call: "request"
    data: {
        part_number: [
            12345,
            67890,
            ...
        ]
        position: [
            0,
            1,
            2,
            ... 53
        ]
    }
}

Back:

Back -> Front

{
    type: "cable_details"
    call: "send"
    data: {
        cables: [
            {
                part_number: 12345
                position: 0-53
                part_image_url: "https://belden.com"
                brand_image_url: "https://belden.com"
                extracted_object: {
                    ....... #brand will be in here
                }
            },
            .....
        ]
    }
}

CABLE_SEARCH Object

Front:

Front -> Back

{
    type: "cable_search"
    call: "request"
    data: {
        string: "name/part_number/type/category/etc"
    }
}

Back:

Back -> Front

{
    type: "cable_search"
    call: "send"
    data: {
        cables: [
            {
                part_number: 12345
                position: 0-53
                part_image_url: "https://belden.com"
                brand_image_url: "https://belden.com"
                extracted_object: {
                    ....... #brand will be in here
                }
            },
            ....
        ]
    }
}

KEYBOARD Object

Front:

Front -> Back

{
    type: "keyboard"
    call: "request"
    data: {
        enabled: True / False
    }
}

MACHINE_SETTINGS Object

Front:

Front -> Back

{
    type: "machine_settings"
    call: "request"
    data: {
    }
}

Back:

Back -> Front

{
    type: "machine_settings"
    call: "send"
    data: {
        settings: [
            {
                setting_name: "text field"
                type: "text"
                current_value: "current value of seting"
            },
            {
                setting_name: "radio button"
                type: "radio"
                current_value: "option 1"
                radio_values: [
                    "option 1",
                    "option 2",
                    "option 3"
                ]
            },
            {
                setting_name: "check box"
                type: "check"
                current_value: ["option 1", "option 2"]
                radio_values: [
                    "option 1",
                    "option 2",
                    "option 3"
                ]
            },
            {
                setting_name: "enabled or disabled"
                type: "boolean"
                current_value: True
            },
            {
                setting_name: "slider bar"
                type: "slider"
                current_value: 50.0 #Float
                min: -100.0 #Float
                max: 100.0 #Float
            }
        ]
    }
}

Front:

Front -> Back

{
    type: "machine_settings"
    call: "send"
    data: {
        settings: [
            {
                setting_name: "text field"
                type: "text"
                new_value: "current value of seting"
            },
            {
                setting_name: "radio button"
                type: "radio"
                new_value: [
                    "option 1",
                    "option 2",
                    "option 3"
                ]
            },
            {
                setting_name: "check box"
                type: "check"
                new_value: [
                    "option 1",
                    "option 2",
                    "option 3"
                ]
            },
            {
                setting_name: "enabled or disabled"
                type: "boolean"
                new_value: False
            },
            {
                setting_name: "slider bar"
                type: "slider"
                new_value: 100.0 #Float
            }
        ]
    }
}