Files
flippr-code/FlippR-Driver/contrib/json_example
2024-02-25 21:46:19 +01:00
..
ehm
2020-04-09 22:03:52 +02:00
2022-06-06 17:47:12 +02:00
2024-02-25 21:46:19 +01:00

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
      },
    ]
}