{
    "_type": "Module",
    "body": [
        {
            "_type": "ImportFrom",
            "col_offset": 0,
            "level": 0,
            "lineno": 1,
            "module": "pymodbus.datastore",
            "names": [
                {
                    "_type": "alias",
                    "asname": null,
                    "name": "ModbusSlaveContext"
                },
                {
                    "_type": "alias",
                    "asname": null,
                    "name": "ModbusSequentialDataBlock"
                },
                {
                    "_type": "alias",
                    "asname": null,
                    "name": "ModbusServerContext"
                }
            ]
        },
        {
            "_type": "ImportFrom",
            "col_offset": 0,
            "level": 0,
            "lineno": 2,
            "module": "pymodbus.device",
            "names": [
                {
                    "_type": "alias",
                    "asname": null,
                    "name": "ModbusDeviceIdentification"
                }
            ]
        },
        {
            "_type": "ImportFrom",
            "col_offset": 0,
            "level": 0,
            "lineno": 3,
            "module": "pymodbus.server.sync",
            "names": [
                {
                    "_type": "alias",
                    "asname": null,
                    "name": "ModbusTcpServer"
                },
                {
                    "_type": "alias",
                    "asname": null,
                    "name": "StartTcpServer"
                }
            ]
        },
        {
            "_type": "ImportFrom",
            "col_offset": 0,
            "level": 0,
            "lineno": 5,
            "module": "Api",
            "names": [
                {
                    "_type": "alias",
                    "asname": null,
                    "name": "Message"
                },
                {
                    "_type": "alias",
                    "asname": null,
                    "name": "Protocol"
                },
                {
                    "_type": "alias",
                    "asname": null,
                    "name": "Buffer"
                }
            ]
        },
        {
            "_type": "ClassDef",
            "bases": [
                {
                    "_type": "Name",
                    "col_offset": 17,
                    "ctx": {
                        "_type": "Load"
                    },
                    "id": "object",
                    "lineno": 8
                }
            ],
            "body": [
                {
                    "_type": "FunctionDef",
                    "args": {
                        "_type": "arguments",
                        "args": [
                            {
                                "_type": "arg",
                                "annotation": null,
                                "arg": "self",
                                "col_offset": 17,
                                "lineno": 10
                            },
                            {
                                "_type": "arg",
                                "annotation": {
                                    "_type": "Name",
                                    "col_offset": 33,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "Protocol",
                                    "lineno": 10
                                },
                                "arg": "protocol",
                                "col_offset": 23,
                                "lineno": 10
                            }
                        ],
                        "defaults": [],
                        "kw_defaults": [],
                        "kwarg": null,
                        "kwonlyargs": [],
                        "vararg": null
                    },
                    "body": [
                        {
                            "_type": "Assign",
                            "col_offset": 8,
                            "lineno": 11,
                            "targets": [
                                {
                                    "_type": "Attribute",
                                    "attr": "protocol",
                                    "col_offset": 8,
                                    "ctx": {
                                        "_type": "Store"
                                    },
                                    "lineno": 11,
                                    "value": {
                                        "_type": "Name",
                                        "col_offset": 8,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "id": "self",
                                        "lineno": 11
                                    }
                                }
                            ],
                            "value": {
                                "_type": "Name",
                                "col_offset": 24,
                                "ctx": {
                                    "_type": "Load"
                                },
                                "id": "protocol",
                                "lineno": 11
                            }
                        }
                    ],
                    "col_offset": 4,
                    "decorator_list": [],
                    "lineno": 10,
                    "name": "__init__",
                    "returns": null
                },
                {
                    "_type": "FunctionDef",
                    "args": {
                        "_type": "arguments",
                        "args": [
                            {
                                "_type": "arg",
                                "annotation": null,
                                "arg": "self",
                                "col_offset": 16,
                                "lineno": 13
                            }
                        ],
                        "defaults": [],
                        "kw_defaults": [],
                        "kwarg": null,
                        "kwonlyargs": [],
                        "vararg": null
                    },
                    "body": [
                        {
                            "_type": "Pass",
                            "col_offset": 8,
                            "lineno": 14
                        }
                    ],
                    "col_offset": 4,
                    "decorator_list": [],
                    "lineno": 13,
                    "name": "connect",
                    "returns": null
                }
            ],
            "col_offset": 0,
            "decorator_list": [],
            "keywords": [],
            "lineno": 8,
            "name": "DriverBase"
        },
        {
            "_type": "ClassDef",
            "bases": [
                {
                    "_type": "Name",
                    "col_offset": 14,
                    "ctx": {
                        "_type": "Load"
                    },
                    "id": "Message",
                    "lineno": 17
                }
            ],
            "body": [
                {
                    "_type": "FunctionDef",
                    "args": {
                        "_type": "arguments",
                        "args": [
                            {
                                "_type": "arg",
                                "annotation": null,
                                "arg": "self",
                                "col_offset": 15,
                                "lineno": 19
                            },
                            {
                                "_type": "arg",
                                "annotation": {
                                    "_type": "Name",
                                    "col_offset": 29,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "Buffer",
                                    "lineno": 19
                                },
                                "arg": "buffer",
                                "col_offset": 21,
                                "lineno": 19
                            }
                        ],
                        "defaults": [],
                        "kw_defaults": [],
                        "kwarg": null,
                        "kwonlyargs": [],
                        "vararg": null
                    },
                    "body": [
                        {
                            "_type": "Expr",
                            "col_offset": 8,
                            "lineno": 20,
                            "value": {
                                "_type": "Call",
                                "args": [
                                    {
                                        "_type": "Call",
                                        "args": [
                                            {
                                                "_type": "Str",
                                                "col_offset": 30,
                                                "lineno": 20,
                                                "s": "Hallo I'm a  Request"
                                            },
                                            {
                                                "_type": "Str",
                                                "col_offset": 54,
                                                "lineno": 20,
                                                "s": "utf-8"
                                            }
                                        ],
                                        "col_offset": 20,
                                        "func": {
                                            "_type": "Name",
                                            "col_offset": 20,
                                            "ctx": {
                                                "_type": "Load"
                                            },
                                            "id": "bytearray",
                                            "lineno": 20
                                        },
                                        "keywords": [],
                                        "lineno": 20
                                    }
                                ],
                                "col_offset": 8,
                                "func": {
                                    "_type": "Attribute",
                                    "attr": "send",
                                    "col_offset": 8,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "lineno": 20,
                                    "value": {
                                        "_type": "Name",
                                        "col_offset": 8,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "id": "buffer",
                                        "lineno": 20
                                    }
                                },
                                "keywords": [],
                                "lineno": 20
                            }
                        }
                    ],
                    "col_offset": 4,
                    "decorator_list": [],
                    "lineno": 19,
                    "name": "encode",
                    "returns": null
                }
            ],
            "col_offset": 0,
            "decorator_list": [],
            "keywords": [],
            "lineno": 17,
            "name": "Request"
        },
        {
            "_type": "ClassDef",
            "bases": [
                {
                    "_type": "Name",
                    "col_offset": 15,
                    "ctx": {
                        "_type": "Load"
                    },
                    "id": "Message",
                    "lineno": 23
                }
            ],
            "body": [
                {
                    "_type": "FunctionDef",
                    "args": {
                        "_type": "arguments",
                        "args": [
                            {
                                "_type": "arg",
                                "annotation": null,
                                "arg": "self",
                                "col_offset": 15,
                                "lineno": 26
                            },
                            {
                                "_type": "arg",
                                "annotation": {
                                    "_type": "Name",
                                    "col_offset": 29,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "Buffer",
                                    "lineno": 26
                                },
                                "arg": "buffer",
                                "col_offset": 21,
                                "lineno": 26
                            }
                        ],
                        "defaults": [],
                        "kw_defaults": [],
                        "kwarg": null,
                        "kwonlyargs": [],
                        "vararg": null
                    },
                    "body": [
                        {
                            "_type": "Assign",
                            "col_offset": 8,
                            "lineno": 27,
                            "targets": [
                                {
                                    "_type": "Name",
                                    "col_offset": 8,
                                    "ctx": {
                                        "_type": "Store"
                                    },
                                    "id": "bytes",
                                    "lineno": 27
                                }
                            ],
                            "value": {
                                "_type": "Call",
                                "args": [],
                                "col_offset": 16,
                                "func": {
                                    "_type": "Name",
                                    "col_offset": 16,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "bytearray",
                                    "lineno": 27
                                },
                                "keywords": [],
                                "lineno": 27
                            }
                        },
                        {
                            "_type": "Assign",
                            "col_offset": 8,
                            "lineno": 28,
                            "targets": [
                                {
                                    "_type": "Name",
                                    "col_offset": 8,
                                    "ctx": {
                                        "_type": "Store"
                                    },
                                    "id": "b",
                                    "lineno": 28
                                }
                            ],
                            "value": {
                                "_type": "Call",
                                "args": [],
                                "col_offset": 12,
                                "func": {
                                    "_type": "Attribute",
                                    "attr": "readByte",
                                    "col_offset": 12,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "lineno": 28,
                                    "value": {
                                        "_type": "Name",
                                        "col_offset": 12,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "id": "buffer",
                                        "lineno": 28
                                    }
                                },
                                "keywords": [],
                                "lineno": 28
                            }
                        },
                        {
                            "_type": "While",
                            "body": [
                                {
                                    "_type": "Expr",
                                    "col_offset": 12,
                                    "lineno": 30,
                                    "value": {
                                        "_type": "Call",
                                        "args": [
                                            {
                                                "_type": "Name",
                                                "col_offset": 25,
                                                "ctx": {
                                                    "_type": "Load"
                                                },
                                                "id": "b",
                                                "lineno": 30
                                            }
                                        ],
                                        "col_offset": 12,
                                        "func": {
                                            "_type": "Attribute",
                                            "attr": "append",
                                            "col_offset": 12,
                                            "ctx": {
                                                "_type": "Load"
                                            },
                                            "lineno": 30,
                                            "value": {
                                                "_type": "Name",
                                                "col_offset": 12,
                                                "ctx": {
                                                    "_type": "Load"
                                                },
                                                "id": "bytes",
                                                "lineno": 30
                                            }
                                        },
                                        "keywords": [],
                                        "lineno": 30
                                    }
                                },
                                {
                                    "_type": "Assign",
                                    "col_offset": 12,
                                    "lineno": 31,
                                    "targets": [
                                        {
                                            "_type": "Name",
                                            "col_offset": 12,
                                            "ctx": {
                                                "_type": "Store"
                                            },
                                            "id": "b",
                                            "lineno": 31
                                        }
                                    ],
                                    "value": {
                                        "_type": "Call",
                                        "args": [],
                                        "col_offset": 16,
                                        "func": {
                                            "_type": "Attribute",
                                            "attr": "readByte",
                                            "col_offset": 16,
                                            "ctx": {
                                                "_type": "Load"
                                            },
                                            "lineno": 31,
                                            "value": {
                                                "_type": "Name",
                                                "col_offset": 16,
                                                "ctx": {
                                                    "_type": "Load"
                                                },
                                                "id": "buffer",
                                                "lineno": 31
                                            }
                                        },
                                        "keywords": [],
                                        "lineno": 31
                                    }
                                }
                            ],
                            "col_offset": 8,
                            "lineno": 29,
                            "orelse": [],
                            "test": {
                                "_type": "Compare",
                                "col_offset": 14,
                                "comparators": [
                                    {
                                        "_type": "Num",
                                        "col_offset": 19,
                                        "lineno": 29,
                                        "n": 0
                                    }
                                ],
                                "left": {
                                    "_type": "Name",
                                    "col_offset": 14,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "b",
                                    "lineno": 29
                                },
                                "lineno": 29,
                                "ops": [
                                    {
                                        "_type": "NotEq"
                                    }
                                ]
                            }
                        },
                        {
                            "_type": "Expr",
                            "col_offset": 8,
                            "lineno": 32,
                            "value": {
                                "_type": "Call",
                                "args": [
                                    {
                                        "_type": "Call",
                                        "args": [
                                            {
                                                "_type": "Name",
                                                "col_offset": 18,
                                                "ctx": {
                                                    "_type": "Load"
                                                },
                                                "id": "bytearray",
                                                "lineno": 32
                                            }
                                        ],
                                        "col_offset": 14,
                                        "func": {
                                            "_type": "Name",
                                            "col_offset": 14,
                                            "ctx": {
                                                "_type": "Load"
                                            },
                                            "id": "str",
                                            "lineno": 32
                                        },
                                        "keywords": [],
                                        "lineno": 32
                                    }
                                ],
                                "col_offset": 8,
                                "func": {
                                    "_type": "Name",
                                    "col_offset": 8,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "print",
                                    "lineno": 32
                                },
                                "keywords": [],
                                "lineno": 32
                            }
                        },
                        {
                            "_type": "Return",
                            "col_offset": 8,
                            "lineno": 33,
                            "value": {
                                "_type": "Call",
                                "args": [],
                                "col_offset": 15,
                                "func": {
                                    "_type": "Name",
                                    "col_offset": 15,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "Response",
                                    "lineno": 33
                                },
                                "keywords": [],
                                "lineno": 33
                            }
                        }
                    ],
                    "col_offset": 4,
                    "decorator_list": [
                        {
                            "_type": "Name",
                            "col_offset": 5,
                            "ctx": {
                                "_type": "Load"
                            },
                            "id": "classmethod",
                            "lineno": 25
                        }
                    ],
                    "lineno": 25,
                    "name": "decode",
                    "returns": null
                }
            ],
            "col_offset": 0,
            "decorator_list": [],
            "keywords": [],
            "lineno": 23,
            "name": "Response"
        },
        {
            "_type": "ClassDef",
            "bases": [
                {
                    "_type": "Name",
                    "col_offset": 20,
                    "ctx": {
                        "_type": "Load"
                    },
                    "id": "DriverBase",
                    "lineno": 36
                }
            ],
            "body": [
                {
                    "_type": "AnnAssign",
                    "annotation": {
                        "_type": "Name",
                        "col_offset": 12,
                        "ctx": {
                            "_type": "Load"
                        },
                        "id": "Buffer",
                        "lineno": 37
                    },
                    "col_offset": 4,
                    "lineno": 37,
                    "simple": 1,
                    "target": {
                        "_type": "Name",
                        "col_offset": 4,
                        "ctx": {
                            "_type": "Store"
                        },
                        "id": "buffer",
                        "lineno": 37
                    },
                    "value": null
                },
                {
                    "_type": "FunctionDef",
                    "args": {
                        "_type": "arguments",
                        "args": [
                            {
                                "_type": "arg",
                                "annotation": null,
                                "arg": "self",
                                "col_offset": 17,
                                "lineno": 39
                            },
                            {
                                "_type": "arg",
                                "annotation": {
                                    "_type": "Name",
                                    "col_offset": 33,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "Protocol",
                                    "lineno": 39
                                },
                                "arg": "protocol",
                                "col_offset": 23,
                                "lineno": 39
                            }
                        ],
                        "defaults": [],
                        "kw_defaults": [],
                        "kwarg": null,
                        "kwonlyargs": [],
                        "vararg": null
                    },
                    "body": [
                        {
                            "_type": "Expr",
                            "col_offset": 8,
                            "lineno": 40,
                            "value": {
                                "_type": "Call",
                                "args": [
                                    {
                                        "_type": "Name",
                                        "col_offset": 25,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "id": "protocol",
                                        "lineno": 40
                                    }
                                ],
                                "col_offset": 8,
                                "func": {
                                    "_type": "Attribute",
                                    "attr": "__init__",
                                    "col_offset": 8,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "lineno": 40,
                                    "value": {
                                        "_type": "Call",
                                        "args": [],
                                        "col_offset": 8,
                                        "func": {
                                            "_type": "Name",
                                            "col_offset": 8,
                                            "ctx": {
                                                "_type": "Load"
                                            },
                                            "id": "super",
                                            "lineno": 40
                                        },
                                        "keywords": [],
                                        "lineno": 40
                                    }
                                },
                                "keywords": [],
                                "lineno": 40
                            }
                        }
                    ],
                    "col_offset": 4,
                    "decorator_list": [],
                    "lineno": 39,
                    "name": "__init__",
                    "returns": null
                },
                {
                    "_type": "FunctionDef",
                    "args": {
                        "_type": "arguments",
                        "args": [
                            {
                                "_type": "arg",
                                "annotation": null,
                                "arg": "self",
                                "col_offset": 16,
                                "lineno": 42
                            }
                        ],
                        "defaults": [],
                        "kw_defaults": [],
                        "kwarg": null,
                        "kwonlyargs": [],
                        "vararg": null
                    },
                    "body": [
                        {
                            "_type": "Assign",
                            "col_offset": 8,
                            "lineno": 44,
                            "targets": [
                                {
                                    "_type": "Attribute",
                                    "attr": "buffer",
                                    "col_offset": 8,
                                    "ctx": {
                                        "_type": "Store"
                                    },
                                    "lineno": 44,
                                    "value": {
                                        "_type": "Name",
                                        "col_offset": 8,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "id": "self",
                                        "lineno": 44
                                    }
                                }
                            ],
                            "value": {
                                "_type": "Call",
                                "args": [],
                                "col_offset": 22,
                                "func": {
                                    "_type": "Attribute",
                                    "attr": "connect",
                                    "col_offset": 22,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "lineno": 44,
                                    "value": {
                                        "_type": "Attribute",
                                        "attr": "protocol",
                                        "col_offset": 22,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "lineno": 44,
                                        "value": {
                                            "_type": "Name",
                                            "col_offset": 22,
                                            "ctx": {
                                                "_type": "Load"
                                            },
                                            "id": "self",
                                            "lineno": 44
                                        }
                                    }
                                },
                                "keywords": [],
                                "lineno": 44
                            }
                        },
                        {
                            "_type": "AnnAssign",
                            "annotation": {
                                "_type": "Name",
                                "col_offset": 17,
                                "ctx": {
                                    "_type": "Load"
                                },
                                "id": "Request",
                                "lineno": 46
                            },
                            "col_offset": 8,
                            "lineno": 46,
                            "simple": 1,
                            "target": {
                                "_type": "Name",
                                "col_offset": 8,
                                "ctx": {
                                    "_type": "Store"
                                },
                                "id": "request",
                                "lineno": 46
                            },
                            "value": {
                                "_type": "Call",
                                "args": [],
                                "col_offset": 27,
                                "func": {
                                    "_type": "Name",
                                    "col_offset": 27,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "Request",
                                    "lineno": 46
                                },
                                "keywords": [],
                                "lineno": 46
                            }
                        },
                        {
                            "_type": "Expr",
                            "col_offset": 8,
                            "lineno": 48,
                            "value": {
                                "_type": "Call",
                                "args": [
                                    {
                                        "_type": "Attribute",
                                        "attr": "buffer",
                                        "col_offset": 23,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "lineno": 48,
                                        "value": {
                                            "_type": "Name",
                                            "col_offset": 23,
                                            "ctx": {
                                                "_type": "Load"
                                            },
                                            "id": "self",
                                            "lineno": 48
                                        }
                                    }
                                ],
                                "col_offset": 8,
                                "func": {
                                    "_type": "Attribute",
                                    "attr": "encode",
                                    "col_offset": 8,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "lineno": 48,
                                    "value": {
                                        "_type": "Name",
                                        "col_offset": 8,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "id": "request",
                                        "lineno": 48
                                    }
                                },
                                "keywords": [],
                                "lineno": 48
                            }
                        },
                        {
                            "_type": "Expr",
                            "col_offset": 8,
                            "lineno": 51,
                            "value": {
                                "_type": "Call",
                                "args": [
                                    {
                                        "_type": "Name",
                                        "col_offset": 28,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "id": "Response",
                                        "lineno": 51
                                    }
                                ],
                                "col_offset": 8,
                                "func": {
                                    "_type": "Attribute",
                                    "attr": "receive",
                                    "col_offset": 8,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "lineno": 51,
                                    "value": {
                                        "_type": "Attribute",
                                        "attr": "buffer",
                                        "col_offset": 8,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "lineno": 51,
                                        "value": {
                                            "_type": "Name",
                                            "col_offset": 8,
                                            "ctx": {
                                                "_type": "Load"
                                            },
                                            "id": "self",
                                            "lineno": 51
                                        }
                                    }
                                },
                                "keywords": [],
                                "lineno": 51
                            }
                        }
                    ],
                    "col_offset": 4,
                    "decorator_list": [],
                    "lineno": 42,
                    "name": "connect",
                    "returns": null
                }
            ],
            "col_offset": 0,
            "decorator_list": [],
            "keywords": [],
            "lineno": 36,
            "name": "ExampleDriver"
        },
        {
            "_type": "ClassDef",
            "bases": [
                {
                    "_type": "Name",
                    "col_offset": 18,
                    "ctx": {
                        "_type": "Load"
                    },
                    "id": "Buffer",
                    "lineno": 54
                }
            ],
            "body": [
                {
                    "_type": "FunctionDef",
                    "args": {
                        "_type": "arguments",
                        "args": [
                            {
                                "_type": "arg",
                                "annotation": null,
                                "arg": "self",
                                "col_offset": 17,
                                "lineno": 56
                            }
                        ],
                        "defaults": [],
                        "kw_defaults": [],
                        "kwarg": null,
                        "kwonlyargs": [],
                        "vararg": null
                    },
                    "body": [
                        {
                            "_type": "Return",
                            "col_offset": 8,
                            "lineno": 57,
                            "value": {
                                "_type": "Num",
                                "col_offset": 15,
                                "lineno": 57,
                                "n": 0
                            }
                        }
                    ],
                    "col_offset": 4,
                    "decorator_list": [],
                    "lineno": 56,
                    "name": "readByte",
                    "returns": null
                },
                {
                    "_type": "FunctionDef",
                    "args": {
                        "_type": "arguments",
                        "args": [
                            {
                                "_type": "arg",
                                "annotation": null,
                                "arg": "self",
                                "col_offset": 13,
                                "lineno": 59
                            },
                            {
                                "_type": "arg",
                                "annotation": {
                                    "_type": "Name",
                                    "col_offset": 26,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "bytearray",
                                    "lineno": 59
                                },
                                "arg": "bytes",
                                "col_offset": 19,
                                "lineno": 59
                            }
                        ],
                        "defaults": [],
                        "kw_defaults": [],
                        "kwarg": null,
                        "kwonlyargs": [],
                        "vararg": null
                    },
                    "body": [
                        {
                            "_type": "Expr",
                            "col_offset": 8,
                            "lineno": 60,
                            "value": {
                                "_type": "Call",
                                "args": [
                                    {
                                        "_type": "Call",
                                        "args": [
                                            {
                                                "_type": "Name",
                                                "col_offset": 18,
                                                "ctx": {
                                                    "_type": "Load"
                                                },
                                                "id": "bytes",
                                                "lineno": 60
                                            }
                                        ],
                                        "col_offset": 14,
                                        "func": {
                                            "_type": "Name",
                                            "col_offset": 14,
                                            "ctx": {
                                                "_type": "Load"
                                            },
                                            "id": "str",
                                            "lineno": 60
                                        },
                                        "keywords": [],
                                        "lineno": 60
                                    }
                                ],
                                "col_offset": 8,
                                "func": {
                                    "_type": "Name",
                                    "col_offset": 8,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "print",
                                    "lineno": 60
                                },
                                "keywords": [],
                                "lineno": 60
                            }
                        }
                    ],
                    "col_offset": 4,
                    "decorator_list": [],
                    "lineno": 59,
                    "name": "send",
                    "returns": null
                },
                {
                    "_type": "FunctionDef",
                    "args": {
                        "_type": "arguments",
                        "args": [
                            {
                                "_type": "arg",
                                "annotation": null,
                                "arg": "self",
                                "col_offset": 16,
                                "lineno": 62
                            },
                            {
                                "_type": "arg",
                                "annotation": {
                                    "_type": "Name",
                                    "col_offset": 32,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "type",
                                    "lineno": 62
                                },
                                "arg": "response",
                                "col_offset": 22,
                                "lineno": 62
                            }
                        ],
                        "defaults": [],
                        "kw_defaults": [],
                        "kwarg": null,
                        "kwonlyargs": [],
                        "vararg": null
                    },
                    "body": [
                        {
                            "_type": "Return",
                            "col_offset": 8,
                            "lineno": 63,
                            "value": {
                                "_type": "Call",
                                "args": [
                                    {
                                        "_type": "Name",
                                        "col_offset": 31,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "id": "self",
                                        "lineno": 63
                                    }
                                ],
                                "col_offset": 15,
                                "func": {
                                    "_type": "Attribute",
                                    "attr": "decode",
                                    "col_offset": 15,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "lineno": 63,
                                    "value": {
                                        "_type": "Name",
                                        "col_offset": 15,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "id": "response",
                                        "lineno": 63
                                    }
                                },
                                "keywords": [],
                                "lineno": 63
                            }
                        }
                    ],
                    "col_offset": 4,
                    "decorator_list": [],
                    "lineno": 62,
                    "name": "receive",
                    "returns": null
                }
            ],
            "col_offset": 0,
            "decorator_list": [],
            "keywords": [],
            "lineno": 54,
            "name": "DummyBuffer"
        },
        {
            "_type": "ClassDef",
            "bases": [
                {
                    "_type": "Name",
                    "col_offset": 20,
                    "ctx": {
                        "_type": "Load"
                    },
                    "id": "Protocol",
                    "lineno": 66
                }
            ],
            "body": [
                {
                    "_type": "FunctionDef",
                    "args": {
                        "_type": "arguments",
                        "args": [
                            {
                                "_type": "arg",
                                "annotation": null,
                                "arg": "self",
                                "col_offset": 16,
                                "lineno": 68
                            }
                        ],
                        "defaults": [],
                        "kw_defaults": [],
                        "kwarg": null,
                        "kwonlyargs": [],
                        "vararg": null
                    },
                    "body": [
                        {
                            "_type": "Return",
                            "col_offset": 8,
                            "lineno": 69,
                            "value": {
                                "_type": "Call",
                                "args": [],
                                "col_offset": 15,
                                "func": {
                                    "_type": "Name",
                                    "col_offset": 15,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "DummyBuffer",
                                    "lineno": 69
                                },
                                "keywords": [],
                                "lineno": 69
                            }
                        }
                    ],
                    "col_offset": 4,
                    "decorator_list": [],
                    "lineno": 68,
                    "name": "connect",
                    "returns": {
                        "_type": "Name",
                        "col_offset": 25,
                        "ctx": {
                            "_type": "Load"
                        },
                        "id": "Buffer",
                        "lineno": 68
                    }
                },
                {
                    "_type": "FunctionDef",
                    "args": {
                        "_type": "arguments",
                        "args": [
                            {
                                "_type": "arg",
                                "annotation": null,
                                "arg": "self",
                                "col_offset": 14,
                                "lineno": 71
                            }
                        ],
                        "defaults": [],
                        "kw_defaults": [],
                        "kwarg": null,
                        "kwonlyargs": [],
                        "vararg": null
                    },
                    "body": [
                        {
                            "_type": "Pass",
                            "col_offset": 8,
                            "lineno": 72
                        }
                    ],
                    "col_offset": 4,
                    "decorator_list": [],
                    "lineno": 71,
                    "name": "close",
                    "returns": null
                }
            ],
            "col_offset": 0,
            "decorator_list": [],
            "keywords": [],
            "lineno": 66,
            "name": "DummyProtocol"
        },
        {
            "_type": "If",
            "body": [
                {
                    "_type": "Assign",
                    "col_offset": 4,
                    "lineno": 77,
                    "targets": [
                        {
                            "_type": "Name",
                            "col_offset": 4,
                            "ctx": {
                                "_type": "Store"
                            },
                            "id": "store",
                            "lineno": 77
                        }
                    ],
                    "value": {
                        "_type": "Call",
                        "args": [],
                        "col_offset": 12,
                        "func": {
                            "_type": "Name",
                            "col_offset": 12,
                            "ctx": {
                                "_type": "Load"
                            },
                            "id": "ModbusSlaveContext",
                            "lineno": 77
                        },
                        "keywords": [
                            {
                                "_type": "keyword",
                                "arg": "di",
                                "value": {
                                    "_type": "Call",
                                    "args": [
                                        {
                                            "_type": "Num",
                                            "col_offset": 37,
                                            "lineno": 78,
                                            "n": 0
                                        },
                                        {
                                            "_type": "BinOp",
                                            "col_offset": 40,
                                            "left": {
                                                "_type": "List",
                                                "col_offset": 40,
                                                "ctx": {
                                                    "_type": "Load"
                                                },
                                                "elts": [
                                                    {
                                                        "_type": "Num",
                                                        "col_offset": 41,
                                                        "lineno": 78,
                                                        "n": 17
                                                    }
                                                ],
                                                "lineno": 78
                                            },
                                            "lineno": 78,
                                            "op": {
                                                "_type": "Mult"
                                            },
                                            "right": {
                                                "_type": "Num",
                                                "col_offset": 47,
                                                "lineno": 78,
                                                "n": 100
                                            }
                                        }
                                    ],
                                    "col_offset": 11,
                                    "func": {
                                        "_type": "Name",
                                        "col_offset": 11,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "id": "ModbusSequentialDataBlock",
                                        "lineno": 78
                                    },
                                    "keywords": [],
                                    "lineno": 78
                                }
                            },
                            {
                                "_type": "keyword",
                                "arg": "co",
                                "value": {
                                    "_type": "Call",
                                    "args": [
                                        {
                                            "_type": "Num",
                                            "col_offset": 37,
                                            "lineno": 79,
                                            "n": 0
                                        },
                                        {
                                            "_type": "BinOp",
                                            "col_offset": 40,
                                            "left": {
                                                "_type": "List",
                                                "col_offset": 40,
                                                "ctx": {
                                                    "_type": "Load"
                                                },
                                                "elts": [
                                                    {
                                                        "_type": "Num",
                                                        "col_offset": 41,
                                                        "lineno": 79,
                                                        "n": 17
                                                    }
                                                ],
                                                "lineno": 79
                                            },
                                            "lineno": 79,
                                            "op": {
                                                "_type": "Mult"
                                            },
                                            "right": {
                                                "_type": "Num",
                                                "col_offset": 47,
                                                "lineno": 79,
                                                "n": 100
                                            }
                                        }
                                    ],
                                    "col_offset": 11,
                                    "func": {
                                        "_type": "Name",
                                        "col_offset": 11,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "id": "ModbusSequentialDataBlock",
                                        "lineno": 79
                                    },
                                    "keywords": [],
                                    "lineno": 79
                                }
                            },
                            {
                                "_type": "keyword",
                                "arg": "hr",
                                "value": {
                                    "_type": "Call",
                                    "args": [
                                        {
                                            "_type": "Num",
                                            "col_offset": 37,
                                            "lineno": 80,
                                            "n": 0
                                        },
                                        {
                                            "_type": "BinOp",
                                            "col_offset": 40,
                                            "left": {
                                                "_type": "List",
                                                "col_offset": 40,
                                                "ctx": {
                                                    "_type": "Load"
                                                },
                                                "elts": [
                                                    {
                                                        "_type": "Num",
                                                        "col_offset": 41,
                                                        "lineno": 80,
                                                        "n": 17
                                                    }
                                                ],
                                                "lineno": 80
                                            },
                                            "lineno": 80,
                                            "op": {
                                                "_type": "Mult"
                                            },
                                            "right": {
                                                "_type": "Num",
                                                "col_offset": 47,
                                                "lineno": 80,
                                                "n": 100
                                            }
                                        }
                                    ],
                                    "col_offset": 11,
                                    "func": {
                                        "_type": "Name",
                                        "col_offset": 11,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "id": "ModbusSequentialDataBlock",
                                        "lineno": 80
                                    },
                                    "keywords": [],
                                    "lineno": 80
                                }
                            },
                            {
                                "_type": "keyword",
                                "arg": "ir",
                                "value": {
                                    "_type": "Call",
                                    "args": [
                                        {
                                            "_type": "Num",
                                            "col_offset": 37,
                                            "lineno": 81,
                                            "n": 0
                                        },
                                        {
                                            "_type": "BinOp",
                                            "col_offset": 40,
                                            "left": {
                                                "_type": "List",
                                                "col_offset": 40,
                                                "ctx": {
                                                    "_type": "Load"
                                                },
                                                "elts": [
                                                    {
                                                        "_type": "Num",
                                                        "col_offset": 41,
                                                        "lineno": 81,
                                                        "n": 17
                                                    }
                                                ],
                                                "lineno": 81
                                            },
                                            "lineno": 81,
                                            "op": {
                                                "_type": "Mult"
                                            },
                                            "right": {
                                                "_type": "Num",
                                                "col_offset": 47,
                                                "lineno": 81,
                                                "n": 100
                                            }
                                        }
                                    ],
                                    "col_offset": 11,
                                    "func": {
                                        "_type": "Name",
                                        "col_offset": 11,
                                        "ctx": {
                                            "_type": "Load"
                                        },
                                        "id": "ModbusSequentialDataBlock",
                                        "lineno": 81
                                    },
                                    "keywords": [],
                                    "lineno": 81
                                }
                            }
                        ],
                        "lineno": 77
                    }
                },
                {
                    "_type": "Assign",
                    "col_offset": 4,
                    "lineno": 83,
                    "targets": [
                        {
                            "_type": "Name",
                            "col_offset": 4,
                            "ctx": {
                                "_type": "Store"
                            },
                            "id": "context",
                            "lineno": 83
                        }
                    ],
                    "value": {
                        "_type": "Call",
                        "args": [],
                        "col_offset": 14,
                        "func": {
                            "_type": "Name",
                            "col_offset": 14,
                            "ctx": {
                                "_type": "Load"
                            },
                            "id": "ModbusServerContext",
                            "lineno": 83
                        },
                        "keywords": [
                            {
                                "_type": "keyword",
                                "arg": "slaves",
                                "value": {
                                    "_type": "Name",
                                    "col_offset": 41,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "store",
                                    "lineno": 83
                                }
                            },
                            {
                                "_type": "keyword",
                                "arg": "single",
                                "value": {
                                    "_type": "NameConstant",
                                    "col_offset": 55,
                                    "lineno": 83,
                                    "value": true
                                }
                            }
                        ],
                        "lineno": 83
                    }
                },
                {
                    "_type": "Assign",
                    "col_offset": 4,
                    "lineno": 90,
                    "targets": [
                        {
                            "_type": "Name",
                            "col_offset": 4,
                            "ctx": {
                                "_type": "Store"
                            },
                            "id": "identity",
                            "lineno": 90
                        }
                    ],
                    "value": {
                        "_type": "Call",
                        "args": [],
                        "col_offset": 15,
                        "func": {
                            "_type": "Name",
                            "col_offset": 15,
                            "ctx": {
                                "_type": "Load"
                            },
                            "id": "ModbusDeviceIdentification",
                            "lineno": 90
                        },
                        "keywords": [],
                        "lineno": 90
                    }
                },
                {
                    "_type": "Assign",
                    "col_offset": 4,
                    "lineno": 91,
                    "targets": [
                        {
                            "_type": "Attribute",
                            "attr": "VendorName",
                            "col_offset": 4,
                            "ctx": {
                                "_type": "Store"
                            },
                            "lineno": 91,
                            "value": {
                                "_type": "Name",
                                "col_offset": 4,
                                "ctx": {
                                    "_type": "Load"
                                },
                                "id": "identity",
                                "lineno": 91
                            }
                        }
                    ],
                    "value": {
                        "_type": "Str",
                        "col_offset": 26,
                        "lineno": 91,
                        "s": "Pymodbus"
                    }
                },
                {
                    "_type": "Assign",
                    "col_offset": 4,
                    "lineno": 92,
                    "targets": [
                        {
                            "_type": "Attribute",
                            "attr": "ProductCode",
                            "col_offset": 4,
                            "ctx": {
                                "_type": "Store"
                            },
                            "lineno": 92,
                            "value": {
                                "_type": "Name",
                                "col_offset": 4,
                                "ctx": {
                                    "_type": "Load"
                                },
                                "id": "identity",
                                "lineno": 92
                            }
                        }
                    ],
                    "value": {
                        "_type": "Str",
                        "col_offset": 27,
                        "lineno": 92,
                        "s": "PM"
                    }
                },
                {
                    "_type": "Assign",
                    "col_offset": 4,
                    "lineno": 93,
                    "targets": [
                        {
                            "_type": "Attribute",
                            "attr": "VendorUrl",
                            "col_offset": 4,
                            "ctx": {
                                "_type": "Store"
                            },
                            "lineno": 93,
                            "value": {
                                "_type": "Name",
                                "col_offset": 4,
                                "ctx": {
                                    "_type": "Load"
                                },
                                "id": "identity",
                                "lineno": 93
                            }
                        }
                    ],
                    "value": {
                        "_type": "Str",
                        "col_offset": 25,
                        "lineno": 93,
                        "s": "http://github.com/riptideio/pymodbus/"
                    }
                },
                {
                    "_type": "Assign",
                    "col_offset": 4,
                    "lineno": 94,
                    "targets": [
                        {
                            "_type": "Attribute",
                            "attr": "ProductName",
                            "col_offset": 4,
                            "ctx": {
                                "_type": "Store"
                            },
                            "lineno": 94,
                            "value": {
                                "_type": "Name",
                                "col_offset": 4,
                                "ctx": {
                                    "_type": "Load"
                                },
                                "id": "identity",
                                "lineno": 94
                            }
                        }
                    ],
                    "value": {
                        "_type": "Str",
                        "col_offset": 27,
                        "lineno": 94,
                        "s": "Pymodbus Server"
                    }
                },
                {
                    "_type": "Assign",
                    "col_offset": 4,
                    "lineno": 95,
                    "targets": [
                        {
                            "_type": "Attribute",
                            "attr": "ModelName",
                            "col_offset": 4,
                            "ctx": {
                                "_type": "Store"
                            },
                            "lineno": 95,
                            "value": {
                                "_type": "Name",
                                "col_offset": 4,
                                "ctx": {
                                    "_type": "Load"
                                },
                                "id": "identity",
                                "lineno": 95
                            }
                        }
                    ],
                    "value": {
                        "_type": "Str",
                        "col_offset": 25,
                        "lineno": 95,
                        "s": "Pymodbus Server"
                    }
                },
                {
                    "_type": "Assign",
                    "col_offset": 4,
                    "lineno": 96,
                    "targets": [
                        {
                            "_type": "Attribute",
                            "attr": "MajorMinorRevision",
                            "col_offset": 4,
                            "ctx": {
                                "_type": "Store"
                            },
                            "lineno": 96,
                            "value": {
                                "_type": "Name",
                                "col_offset": 4,
                                "ctx": {
                                    "_type": "Load"
                                },
                                "id": "identity",
                                "lineno": 96
                            }
                        }
                    ],
                    "value": {
                        "_type": "Str",
                        "col_offset": 34,
                        "lineno": 96,
                        "s": "2.1.0"
                    }
                },
                {
                    "_type": "Assign",
                    "col_offset": 4,
                    "lineno": 102,
                    "targets": [
                        {
                            "_type": "Name",
                            "col_offset": 4,
                            "ctx": {
                                "_type": "Store"
                            },
                            "id": "server",
                            "lineno": 102
                        }
                    ],
                    "value": {
                        "_type": "Call",
                        "args": [
                            {
                                "_type": "Name",
                                "col_offset": 29,
                                "ctx": {
                                    "_type": "Load"
                                },
                                "id": "context",
                                "lineno": 102
                            }
                        ],
                        "col_offset": 13,
                        "func": {
                            "_type": "Name",
                            "col_offset": 13,
                            "ctx": {
                                "_type": "Load"
                            },
                            "id": "ModbusTcpServer",
                            "lineno": 102
                        },
                        "keywords": [
                            {
                                "_type": "keyword",
                                "arg": "identity",
                                "value": {
                                    "_type": "Name",
                                    "col_offset": 47,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "identity",
                                    "lineno": 102
                                }
                            },
                            {
                                "_type": "keyword",
                                "arg": "address",
                                "value": {
                                    "_type": "Tuple",
                                    "col_offset": 66,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "elts": [
                                        {
                                            "_type": "Str",
                                            "col_offset": 66,
                                            "lineno": 102,
                                            "s": "localhost"
                                        },
                                        {
                                            "_type": "Num",
                                            "col_offset": 79,
                                            "lineno": 102,
                                            "n": 5020
                                        }
                                    ],
                                    "lineno": 102
                                }
                            }
                        ],
                        "lineno": 102
                    }
                },
                {
                    "_type": "Assign",
                    "col_offset": 4,
                    "lineno": 104,
                    "targets": [
                        {
                            "_type": "Name",
                            "col_offset": 4,
                            "ctx": {
                                "_type": "Store"
                            },
                            "id": "drv",
                            "lineno": 104
                        }
                    ],
                    "value": {
                        "_type": "Call",
                        "args": [
                            {
                                "_type": "Call",
                                "args": [],
                                "col_offset": 24,
                                "func": {
                                    "_type": "Name",
                                    "col_offset": 24,
                                    "ctx": {
                                        "_type": "Load"
                                    },
                                    "id": "DummyProtocol",
                                    "lineno": 104
                                },
                                "keywords": [],
                                "lineno": 104
                            }
                        ],
                        "col_offset": 10,
                        "func": {
                            "_type": "Name",
                            "col_offset": 10,
                            "ctx": {
                                "_type": "Load"
                            },
                            "id": "ExampleDriver",
                            "lineno": 104
                        },
                        "keywords": [],
                        "lineno": 104
                    }
                },
                {
                    "_type": "Expr",
                    "col_offset": 4,
                    "lineno": 105,
                    "value": {
                        "_type": "Call",
                        "args": [],
                        "col_offset": 4,
                        "func": {
                            "_type": "Attribute",
                            "attr": "connect",
                            "col_offset": 4,
                            "ctx": {
                                "_type": "Load"
                            },
                            "lineno": 105,
                            "value": {
                                "_type": "Name",
                                "col_offset": 4,
                                "ctx": {
                                    "_type": "Load"
                                },
                                "id": "drv",
                                "lineno": 105
                            }
                        },
                        "keywords": [],
                        "lineno": 105
                    }
                },
                {
                    "_type": "Expr",
                    "col_offset": 4,
                    "lineno": 107,
                    "value": {
                        "_type": "Call",
                        "args": [],
                        "col_offset": 4,
                        "func": {
                            "_type": "Attribute",
                            "attr": "server_close",
                            "col_offset": 4,
                            "ctx": {
                                "_type": "Load"
                            },
                            "lineno": 107,
                            "value": {
                                "_type": "Name",
                                "col_offset": 4,
                                "ctx": {
                                    "_type": "Load"
                                },
                                "id": "server",
                                "lineno": 107
                            }
                        },
                        "keywords": [],
                        "lineno": 107
                    }
                }
            ],
            "col_offset": 0,
            "lineno": 75,
            "orelse": [],
            "test": {
                "_type": "Compare",
                "col_offset": 3,
                "comparators": [
                    {
                        "_type": "Str",
                        "col_offset": 15,
                        "lineno": 75,
                        "s": "__main__"
                    }
                ],
                "left": {
                    "_type": "Name",
                    "col_offset": 3,
                    "ctx": {
                        "_type": "Load"
                    },
                    "id": "__name__",
                    "lineno": 75
                },
                "lineno": 75,
                "ops": [
                    {
                        "_type": "Eq"
                    }
                ]
            }
        }
    ]
}