265 lines
5.4 KiB
Markdown
265 lines
5.4 KiB
Markdown
|
||
<img src="https://cdn.worldvectorlogo.com/logos/belden-4.svg">
|
||
|
||
---
|
||
# 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.
|
||
|
||
```json
|
||
{
|
||
type: "name_of_request"
|
||
call: "send, request"
|
||
data: {
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
### CABLE_MAP Object
|
||
|
||
#### Front:
|
||
> Front -> Back
|
||
```json
|
||
{
|
||
type: "cable_map"
|
||
call: "request"
|
||
data: {
|
||
}
|
||
}
|
||
```
|
||
|
||
#### Back:
|
||
> Back -> Front
|
||
```json
|
||
{
|
||
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
|
||
```json
|
||
{
|
||
type: "cable_details"
|
||
call: "request"
|
||
data: {
|
||
part_number: [
|
||
12345,
|
||
67890,
|
||
...
|
||
]
|
||
position: [
|
||
0,
|
||
1,
|
||
2,
|
||
... 53
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
#### Back:
|
||
> Back -> Front
|
||
```json
|
||
{
|
||
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
|
||
```json
|
||
{
|
||
type: "cable_search"
|
||
call: "request"
|
||
data: {
|
||
string: "name/part_number/type/category/etc"
|
||
}
|
||
}
|
||
```
|
||
|
||
#### Back:
|
||
> Back -> Front
|
||
```json
|
||
{
|
||
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
|
||
```json
|
||
{
|
||
type: "keyboard"
|
||
call: "request"
|
||
data: {
|
||
enabled: True / False
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
### MACHINE_SETTINGS Object
|
||
#### Front:
|
||
> Front -> Back
|
||
```json
|
||
{
|
||
type: "machine_settings"
|
||
call: "request"
|
||
data: {
|
||
}
|
||
}
|
||
```
|
||
|
||
#### Back:
|
||
> Back -> Front
|
||
```json
|
||
{
|
||
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
|
||
```json
|
||
{
|
||
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
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|