Files
flippr-code/FlippR-Driver/contrib/json_example/README.md
2024-02-25 21:46:19 +01:00

165 lines
3.7 KiB
Markdown

# JSON
This is an example for the JSON files passed to the Server for configuration
All outputs may use port_externders in the form of:
```
"port_extenders" :
[
{
"name" : "extender_1",
"i2c_address" : 32,
"pin_base" : 65
}
]
```
To use them the output pins bust have an additional property `"extender"` where the name of the extender were the address belongs to is specified.
## server_config.json
This is a Collector file in which all other json files might be specified
```
{
"input-config": Path,
"matrix-config": Path,
"lamp-config": Path,
"solenoid-config": Path,
"sound-config": Path,
"display-config": Path
}
```
## input/Input_Pin_Config.json
Contains the hardware configuration of the inputs.
```
{
"update_frequency": number, // How often the inputs should be read in Hz
"row": { // The input pins of the rows
"A": number,
"B": number,
"C": number
},
"col": { // The input pins of the cols
"A": number,
"B": number,
"C": number
},
"data": number // The data pin to read
}
```
## input/Input_Matrix_Config.json
This contains all possible events that might happen on the pinball machine.
```
{
"global_bounce_time" : number, // How long to wait between input events
"input_matrix": // The actual matrix
[
{
"name" : string, // Name of the event that should be fired
"address" : number, // Adress of the event
"priority" : number, // Priority of the event. In case multiple events get read this fires first.
"bounce_time": number // Individual bounce time. Overwrites globale_bounce_time for this event.
},
]
}
```
## output/Display_Config.json
This contains the config for the displays.
```
{
"update_frequency": number, // How often the displays should be updated in Hz.
"display_board": // The pin configuration of the hardware
{
"segment_select" : // pins for the segment select
{
"A" : number,
"B" : number,
"C" : number
},
"digit_select" : // pins for the digit select
{
"A": number,
"B": number,
"C": number,
"D": number
},
"run" : number, // Run pin
"lt" : number // lt pin
},
"displays" : // The actual displays
[
{
"digits" : number, // how many digits the displays have. Possible values are 8 and 7
"name" : string, // Human Readable name
"address" : number // Address of the display
},
]
}
```
## output/Lamp_Config.json
Contains the configuration of the lamps.
Similar hardware configuration to above. Except a port extender may be used here.
```
{
...
"lamps" :
[
{
"address" : number, // address of the lamp
"name" : string // Humand readable name
}
]
}
```
## output/Solenoid_Config.json
Contains the configuration for the solenoids
```
{
"deactivation_time_milliseconds" : number, // Time how long the solenoid should be triggerd
"flippers" : // addresses and names of the flippers
[
{
"address" : number,
"name" : string
},
],
"solenoids" :
[
{
"address" : number, // Address of the solenoid
"name" : string, // Human readable name
"deactivation_time_milliseconds" : number // Individual deactivation time for this solenoid
},
]
}
```
## output/Sound_Config.json
Contains the configuration for the sounds.
Please note that address 0 is the deactivation sound for this flippers.
```
"sounds" :
[
{
"id": number, // Id of the sound
"address" : number, // Address of the sound
"name" : string, // Human readable string
},
]
}
```