# -*- coding: utf-8 -*-
#!/usr/bin/env python

from pymodbus.datastore import (
    ModbusSequentialDataBlock,
    ModbusServerContext,
    ModbusSlaveContext,
)
from pymodbus.payload import BinaryPayloadBuilder
from pymodbus.constants import Endian
from pymodbus.server.async import StartTcpServer


def run_simulator():
    builder = BinaryPayloadBuilder(wordorder=Endian.Little, byteorder=Endian.Little)
    builder.add_32bit_uint(500046)
    block = ModbusSequentialDataBlock(40000, builder.to_registers())
    store = ModbusSlaveContext(di=block, co=block, hr=block, ir=block, zero_mode=True)
    context = ModbusServerContext(slaves=store, single=True)
    StartTcpServer(context, address=('localhost', 5020))


if __name__ == '__main__':
    run_simulator()