Skip to content

Commit 96715d9

Browse files
authored
Merge pull request #433 from mtconnect/419_uuid_issues_with_preserve_id
2 parents 9f992f9 + 3d3a6c5 commit 96715d9

File tree

3 files changed

+42
-2
lines changed

3 files changed

+42
-2
lines changed

src/mtconnect/agent.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -857,6 +857,11 @@ namespace mtconnect {
857857
errors);
858858
device->addDataItem(di, errors);
859859
}
860+
861+
if (IsOptionSet(m_options, mtconnect::configuration::PreserveUUID))
862+
{
863+
device->setPreserveUuid(*GetOption<bool>(m_options, mtconnect::configuration::PreserveUUID));
864+
}
860865
}
861866

862867
void Agent::initializeDataItems(DevicePtr device, std::optional<std::set<std::string>> skip)

src/mtconnect/configuration/agent_config.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -887,10 +887,11 @@ namespace mtconnect::configuration {
887887
m_version = *m_agent->getSchemaVersion();
888888

889889
DevicePtr device;
890-
if (IsOptionSet(options, configuration::PreserveUUID))
890+
auto preserve = GetOption<bool>(options, configuration::PreserveUUID);
891+
if (preserve)
891892
{
892893
for (auto device : m_agent->getDevices())
893-
device->setPreserveUuid(IsOptionSet(options, configuration::PreserveUUID));
894+
device->setPreserveUuid(*preserve);
894895
}
895896

896897
loadAdapters(config, options);
@@ -994,6 +995,12 @@ namespace mtconnect::configuration {
994995
m_agent->deviceChanged(device, oldUuid, *device->getComponentName());
995996
}
996997

998+
auto preserve = GetOption<bool>(adapterOptions, configuration::PreserveUUID);
999+
if (preserve && device)
1000+
{
1001+
device->setPreserveUuid(*preserve);
1002+
}
1003+
9971004
auto additional = block.second.get_optional<string>(configuration::AdditionalDevices);
9981005
if (additional)
9991006
{

test_package/agent_test.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1686,6 +1686,34 @@ TEST_F(AgentTest, adapter_should_receive_commands)
16861686
ASSERT_EQ("MK-1234", *GetOption<string>(options, configuration::Device));
16871687
}
16881688

1689+
TEST_F(AgentTest, adapter_should_not_process_uuid_command_with_preserve_uuid)
1690+
{
1691+
auto agent = m_agentTestHelper->createAgent("/samples/test_config.xml", 8, 4, "2.3", 4, false,
1692+
true, {{configuration::PreserveUUID, true}});
1693+
addAdapter();
1694+
1695+
auto device = agent->getDeviceByName("LinuxCNC");
1696+
ASSERT_TRUE(device);
1697+
ASSERT_TRUE(device->preserveUuid());
1698+
1699+
m_agentTestHelper->m_adapter->parseBuffer("* uuid: MK-1234\n");
1700+
1701+
{
1702+
PARSE_XML_RESPONSE("/probe");
1703+
ASSERT_XML_PATH_EQUAL(doc, "//m:Device@uuid", "000");
1704+
}
1705+
1706+
m_agentTestHelper->m_adapter->processData(
1707+
"2021-02-01T12:00:00Z|block|G01X00|mode|AUTOMATIC|execution|READY");
1708+
1709+
{
1710+
PARSE_XML_RESPONSE("/current");
1711+
ASSERT_XML_PATH_EQUAL(doc, "//m:Block", "G01X00");
1712+
ASSERT_XML_PATH_EQUAL(doc, "//m:ControllerMode", "AUTOMATIC");
1713+
ASSERT_XML_PATH_EQUAL(doc, "//m:Execution", "READY");
1714+
}
1715+
}
1716+
16891717
TEST_F(AgentTest, adapter_should_receive_device_commands)
16901718
{
16911719
m_agentTestHelper->createAgent("/samples/two_devices.xml");

0 commit comments

Comments
 (0)