xref: /openbmc/entity-manager/schemas/modbus.json (revision c6379744024ce1d1443a70a74146a50156b827e2)
1{
2    "$schema1": "http://json-schema.org/draft-07/schema#",
3    "$defs": {
4        "ModbusRTUDetect": {
5            "additionalProperties": false,
6            "description": "The definition for the modbus device.",
7            "type": "object",
8            "properties": {
9                "Type": {
10                    "description": "The type of configuration object.",
11                    "const": "ModbusRTUDetect"
12                },
13                "Name": {
14                    "description": "The name of the modbus device.",
15                    "type": "string"
16                },
17                "Address": {
18                    "description": "The address ranges for the modbus device.",
19                    "type": "array",
20                    "items": {
21                        "type": "object",
22                        "additionalProperties": false,
23                        "properties": {
24                            "RangeStart": {
25                                "description": "The start address for the address range of the modbus device.",
26                                "type": "number"
27                            },
28                            "RangeEnd": {
29                                "description": "The end address for the address range of the modbus device.",
30                                "type": "number"
31                            },
32                            "SerialPort": {
33                                "description": "The name of the serial port from SerialPort definition.",
34                                "type": "string"
35                            }
36                        },
37                        "required": ["RangeStart", "RangeEnd", "SerialPort"]
38                    }
39                },
40                "Registers": {
41                    "description": "The Modbus register definition.",
42                    "type": "array",
43                    "items": {
44                        "type": "object",
45                        "additionalProperties": false,
46                        "properties": {
47                            "Name": {
48                                "description": "The name of the register.",
49                                "enum": [
50                                    "PartNumber",
51                                    "SparePartNumber",
52                                    "SerialNumber",
53                                    "BuildDate",
54                                    "Model",
55                                    "Manufacturer"
56                                ]
57                            },
58                            "Address": {
59                                "description": "The address of the register.",
60                                "type": "number"
61                            },
62                            "Size": {
63                                "description": "The size of the register in bytes.",
64                                "type": "number"
65                            }
66                        },
67                        "required": ["Name", "Address", "Size"]
68                    }
69                },
70                "DataParity": {
71                    "description": "The parity to use for data transmission.",
72                    "enum": ["Odd", "Even", "None"]
73                },
74                "BaudRate": {
75                    "description": "The baudrate of the communication channel.",
76                    "enum": [9600, 19200, 57600, 115200]
77                }
78            },
79            "required": [
80                "Name",
81                "Type",
82                "Address",
83                "Registers",
84                "DataParity",
85                "BaudRate"
86            ]
87        }
88    }
89}
90