test(mtconnect): canned probe/current/sample XML fixtures incl. forced-gap (Task 4)

This commit is contained in:
Joseph Doherty
2026-07-24 13:53:15 -04:00
parent c0729ae5c0
commit 3ca8ddf6f7
5 changed files with 198 additions and 0 deletions
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<MTConnectStreams xmlns="urn:mtconnect.org:MTConnectStreams:1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:mtconnect.org:MTConnectStreams:1.3 http://www.mtconnect.org/schemas/MTConnectStreams_1.3.xsd">
<!-- Every observation UNAVAILABLE - Task 8's quality-mapping fixture. -->
<Header creationTime="2026-07-24T12:10:00.600Z"
sender="fixture-agent"
instanceId="1655000000"
version="1.3.0.12"
assetBufferSize="1024"
assetCount="0"
bufferSize="131072"
firstSequence="200"
lastSequence="206"
nextSequence="207"/>
<Streams>
<DeviceStream name="VMC-3Axis" uuid="dev1-uuid">
<ComponentStream component="Device" componentId="dev1" name="dev1">
<Events>
<Availability dataItemId="dev1_avail" timestamp="2026-07-24T12:10:00.000Z" sequence="200">UNAVAILABLE</Availability>
</Events>
</ComponentStream>
<ComponentStream component="Path" componentId="dev1_path" name="path">
<Samples>
<Position dataItemId="dev1_pos" timestamp="2026-07-24T12:10:00.100Z" sequence="201" subType="ACTUAL">UNAVAILABLE</Position>
<PathFeedrate dataItemId="dev1_vibration_ts" timestamp="2026-07-24T12:10:00.200Z" sequence="202"
sampleCount="10" sampleRate="100">UNAVAILABLE</PathFeedrate>
</Samples>
<Events>
<PartCount dataItemId="dev1_partcount" timestamp="2026-07-24T12:10:00.300Z" sequence="203">UNAVAILABLE</PartCount>
<Execution dataItemId="dev1_execution" timestamp="2026-07-24T12:10:00.400Z" sequence="204">UNAVAILABLE</Execution>
<Program dataItemId="dev1_program" timestamp="2026-07-24T12:10:00.500Z" sequence="205">UNAVAILABLE</Program>
</Events>
<Condition>
<Unavailable dataItemId="dev1_system_cond" timestamp="2026-07-24T12:10:00.600Z" sequence="206" type="SYSTEM"/>
</Condition>
</ComponentStream>
</DeviceStream>
</Streams>
</MTConnectStreams>
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<MTConnectStreams xmlns="urn:mtconnect.org:MTConnectStreams:1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:mtconnect.org:MTConnectStreams:1.3 http://www.mtconnect.org/schemas/MTConnectStreams_1.3.xsd">
<Header creationTime="2026-07-24T12:00:00.700Z"
sender="fixture-agent"
instanceId="1655000000"
version="1.3.0.12"
assetBufferSize="1024"
assetCount="0"
bufferSize="131072"
firstSequence="1"
lastSequence="107"
nextSequence="108"/>
<Streams>
<DeviceStream name="VMC-3Axis" uuid="dev1-uuid">
<ComponentStream component="Device" componentId="dev1" name="dev1">
<Events>
<Availability dataItemId="dev1_avail" timestamp="2026-07-24T12:00:00.100Z" sequence="101">AVAILABLE</Availability>
</Events>
</ComponentStream>
<ComponentStream component="Path" componentId="dev1_path" name="path">
<Samples>
<!-- Good/present value used by Task 10's snapshot-read test -->
<Position dataItemId="dev1_pos" timestamp="2026-07-24T12:00:00.200Z" sequence="102" subType="ACTUAL">123.4567</Position>
<PathFeedrate dataItemId="dev1_vibration_ts" timestamp="2026-07-24T12:00:00.300Z" sequence="103"
sampleCount="10" sampleRate="100">1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0</PathFeedrate>
</Samples>
<Events>
<!-- UNAVAILABLE value used by Task 8's quality-mapping (BadNoCommunication) test -->
<PartCount dataItemId="dev1_partcount" timestamp="2026-07-24T12:00:00.400Z" sequence="104">UNAVAILABLE</PartCount>
<Execution dataItemId="dev1_execution" timestamp="2026-07-24T12:00:00.500Z" sequence="105">ACTIVE</Execution>
<Program dataItemId="dev1_program" timestamp="2026-07-24T12:00:00.600Z" sequence="106">O1234</Program>
</Events>
<Condition>
<Normal dataItemId="dev1_system_cond" timestamp="2026-07-24T12:00:00.700Z" sequence="107" type="SYSTEM"/>
</Condition>
</ComponentStream>
</DeviceStream>
</Streams>
</MTConnectStreams>
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<MTConnectDevices xmlns="urn:mtconnect.org:MTConnectDevices:1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:mtconnect.org:MTConnectDevices:1.3 http://www.mtconnect.org/schemas/MTConnectDevices_1.3.xsd">
<Header creationTime="2026-07-24T12:00:00Z"
sender="fixture-agent"
instanceId="1655000000"
version="1.3.0.12"
assetBufferSize="1024"
assetCount="0"
bufferSize="131072"/>
<Devices>
<Device id="dev1" name="VMC-3Axis" uuid="dev1-uuid">
<Description manufacturer="Fixture Corp">Test fixture device for MTConnect driver unit tests</Description>
<DataItems>
<!-- EVENT, controlled-vocabulary, directly on the Device (no nested Component) -->
<DataItem id="dev1_avail" category="EVENT" type="AVAILABILITY"/>
</DataItems>
<Components>
<Controller id="dev1_controller" name="controller">
<Components>
<Path id="dev1_path" name="path">
<DataItems>
<!-- SAMPLE with units -->
<DataItem id="dev1_pos" category="SAMPLE" type="POSITION" subType="ACTUAL"
units="MILLIMETER" nativeUnits="MILLIMETER"/>
<!-- SAMPLE, representation=TIME_SERIES with sampleCount -->
<DataItem id="dev1_vibration_ts" category="SAMPLE" type="PATH_FEEDRATE"
representation="TIME_SERIES" units="MILLIMETER/SECOND"
nativeUnits="MILLIMETER/SECOND" sampleCount="10" sampleRate="100"/>
<!-- EVENT, numeric type -->
<DataItem id="dev1_partcount" category="EVENT" type="PART_COUNT"/>
<!-- EVENT, controlled vocabulary -->
<DataItem id="dev1_execution" category="EVENT" type="EXECUTION"/>
<!-- EVENT, free text -->
<DataItem id="dev1_program" category="EVENT" type="PROGRAM"/>
<!-- CONDITION -->
<DataItem id="dev1_system_cond" category="CONDITION" type="SYSTEM"/>
</DataItems>
</Path>
</Components>
</Controller>
</Components>
</Device>
</Devices>
</MTConnectDevices>
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<MTConnectStreams xmlns="urn:mtconnect.org:MTConnectStreams:1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:mtconnect.org:MTConnectStreams:1.3 http://www.mtconnect.org/schemas/MTConnectStreams_1.3.xsd">
<!--
Ring-buffer-overflow / forced-nextSequence-gap fixture.
firstSequence (5000) is strictly greater than any requestedFrom the driver would plausibly
have used to continue from current.xml/sample.xml (last nextSequence was 113), and is also
comfortably greater than the requestedFrom=1 asserted by Task 7's IsSequenceGap(1, chunk)==true
test. instanceId is identical to current.xml/sample.xml so the gap - not an agent restart -
is what's under test.
-->
<Header creationTime="2026-07-24T12:05:00.000Z"
sender="fixture-agent"
instanceId="1655000000"
version="1.3.0.12"
assetBufferSize="1024"
assetCount="0"
bufferSize="131072"
firstSequence="5000"
lastSequence="5004"
nextSequence="5005"/>
<Streams>
<DeviceStream name="VMC-3Axis" uuid="dev1-uuid">
<ComponentStream component="Path" componentId="dev1_path" name="path">
<Samples>
<Position dataItemId="dev1_pos" timestamp="2026-07-24T12:05:00.100Z" sequence="5000" subType="ACTUAL">200.0000</Position>
<PathFeedrate dataItemId="dev1_vibration_ts" timestamp="2026-07-24T12:05:00.200Z" sequence="5001"
sampleCount="10" sampleRate="100">3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.0</PathFeedrate>
</Samples>
<Events>
<PartCount dataItemId="dev1_partcount" timestamp="2026-07-24T12:05:00.300Z" sequence="5002">99</PartCount>
<Execution dataItemId="dev1_execution" timestamp="2026-07-24T12:05:00.400Z" sequence="5003">ACTIVE</Execution>
<Program dataItemId="dev1_program" timestamp="2026-07-24T12:05:00.500Z" sequence="5004">O5678</Program>
</Events>
</ComponentStream>
</DeviceStream>
</Streams>
</MTConnectStreams>
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<MTConnectStreams xmlns="urn:mtconnect.org:MTConnectStreams:1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:mtconnect.org:MTConnectStreams:1.3 http://www.mtconnect.org/schemas/MTConnectStreams_1.3.xsd">
<!-- Continues contiguously from current.xml: firstSequence (108) == the nextSequence current.xml advertised. -->
<Header creationTime="2026-07-24T12:00:01.200Z"
sender="fixture-agent"
instanceId="1655000000"
version="1.3.0.12"
assetBufferSize="1024"
assetCount="0"
bufferSize="131072"
firstSequence="108"
lastSequence="112"
nextSequence="113"/>
<Streams>
<DeviceStream name="VMC-3Axis" uuid="dev1-uuid">
<ComponentStream component="Path" componentId="dev1_path" name="path">
<Samples>
<Position dataItemId="dev1_pos" timestamp="2026-07-24T12:00:00.800Z" sequence="108" subType="ACTUAL">124.0100</Position>
<PathFeedrate dataItemId="dev1_vibration_ts" timestamp="2026-07-24T12:00:00.900Z" sequence="109"
sampleCount="10" sampleRate="100">2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0</PathFeedrate>
</Samples>
<Events>
<PartCount dataItemId="dev1_partcount" timestamp="2026-07-24T12:00:01.000Z" sequence="110">42</PartCount>
<Execution dataItemId="dev1_execution" timestamp="2026-07-24T12:00:01.100Z" sequence="111">ACTIVE</Execution>
<Program dataItemId="dev1_program" timestamp="2026-07-24T12:00:01.200Z" sequence="112">O1234</Program>
</Events>
</ComponentStream>
</DeviceStream>
</Streams>
</MTConnectStreams>