Virtual Prototyping of Large-Scale IoT Control Systems Using Domain-Specific Languages