void SetUp() { Mqtt = make_shared<MockMQTTClient>(); ModbusBackend = make_shared<TFakeModbusBackend>(); ModbusServer = make_shared<TModbusServer>(ModbusBackend); ModbusBackend->AllocateCache(0, 100, 100, 100, 100); PMQTTConverter conv1 = make_shared<TMQTTIntConverter>(TMQTTIntConverter::SIGNED, 1.0, 2); observers[0] = make_shared<TGatewayObserver>("/devices/device1/controls/topic1", conv1, Mqtt); ModbusServer->Observe(observers[0], TStoreType::HOLDING_REGISTER, TModbusAddressRange(0, 1)); Mqtt->Observe(observers[0]); observers[1] = make_shared<TGatewayObserver>("/devices/device1/controls/topic2", conv1, Mqtt); ModbusServer->Observe(observers[1], TStoreType::HOLDING_REGISTER, TModbusAddressRange(1, 1)); Mqtt->Observe(observers[1]); // test a coil to write on "#/on" PMQTTConverter coil_conv = make_shared<TMQTTDiscrConverter>(); observers[2] = make_shared<TGatewayObserver>("/devices/device1/controls/coil1", coil_conv, Mqtt); ModbusServer->Observe(observers[2], TStoreType::COIL, TModbusAddressRange(0, 1)); Mqtt->Observe(observers[2]); observers[3] = make_shared<TGatewayObserver>("/devices/device1/controls/coil2", coil_conv, Mqtt); ModbusServer->Observe(observers[3], TStoreType::COIL, TModbusAddressRange(1, 1)); Mqtt->Observe(observers[3]); observers[4] = make_shared<TGatewayObserver>("/devices/device1/controls/coil3", coil_conv, Mqtt); ModbusServer->Observe(observers[4], TStoreType::COIL, TModbusAddressRange(2, 1)); Mqtt->Observe(observers[4]); ModbusServer->AllocateCache(); }