[
    {
        "name": "gse",
        "hex": "0x00",
        "ethernet_interface": {
            "protocol": "udp",
            "address": "224.1.1.118",
            "port": 9999,
            "max_payload_bytes": 2000
        },
        "logger_interface": {
            "unix_send_socket": "/tmp/foxsi_udp_send",
            "unix_listen_socket": "/tmp/foxsi_udp_listen",
            "log_received_folder": "logs/received/",
            "log_sent_folder": "logs/sent/"
        }
    },
    {
        "name": "downlink",
        "hex": "0x05",
        "ethernet_interface": {
            "protocol": "tcp",
            "address": "224.1.1.0",
            "port": 8888,
            "max_payload_bytes": 2000
        }
    },
    {
        "name": "uplink",
        "hex": "0x06",
        "uart_interface": {
            "tty_path": "/dev/ttyAMA2",
            "baud_rate": 1200,
            "parity_bits": 0,
            "data_bits": 8,
            "stop_bits": 1,
            "max_payload_bytes": 2
        },
        "timing": {
            "total_allocation": 1,
            "command": 0,
            "request": 0,
            "reply": 1,
            "idle": 0,
            "retry_max_count": 1,
            "receive_timeout_millis": 10,
            "intercommand_spacing_millis": 3
        }
    },
    {
        "name": "formatter",
        "hex": "0x01",
        "ethernet_interface": {
            "address": "192.168.1.8"
        }
    },
    {
        "name": "housekeeping",
        "hex": "0x02",
        "ethernet_interface": {
            "protocol": "tcp",
            "address": "192.168.1.16",
            "port": 7777,
            "max_payload_bytes": 512,
            "mean_speed_bps": 100000,
            "frame_size_bytes": 256,
            "static_header_size": 0,
            "static_footer_size": 0,
            "ring_buffer_interface": {
                "rtd": {
                    "ring_frame_size_bytes": "0x2a",
                    "ring_start_address": "0x00000000",
                    "frames_per_ring": "0x01",
                    "ring_write_pointer_address": "0x00",
                    "ring_write_pointer_width": "0x04"
                },
                "pow": {
                    "ring_frame_size_bytes": "0x26",
                    "ring_start_address": "0x00000000",
                    "frames_per_ring": "0x01",
                    "ring_write_pointer_address": "0x00",
                    "ring_write_pointer_width": "0x04"
                },
                "intro": {
                    "ring_frame_size_bytes": "0x0c",
                    "ring_start_address": "0x00000000",
                    "frames_per_ring": "0x01",
                    "ring_write_pointer_address": "0x00",
                    "ring_write_pointer_width": "0x04"
                }
            }
        },
        "command_type": "ethernet",
        "commands": "foxsi4-commands/commands/housekeeping/housekeeping_commands.json",
        "timing": {
            "total_allocation": 3,
            "command": 1,
            "request": 1,
            "reply": 8,
            "idle": 1,
            "retry_max_count": 1,
            "receive_timeout_millis": 100,
            "intercommand_spacing_millis": 3
        }
    },
    {
        "name": "power",
        "hex": "0x03"
    },
    {
        "name": "saas",
        "hex": "0x04"
    },
    {
        "name": "cdtede",
        "hex": "0x08",
        "ethernet_interface": {
            "protocol": "tcp",
            "address": "192.168.1.100",
            "port": 10030,
            "max_payload_bytes": 1800
        },
        "spacewire_interface": {
            "target_logical_address": "0xfe",
            "source_logical_address": "0xfe",
            "target_path_address": [
                1,
                2
            ],
            "reply_path_address": [
                0,
                0,
                1,
                3
            ],
            "key": "0x02",
            "crc_draft": "f",
            "hardware": "spmu-001",
            "static_header_size": 24,
            "static_footer_size": 1,
            "mean_speed_bps": 0,
            "max_payload_bytes": 1800,
            "ring_buffer_interface": {
                "hk": {
                    "ring_frame_size_bytes": "0x20",
                    "ring_start_address": "0x00000000",
                    "frames_per_ring": "0x01",
                    "ring_write_pointer_address": "0x00000000",
                    "ring_write_pointer_width": "0x04"
                }
            }
        },
        "command_type": "spacewire",
        "commands": "foxsi4-commands/commands/cdtede/cdtede_commands.json",
        "timing": {
            "total_allocation": 2250,
            "command": 1,
            "request": 1,
            "reply": 8,
            "idle": 1,
            "retry_max_count": 5,
            "receive_timeout_millis": 10,
            "intercommand_spacing_millis": 3
        }
    },
    {
        "name": "cdte1",
        "hex": "0x09",
        "ethernet_interface": {
            "protocol": "tcp",
            "address": "192.168.1.100",
            "port": 10030,
            "max_payload_bytes": 1800
        },
        "spacewire_interface": {
            "target_logical_address": "0xfe",
            "source_logical_address": "0xfe",
            "target_path_address": [
                1,
                2
            ],
            "reply_path_address": [
                0,
                0,
                1,
                3
            ],
            "key": "0x02",
            "crc_draft": "f",
            "hardware": "spmu-001",
            "static_header_size": 24,
            "static_footer_size": 1,
            "mean_speed_bps": 0,
            "max_payload_bytes": 1800,
            "ring_buffer_interface": {
                "pc": {
                    "ring_frame_size_bytes": "0x800c",
                    "ring_start_address": "0x00400000",
                    "frames_per_ring": "0x3d4",
                    "ring_write_pointer_address": "0x022b0314",
                    "ring_write_pointer_width": "0x04"
                },
                "hk": {
                    "ring_frame_size_bytes": "0x31c",
                    "ring_start_address": "0x022b0000",
                    "frames_per_ring": "0x01",
                    "ring_write_pointer_address": "0x022b0000",
                    "ring_write_pointer_width": "0x04"
                }
            }
        },
        "command_type": "spacewire",
        "commands": "foxsi4-commands/commands/cdte1/cdte1_commands.json",
        "timing": {
            "total_allocation": 2250,
            "command": 1,
            "request": 1,
            "reply": 8,
            "idle": 1,
            "retry_max_count": 5,
            "receive_timeout_millis": 10,
            "intercommand_spacing_millis": 3
        }
    },
    {
        "name": "cdte2",
        "hex": "0x0a",
        "ethernet_interface": {
            "protocol": "tcp",
            "address": "192.168.1.100",
            "port": 10030,
            "max_payload_bytes": 1800
        },
        "spacewire_interface": {
            "target_logical_address": "0xfe",
            "source_logical_address": "0xfe",
            "target_path_address": [
                1,
                2
            ],
            "reply_path_address": [
                0,
                0,
                1,
                3
            ],
            "key": "0x02",
            "crc_draft": "f",
            "hardware": "spmu-001",
            "static_header_size": 24,
            "static_footer_size": 1,
            "mean_speed_bps": 0,
            "max_payload_bytes": 1800,
            "ring_buffer_interface": {
                "pc": {
                    "ring_frame_size_bytes": "0x800c",
                    "ring_start_address": "0x02300000",
                    "frames_per_ring": "0x3d4",
                    "ring_write_pointer_address": "0x041b0314",
                    "ring_write_pointer_width": "0x04"
                },
                "hk": {
                    "ring_frame_size_bytes": "0x31c",
                    "ring_start_address": "0x041b0000",
                    "frames_per_ring": "0x01",
                    "ring_write_pointer_address": "0x041b0000",
                    "ring_write_pointer_width": "0x04"
                }
            }
        },
        "command_type": "spacewire",
        "commands": "foxsi4-commands/commands/cdte2/cdte2_commands.json",
        "timing": {
            "total_allocation": 2250,
            "command": 1,
            "request": 1,
            "reply": 8,
            "idle": 1,
            "retry_max_count": 5,
            "receive_timeout_millis": 10,
            "intercommand_spacing_millis": 3
        }
    },
    {
        "name": "cdte3",
        "hex": "0x0b",
        "ethernet_interface": {
            "protocol": "tcp",
            "address": "192.168.1.100",
            "port": 10030,
            "max_payload_bytes": 1800
        },
        "spacewire_interface": {
            "target_logical_address": "0xfe",
            "source_logical_address": "0xfe",
            "target_path_address": [
                1,
                2
            ],
            "reply_path_address": [
                0,
                0,
                1,
                3
            ],
            "key": "0x02",
            "crc_draft": "f",
            "hardware": "spmu-001",
            "static_header_size": 24,
            "static_footer_size": 1,
            "mean_speed_bps": 0,
            "max_payload_bytes": 1800,
            "ring_buffer_interface": {
                "pc": {
                    "ring_frame_size_bytes": "0x800c",
                    "ring_start_address": "0x04200000",
                    "frames_per_ring": "0x3d4",
                    "ring_write_pointer_address": "0x060b0314",
                    "ring_write_pointer_width": "0x04"
                },
                "hk": {
                    "ring_frame_size_bytes": "0x31c",
                    "ring_start_address": "0x060b0000",
                    "frames_per_ring": "0x01",
                    "ring_write_pointer_address": "0x060b0000",
                    "ring_write_pointer_width": "0x04"
                }
            }
        },
        "command_type": "spacewire",
        "commands": "foxsi4-commands/commands/cdte3/cdte3_commands.json",
        "timing": {
            "total_allocation": 2250,
            "command": 1,
            "request": 1,
            "reply": 8,
            "idle": 1,
            "retry_max_count": 5,
            "receive_timeout_millis": 10,
            "intercommand_spacing_millis": 3
        }
    },
    {
        "name": "cdte4",
        "hex": "0x0c",
        "ethernet_interface": {
            "protocol": "tcp",
            "address": "192.168.1.100",
            "port": 10030,
            "max_payload_bytes": 1800
        },
        "spacewire_interface": {
            "target_logical_address": "0xfe",
            "source_logical_address": "0xfe",
            "target_path_address": [
                1,
                2
            ],
            "reply_path_address": [
                0,
                0,
                1,
                3
            ],
            "key": "0x02",
            "crc_draft": "f",
            "hardware": "spmu-001",
            "static_header_size": 24,
            "static_footer_size": 1,
            "mean_speed_bps": 0,
            "max_payload_bytes": 1800,
            "ring_buffer_interface": {
                "pc": {
                    "ring_frame_size_bytes": "0x800c",
                    "ring_start_address": "0x06100000",
                    "frames_per_ring": "0x3d4",
                    "ring_write_pointer_address": "0x07fb0314",
                    "ring_write_pointer_width": "0x04"
                },
                "hk": {
                    "ring_frame_size_bytes": "0x31c",
                    "ring_start_address": "0x07fb0000",
                    "frames_per_ring": "0x01",
                    "ring_write_pointer_address": "0x07fb0314",
                    "ring_write_pointer_width": "0x04"
                }
            }
        },
        "command_type": "spacewire",
        "commands": "foxsi4-commands/commands/cdte4/cdte4_commands.json",
        "timing": {
            "total_allocation": 2250,
            "command": 1,
            "request": 1,
            "reply": 8,
            "idle": 1,
            "retry_max_count": 5,
            "receive_timeout_millis": 10,
            "intercommand_spacing_millis": 3
        }
    },
    {
        "name": "timepix",
        "hex": "0x0d",
        "uart_interface": {
            "tty_path": "/dev/ttyAMA1",
            "baud_rate": 19200,
            "parity_bits": 0,
            "data_bits": 8,
            "stop_bits": 1,
            "max_payload_bytes": 32,
            "ring_buffer_interface": {
                "tpx": {
                    "ring_frame_size_bytes": "0x26",
                    "ring_start_address": "0x00000000",
                    "frames_per_ring": "0x01",
                    "ring_write_pointer_address": "0x00",
                    "ring_write_pointer_width": "0x04"
                }
            }
        },
        "command_type": "uart",
        "commands": "foxsi4-commands/commands/timepix/timepix_commands.json",
        "timing": {
            "total_allocation": 2,
            "command": 1,
            "request": 1,
            "reply": 8,
            "idle": 1,
            "retry_max_count": 3,
            "receive_timeout_millis": 50,
            "intercommand_spacing_millis": 3
        }
    },
    {
        "name": "cmos1",
        "hex": "0x0e",
        "ethernet_interface": {
            "protocol": "tcp",
            "address": "192.168.1.100",
            "port": 10030,
            "max_payload_bytes": 1800
        },
        "spacewire_interface": {
            "target_logical_address": "0x67",
            "source_logical_address": "0xfe",
            "target_path_address": [
                6
            ],
            "reply_path_address": [
                0,
                0,
                0,
                3
            ],
            "key": "0x02",
            "crc_draft": "f",
            "hardware": "spmu-001",
            "static_header_size": 24,
            "static_footer_size": 1,
            "mean_speed_bps": 0,
            "max_payload_bytes": 1800,
            "ring_buffer_interface": {
                "pc": {
                    "ring_frame_size_bytes": "0x90400",
                    "ring_start_address": "0x04401000",
                    "frames_per_ring": "0x20",
                    "ring_write_pointer_address": "0x248",
                    "ring_write_pointer_width": "0x04"
                },
                "ql": {
                    "ring_frame_size_bytes": "0x78400",
                    "ring_start_address": "0x00001000",
                    "frames_per_ring": "0x20",
                    "ring_write_pointer_address": "0x240",
                    "ring_write_pointer_width": "0x04"
                },
                "hk": {
                    "ring_frame_size_bytes": "0x218",
                    "ring_start_address": "0x00000100",
                    "frames_per_ring": "0x01",
                    "ring_write_pointer_address": "0x00000100",
                    "ring_write_pointer_width": "0x04"
                }
            }
        },
        "command_type": "spacewire",
        "commands": "foxsi4-commands/commands/cmos1/cmos1_commands.json",
        "timing": {
            "total_allocation": 5400,
            "command": 1,
            "request": 1,
            "reply": 8,
            "idle": 1,
            "retry_max_count": 5,
            "receive_timeout_millis": 10,
            "intercommand_spacing_millis": 3
        }
    },
    {
        "name": "cmos2",
        "hex": "0x0f",
        "ethernet_interface": {
            "protocol": "tcp",
            "address": "192.168.1.100",
            "port": 10030,
            "max_payload_bytes": 1800
        },
        "spacewire_interface": {
            "target_logical_address": "0x68",
            "source_logical_address": "0xfe",
            "target_path_address": [
                9
            ],
            "reply_path_address": [
                0,
                0,
                0,
                3
            ],
            "key": "0x02",
            "crc_draft": "f",
            "hardware": "spmu-001",
            "static_header_size": 24,
            "static_footer_size": 1,
            "mean_speed_bps": 0,
            "max_payload_bytes": 1800,
            "ring_buffer_interface": {
                "pc": {
                    "ring_frame_size_bytes": "0x90400",
                    "ring_start_address": "0x04401000",
                    "frames_per_ring": "0x20",
                    "ring_write_pointer_address": "0x248",
                    "ring_write_pointer_width": "0x04"
                },
                "ql": {
                    "ring_frame_size_bytes": "0x78400",
                    "ring_start_address": "0x00001000",
                    "frames_per_ring": "0x20",
                    "ring_write_pointer_address": "0x240",
                    "ring_write_pointer_width": "0x04"
                },
                "hk": {
                    "ring_frame_size_bytes": "0x218",
                    "ring_start_address": "0x00000100",
                    "frames_per_ring": "0x01",
                    "ring_write_pointer_address": "0x00000100",
                    "ring_write_pointer_width": "0x04"
                }
            }
        },
        "command_type": "spacewire",
        "commands": "foxsi4-commands/commands/cmos2/cmos2_commands.json",
        "timing": {
            "total_allocation": 5400,
            "command": 1,
            "request": 1,
            "reply": 8,
            "idle": 1,
            "retry_max_count": 5,
            "receive_timeout_millis": 10,
            "intercommand_spacing_millis": 3
        }
    },
    {
        "name": "broadcast",
        "hex": "0xfe"
    }
]