Compare commits
60 Commits
serial-tim
...
master
Author | SHA1 | Date | |
---|---|---|---|
e1f4dbdd52 | |||
107d44b7e9 | |||
f498cf1a37 | |||
3897ac72da | |||
e89f929f6c | |||
69019312c9 | |||
2d09cfc41d | |||
446cf41a2a | |||
ec4bff91db | |||
fe2b4ec024 | |||
8d781ad240 | |||
67ea2d3900 | |||
5b26e62f55 | |||
6c1e2026d6 | |||
908334af0b | |||
e27a95c4db | |||
9799794213 | |||
bf177d1fe7 | |||
17a73287c2 | |||
1e25cf1096 | |||
23d8ee4844 | |||
643022388d | |||
b5e59aa52f | |||
baf03e2a47 | |||
ba18321e11 | |||
f569816788 | |||
716fe0358c | |||
ee3a69e5df | |||
9f9c7a5dbf | |||
f31fbea817 | |||
f3a62d560b | |||
989404de83 | |||
b58aca4432 | |||
505c25aa9b | |||
fffdca0504 | |||
b0f413037a | |||
724822b3ab | |||
155e245b61 | |||
ff2e50a38a | |||
bd2fa5759b | |||
6fb724698f | |||
5a3d13e7ad | |||
576da85302 | |||
433b3c4219 | |||
e864d27fbf | |||
89db118821 | |||
d96dcfad09 | |||
6edab86078 | |||
62ac3678ff | |||
2dc3daaf70 | |||
36a85d3737 | |||
2f9fa5ccc8 | |||
027f6fb689 | |||
de4a899b9d | |||
2a2fbc372a | |||
6d3bb00d97 | |||
84c43fe7a3 | |||
73d58a9f7d | |||
ab8919136d | |||
2680079db4 |
2
.dockerignore
Normal file
2
.dockerignore
Normal file
@ -0,0 +1,2 @@
|
||||
/_build
|
||||
/build
|
8
.gitignore
vendored
8
.gitignore
vendored
@ -10,7 +10,6 @@ test/Makefile.in
|
||||
/compile
|
||||
config.guess
|
||||
config.sub
|
||||
config.h.in
|
||||
configure
|
||||
/depcomp
|
||||
/install-sh
|
||||
@ -52,6 +51,7 @@ bin/mbus-serial-request-data-multi-reply
|
||||
bin/mbus-serial-scan
|
||||
bin/mbus-serial-scan-secondary
|
||||
bin/mbus-serial-select-secondary
|
||||
bin/mbus-serial-set-address
|
||||
bin/mbus-serial-switch-baudrate
|
||||
bin/mbus-tcp-raw-send
|
||||
bin/mbus-tcp-request-data
|
||||
@ -71,3 +71,9 @@ test/test-frames/*.xml.new
|
||||
test/error-frames/*.xml.new
|
||||
test/unsupported-frames/*.xml.new
|
||||
|
||||
/build/
|
||||
_build/
|
||||
|
||||
# IDE
|
||||
/.vscode/
|
||||
CMakeLists.txt.user
|
@ -11,3 +11,5 @@ os:
|
||||
script:
|
||||
- ./build.sh
|
||||
- cd test && make && ./generate-xml.sh test-frames
|
||||
- cd test && make && ./generate-xml.sh test/error-frames || true
|
||||
- cd test && make && ./generate-xml.sh test/unsupported-frames || true
|
||||
|
16
COPYING
16
COPYING
@ -20,19 +20,5 @@ Contributers:
|
||||
* Pelle van der Heide
|
||||
* James Michael DuPont
|
||||
* Uwe Grohnwaldt
|
||||
* Markus Bergkvist
|
||||
|
||||
LICENSE (the BSD license):
|
||||
|
||||
Copyright (c) 2010-2012, Raditex Control AB
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the Raditex Control AB nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
* Markus Bergkvist
|
||||
|
||||
|
29
LICENSE
Normal file
29
LICENSE
Normal file
@ -0,0 +1,29 @@
|
||||
BSD 3-Clause License
|
||||
|
||||
Copyright (c) 2010-2012, Raditex Control AB
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of the copyright holder nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
@ -17,7 +17,8 @@ bin_PROGRAMS = mbus-tcp-scan mbus-tcp-request-data mbus-tcp-request-data-multi
|
||||
mbus-tcp-select-secondary mbus-tcp-scan-secondary \
|
||||
mbus-serial-scan mbus-serial-request-data mbus-serial-request-data-multi-reply \
|
||||
mbus-serial-select-secondary mbus-serial-scan-secondary \
|
||||
mbus-serial-switch-baudrate mbus-tcp-raw-send mbus-tcp-application-reset
|
||||
mbus-serial-switch-baudrate mbus-tcp-raw-send mbus-tcp-application-reset \
|
||||
mbus-serial-set-address
|
||||
|
||||
# tcp
|
||||
mbus_tcp_scan_LDFLAGS = -L$(top_builddir)/mbus
|
||||
@ -73,6 +74,10 @@ mbus_serial_switch_baudrate_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_serial_switch_baudrate_LDADD = -lmbus -lm
|
||||
mbus_serial_switch_baudrate_SOURCES = mbus-serial-switch-baudrate.c
|
||||
|
||||
mbus_serial_set_address_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_serial_set_address_LDADD = -lmbus -lm
|
||||
mbus_serial_set_address_SOURCES = mbus-serial-set-address.c
|
||||
|
||||
# man pages
|
||||
dist_man_MANS = libmbus.1 \
|
||||
mbus-tcp-scan.1 \
|
||||
|
@ -10,6 +10,8 @@ the communication with M-Bus devices.
|
||||
|
||||
B<mbus-serial-switch-baudrate> [-b BAUDRATE] device address target-baudrate
|
||||
|
||||
B<mbus-serial-set-address> [-d] [-b BAUDRATE] device mbus-address new-primary-address
|
||||
|
||||
B<mbus-serial-scan> [-d] [-b BAUDRATE] [-r RETRIES] device
|
||||
|
||||
B<mbus-tcp-scan> [-d] [-r RETRIES] host port
|
||||
|
2
bin/mbus-serial-set-address.1
Normal file
2
bin/mbus-serial-set-address.1
Normal file
@ -0,0 +1,2 @@
|
||||
.so man1/libmbus.1
|
||||
|
229
bin/mbus-serial-set-address.c
Normal file
229
bin/mbus-serial-set-address.c
Normal file
@ -0,0 +1,229 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2011, Robert Johansson, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// rSCADA
|
||||
// http://www.rSCADA.se
|
||||
// info@rscada.se
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <mbus/mbus.h>
|
||||
|
||||
static int debug = 0;
|
||||
|
||||
//
|
||||
// init slave to get really the beginning of the records
|
||||
//
|
||||
static int
|
||||
init_slaves(mbus_handle *handle)
|
||||
{
|
||||
if (debug)
|
||||
printf("%s: debug: sending init frame #1\n", __PRETTY_FUNCTION__);
|
||||
|
||||
if (mbus_send_ping_frame(handle, MBUS_ADDRESS_NETWORK_LAYER, 1) == -1)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
//
|
||||
// resend SND_NKE, maybe the first get lost
|
||||
//
|
||||
|
||||
if (debug)
|
||||
printf("%s: debug: sending init frame #2\n", __PRETTY_FUNCTION__);
|
||||
|
||||
if (mbus_send_ping_frame(handle, MBUS_ADDRESS_NETWORK_LAYER, 1) == -1)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// set primary address
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
mbus_handle *handle = NULL;
|
||||
mbus_frame reply;
|
||||
char *device, *old_address_str, *xml_result;
|
||||
int old_address, new_address;
|
||||
long baudrate = 9600;
|
||||
int ret;
|
||||
|
||||
if (argc == 4)
|
||||
{
|
||||
device = argv[1];
|
||||
old_address_str = argv[2];
|
||||
new_address = atoi(argv[3]);
|
||||
}
|
||||
else if (argc == 5 && strcmp(argv[1], "-d") == 0)
|
||||
{
|
||||
device = argv[2];
|
||||
old_address_str = argv[3];
|
||||
new_address = atoi(argv[4]);
|
||||
debug = 1;
|
||||
}
|
||||
else if (argc == 6 && strcmp(argv[1], "-b") == 0)
|
||||
{
|
||||
baudrate = atol(argv[2]);
|
||||
device = argv[3];
|
||||
old_address_str = argv[4];
|
||||
new_address = atoi(argv[5]);
|
||||
}
|
||||
else if (argc == 7 && strcmp(argv[1], "-d") == 0 && strcmp(argv[2], "-b") == 0)
|
||||
{
|
||||
baudrate = atol(argv[3]);
|
||||
device = argv[4];
|
||||
old_address_str = argv[5];
|
||||
new_address = atoi(argv[6]);
|
||||
debug = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "usage: %s [-d] [-b BAUDRATE] device mbus-address new-primary-address\n", argv[0]);
|
||||
fprintf(stderr, " optional flag -d for debug printout\n");
|
||||
fprintf(stderr, " optional flag -b for selecting baudrate\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (mbus_is_primary_address(new_address) == 0)
|
||||
{
|
||||
fprintf(stderr, "Invalid new primary address\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
switch (new_address)
|
||||
{
|
||||
case MBUS_ADDRESS_NETWORK_LAYER:
|
||||
case MBUS_ADDRESS_BROADCAST_REPLY:
|
||||
case MBUS_ADDRESS_BROADCAST_NOREPLY:
|
||||
fprintf(stderr, "Invalid new primary address\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((handle = mbus_context_serial(device)) == NULL)
|
||||
{
|
||||
fprintf(stderr, "Could not initialize M-Bus context: %s\n", mbus_error_str());
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (debug)
|
||||
{
|
||||
mbus_register_send_event(handle, &mbus_dump_send_event);
|
||||
mbus_register_recv_event(handle, &mbus_dump_recv_event);
|
||||
}
|
||||
|
||||
if (mbus_connect(handle) == -1)
|
||||
{
|
||||
fprintf(stderr,"Failed to setup connection to M-bus gateway\n");
|
||||
mbus_context_free(handle);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mbus_serial_set_baudrate(handle, baudrate) == -1)
|
||||
{
|
||||
fprintf(stderr,"Failed to set baud rate.\n");
|
||||
mbus_disconnect(handle);
|
||||
mbus_context_free(handle);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (init_slaves(handle) == 0)
|
||||
{
|
||||
mbus_disconnect(handle);
|
||||
mbus_context_free(handle);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mbus_send_ping_frame(handle, new_address, 0) == -1)
|
||||
{
|
||||
fprintf(stderr, "Verification failed. Could not send ping frame: %s\n", mbus_error_str());
|
||||
mbus_disconnect(handle);
|
||||
mbus_context_free(handle);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mbus_recv_frame(handle, &reply) != MBUS_RECV_RESULT_TIMEOUT)
|
||||
{
|
||||
fprintf(stderr, "Verification failed. Got a response from new address\n");
|
||||
mbus_disconnect(handle);
|
||||
mbus_context_free(handle);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mbus_is_secondary_address(old_address_str))
|
||||
{
|
||||
// secondary addressing
|
||||
|
||||
ret = mbus_select_secondary_address(handle, old_address_str);
|
||||
|
||||
if (ret == MBUS_PROBE_COLLISION)
|
||||
{
|
||||
fprintf(stderr, "%s: Error: The address mask [%s] matches more than one device.\n", __PRETTY_FUNCTION__, old_address_str);
|
||||
mbus_disconnect(handle);
|
||||
mbus_context_free(handle);
|
||||
return 1;
|
||||
}
|
||||
else if (ret == MBUS_PROBE_NOTHING)
|
||||
{
|
||||
fprintf(stderr, "%s: Error: The selected secondary address does not match any device [%s].\n", __PRETTY_FUNCTION__, old_address_str);
|
||||
mbus_disconnect(handle);
|
||||
mbus_context_free(handle);
|
||||
return 1;
|
||||
}
|
||||
else if (ret == MBUS_PROBE_ERROR)
|
||||
{
|
||||
fprintf(stderr, "%s: Error: Failed to select secondary address [%s].\n", __PRETTY_FUNCTION__, old_address_str);
|
||||
mbus_disconnect(handle);
|
||||
mbus_context_free(handle);
|
||||
return 1;
|
||||
}
|
||||
// else MBUS_PROBE_SINGLE
|
||||
|
||||
old_address = MBUS_ADDRESS_NETWORK_LAYER;
|
||||
}
|
||||
else
|
||||
{
|
||||
// primary addressing
|
||||
old_address = atoi(old_address_str);
|
||||
}
|
||||
|
||||
if (mbus_set_primary_address(handle, old_address, new_address) == -1)
|
||||
{
|
||||
fprintf(stderr, "Failed to send set primary address frame: %s\n", mbus_error_str());
|
||||
mbus_disconnect(handle);
|
||||
mbus_context_free(handle);
|
||||
return 1;
|
||||
}
|
||||
|
||||
memset(&reply, 0, sizeof(mbus_frame));
|
||||
ret = mbus_recv_frame(handle, &reply);
|
||||
|
||||
if (ret == MBUS_RECV_RESULT_TIMEOUT)
|
||||
{
|
||||
fprintf(stderr, "No reply from device\n");
|
||||
mbus_disconnect(handle);
|
||||
mbus_context_free(handle);
|
||||
return 1;
|
||||
}
|
||||
else if (mbus_frame_type(&reply) != MBUS_FRAME_TYPE_ACK)
|
||||
{
|
||||
fprintf(stderr, "Unknown reply:\n");
|
||||
mbus_frame_print(&reply);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Set primary address of device to %d\n", new_address);
|
||||
}
|
||||
|
||||
mbus_disconnect(handle);
|
||||
mbus_context_free(handle);
|
||||
return 0;
|
||||
}
|
@ -10,7 +10,7 @@ dnl ----------------------------------------------------------------------------
|
||||
|
||||
LT_CONFIG_LTDL_DIR([libltdl])
|
||||
|
||||
AC_INIT([libmbus], [0.8.0], [info@rscada.se], [libmbus], [http://www.rscada.se/libmbus/])
|
||||
AC_INIT([libmbus], [0.9.0], [info@rscada.se], [libmbus], [http://www.rscada.se/libmbus/])
|
||||
AC_CONFIG_AUX_DIR([libltdl/config])
|
||||
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
||||
|
||||
@ -18,7 +18,7 @@ AM_PROG_LIBTOOL
|
||||
# fix for automake 1.11 & 1.12
|
||||
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
|
||||
|
||||
LDFLAGS="$LDFLAGS -version-info 0:8:0"
|
||||
LDFLAGS="$LDFLAGS -version-info 0:9:0"
|
||||
|
||||
dnl ----------------------
|
||||
dnl
|
||||
|
12
debian/changelog
vendored
12
debian/changelog
vendored
@ -1,3 +1,15 @@
|
||||
libmbus (0.9.0) xenial; urgency=medium
|
||||
|
||||
* New official release
|
||||
- major improvement to frame decoding
|
||||
- new binaries: mbus-tcp-raw-send, mbus-tcp-application-reset,
|
||||
mbus-serial-set-address
|
||||
- simple echo cancellation
|
||||
- replace CUnit test with test/generate-xml.sh
|
||||
* debian/control: new package libmbus1-dbg
|
||||
|
||||
-- Stefan Wahren <stefan.wahren@i2se.com> Fri, 22 Feb 2019 19:08:04 +0100
|
||||
|
||||
libmbus (0.8.0) precise; urgency=low
|
||||
|
||||
* New official release. Includes support for multi-telegram communication.
|
||||
|
17
libmbus.spec
17
libmbus.spec
@ -11,10 +11,10 @@
|
||||
|
||||
Summary: Open source M-bus (Meter-Bus) library
|
||||
Name: libmbus
|
||||
Version: 0.8.0
|
||||
Version: 0.9.0
|
||||
Release: 1
|
||||
Source: http://www.rscada.se/public-dist/%{name}-%{version}.tar.gz
|
||||
URL: http://www.rscada.se/libmbus/
|
||||
Source: https://github.com/rscada/%{name}/archive/%{version}.tar.gz
|
||||
URL: https://github.com/rscada/libmbus/
|
||||
License: BSD
|
||||
Vendor: Raditex Control AB
|
||||
Packager: Stefan Wahren <info@lategoodbye.de>
|
||||
@ -68,9 +68,8 @@ rm -rf "%buildroot"
|
||||
%{_bindir}/mbus-serial-*
|
||||
%{_bindir}/mbus-tcp-*
|
||||
%{_libdir}/libmbus.so*
|
||||
# man pages doesn't exist in this version
|
||||
# %{_mandir}/man1/libmbus.1
|
||||
# %{_mandir}/man1/mbus-*
|
||||
%{_mandir}/man1/libmbus.1
|
||||
%{_mandir}/man1/mbus-*
|
||||
|
||||
%files devel
|
||||
%defattr (-,root,root)
|
||||
@ -80,5 +79,9 @@ rm -rf "%buildroot"
|
||||
%{_libdir}/pkgconfig/libmbus.pc
|
||||
|
||||
%changelog
|
||||
* Fri Feb 22 2019 Stefan Wahren <info@lategoodbye.de> - 0.9.0-1
|
||||
- switch to github repo
|
||||
- enable man pages
|
||||
|
||||
* Fri Mar 29 2013 Stefan Wahren <info@lategoodbye.de> - 0.8.0-1
|
||||
- Initial package based on the last official release
|
||||
- Initial package based on the last official release
|
||||
|
@ -154,17 +154,17 @@ mbus_variable_vif vif_table[] = {
|
||||
{ 0x56, 1.0e3, "kg/h", "Mass flow" },
|
||||
{ 0x57, 1.0e4, "kg/h", "Mass flow" },
|
||||
|
||||
/* E101 10nn Flow Temperature <EFBFBD>C (0.001<EFBFBD>C to 1<EFBFBD>C) */
|
||||
{ 0x58, 1.0e-3, "<EFBFBD>C", "Flow temperature" },
|
||||
{ 0x59, 1.0e-2, "<EFBFBD>C", "Flow temperature" },
|
||||
{ 0x5A, 1.0e-1, "<EFBFBD>C", "Flow temperature" },
|
||||
{ 0x5B, 1.0e0, "<EFBFBD>C", "Flow temperature" },
|
||||
/* E101 10nn Flow Temperature °C (0.001°C to 1°C) */
|
||||
{ 0x58, 1.0e-3, "°C", "Flow temperature" },
|
||||
{ 0x59, 1.0e-2, "°C", "Flow temperature" },
|
||||
{ 0x5A, 1.0e-1, "°C", "Flow temperature" },
|
||||
{ 0x5B, 1.0e0, "°C", "Flow temperature" },
|
||||
|
||||
/* E101 11nn Return Temperature <EFBFBD>C (0.001<EFBFBD>C to 1<EFBFBD>C) */
|
||||
{ 0x5C, 1.0e-3, "<EFBFBD>C", "Return temperature" },
|
||||
{ 0x5D, 1.0e-2, "<EFBFBD>C", "Return temperature" },
|
||||
{ 0x5E, 1.0e-1, "<EFBFBD>C", "Return temperature" },
|
||||
{ 0x5F, 1.0e0, "<EFBFBD>C", "Return temperature" },
|
||||
/* E101 11nn Return Temperature °C (0.001°C to 1°C) */
|
||||
{ 0x5C, 1.0e-3, "°C", "Return temperature" },
|
||||
{ 0x5D, 1.0e-2, "°C", "Return temperature" },
|
||||
{ 0x5E, 1.0e-1, "°C", "Return temperature" },
|
||||
{ 0x5F, 1.0e0, "°C", "Return temperature" },
|
||||
|
||||
/* E110 00nn Temperature Difference K (mK to K) */
|
||||
{ 0x60, 1.0e-3, "K", "Temperature difference" },
|
||||
@ -172,11 +172,11 @@ mbus_variable_vif vif_table[] = {
|
||||
{ 0x62, 1.0e-1, "K", "Temperature difference" },
|
||||
{ 0x63, 1.0e0, "K", "Temperature difference" },
|
||||
|
||||
/* E110 01nn External Temperature <EFBFBD>C (0.001<EFBFBD>C to 1<EFBFBD>C) */
|
||||
{ 0x64, 1.0e-3, "<EFBFBD>C", "External temperature" },
|
||||
{ 0x65, 1.0e-2, "<EFBFBD>C", "External temperature" },
|
||||
{ 0x66, 1.0e-1, "<EFBFBD>C", "External temperature" },
|
||||
{ 0x67, 1.0e0, "<EFBFBD>C", "External temperature" },
|
||||
/* E110 01nn External Temperature °C (0.001°C to 1°C) */
|
||||
{ 0x64, 1.0e-3, "°C", "External temperature" },
|
||||
{ 0x65, 1.0e-2, "°C", "External temperature" },
|
||||
{ 0x66, 1.0e-1, "°C", "External temperature" },
|
||||
{ 0x67, 1.0e0, "°C", "External temperature" },
|
||||
|
||||
/* E110 10nn Pressure bar (1mbar to 1000mbar) */
|
||||
{ 0x68, 1.0e-3, "bar", "Pressure" },
|
||||
@ -201,10 +201,10 @@ mbus_variable_vif vif_table[] = {
|
||||
{ 0x73, 86400.0, "s", "Averaging Duration" }, /* days */
|
||||
|
||||
/* E111 01nn Actuality Duration s */
|
||||
{ 0x74, 1.0, "s", "Averaging Duration" }, /* seconds */
|
||||
{ 0x75, 60.0, "s", "Averaging Duration" }, /* minutes */
|
||||
{ 0x76, 3600.0, "s", "Averaging Duration" }, /* hours */
|
||||
{ 0x77, 86400.0, "s", "Averaging Duration" }, /* days */
|
||||
{ 0x74, 1.0, "s", "Actuality Duration" }, /* seconds */
|
||||
{ 0x75, 60.0, "s", "Actuality Duration" }, /* minutes */
|
||||
{ 0x76, 3600.0, "s", "Actuality Duration" }, /* hours */
|
||||
{ 0x77, 86400.0, "s", "Actuality Duration" }, /* days */
|
||||
|
||||
/* Fabrication No */
|
||||
{ 0x78, 1.0, "", "Fabrication No" },
|
||||
@ -247,7 +247,7 @@ mbus_variable_vif vif_table[] = {
|
||||
{ 0x108, 1.0e0, "", "Access Number (transmission count)" },
|
||||
|
||||
/* E000 1001 Medium (as in fixed header) */
|
||||
{ 0x109, 1.0e0, "", "Device type" },
|
||||
{ 0x109, 1.0e0, "", "Medium" },
|
||||
|
||||
/* E000 1010 Manufacturer (as in fixed header) */
|
||||
{ 0x10A, 1.0e0, "", "Manufacturer" },
|
||||
@ -256,7 +256,7 @@ mbus_variable_vif vif_table[] = {
|
||||
{ 0x10B, 1.0e0, "", "Parameter set identification" },
|
||||
|
||||
/* E000 1100 Model / Version */
|
||||
{ 0x10C, 1.0e0, "", "Device type" },
|
||||
{ 0x10C, 1.0e0, "", "Model / Version" },
|
||||
|
||||
/* E000 1101 Hardware version # */
|
||||
{ 0x10D, 1.0e0, "", "Hardware version" },
|
||||
@ -356,9 +356,9 @@ mbus_variable_vif vif_table[] = {
|
||||
{ 0x130, 1.0e0, "Reserved", "Reserved" }, /* ???? */
|
||||
|
||||
/* E011 00nn Duration of tariff (nn=01 ..11: min to days) */
|
||||
{ 0x131, 60.0, "s", "Storage interval" }, /* minute(s) */
|
||||
{ 0x132, 3600.0, "s", "Storage interval" }, /* hour(s) */
|
||||
{ 0x133, 86400.0, "s", "Storage interval" }, /* day(s) */
|
||||
{ 0x131, 60.0, "s", "Duration of tariff" }, /* minute(s) */
|
||||
{ 0x132, 3600.0, "s", "Duration of tariff" }, /* hour(s) */
|
||||
{ 0x133, 86400.0, "s", "Duration of tariff" }, /* day(s) */
|
||||
|
||||
/* E011 01nn Period of tariff [sec(s) to day(s)] */
|
||||
{ 0x134, 1.0, "s", "Period of tariff" }, /* seconds */
|
||||
@ -608,29 +608,29 @@ mbus_variable_vif vif_table[] = {
|
||||
{ 0x256, 1.0e0, "Reserved", "Reserved" },
|
||||
{ 0x257, 1.0e0, "Reserved", "Reserved" },
|
||||
|
||||
/* E101 10nn Flow Temperature 10(nn-3) <EFBFBD>F 0.001<EFBFBD>F to 1<EFBFBD>F */
|
||||
{ 0x258, 1.0e-3, "<EFBFBD>F", "Flow temperature" },
|
||||
{ 0x259, 1.0e-2, "<EFBFBD>F", "Flow temperature" },
|
||||
{ 0x25A, 1.0e-1, "<EFBFBD>F", "Flow temperature" },
|
||||
{ 0x25B, 1.0e0, "<EFBFBD>F", "Flow temperature" },
|
||||
/* E101 10nn Flow Temperature 10(nn-3) °F 0.001°F to 1°F */
|
||||
{ 0x258, 1.0e-3, "°F", "Flow temperature" },
|
||||
{ 0x259, 1.0e-2, "°F", "Flow temperature" },
|
||||
{ 0x25A, 1.0e-1, "°F", "Flow temperature" },
|
||||
{ 0x25B, 1.0e0, "°F", "Flow temperature" },
|
||||
|
||||
/* E101 11nn Return Temperature 10(nn-3) <EFBFBD>F 0.001<EFBFBD>F to 1<EFBFBD>F */
|
||||
{ 0x25C, 1.0e-3, "<EFBFBD>F", "Return temperature" },
|
||||
{ 0x25D, 1.0e-2, "<EFBFBD>F", "Return temperature" },
|
||||
{ 0x25E, 1.0e-1, "<EFBFBD>F", "Return temperature" },
|
||||
{ 0x25F, 1.0e0, "<EFBFBD>F", "Return temperature" },
|
||||
/* E101 11nn Return Temperature 10(nn-3) °F 0.001°F to 1°F */
|
||||
{ 0x25C, 1.0e-3, "°F", "Return temperature" },
|
||||
{ 0x25D, 1.0e-2, "°F", "Return temperature" },
|
||||
{ 0x25E, 1.0e-1, "°F", "Return temperature" },
|
||||
{ 0x25F, 1.0e0, "°F", "Return temperature" },
|
||||
|
||||
/* E110 00nn Temperature Difference 10(nn-3) <EFBFBD>F 0.001<EFBFBD>F to 1<EFBFBD>F */
|
||||
{ 0x260, 1.0e-3, "<EFBFBD>F", "Temperature difference" },
|
||||
{ 0x261, 1.0e-2, "<EFBFBD>F", "Temperature difference" },
|
||||
{ 0x262, 1.0e-1, "<EFBFBD>F", "Temperature difference" },
|
||||
{ 0x263, 1.0e0, "<EFBFBD>F", "Temperature difference" },
|
||||
/* E110 00nn Temperature Difference 10(nn-3) °F 0.001°F to 1°F */
|
||||
{ 0x260, 1.0e-3, "°F", "Temperature difference" },
|
||||
{ 0x261, 1.0e-2, "°F", "Temperature difference" },
|
||||
{ 0x262, 1.0e-1, "°F", "Temperature difference" },
|
||||
{ 0x263, 1.0e0, "°F", "Temperature difference" },
|
||||
|
||||
/* E110 01nn External Temperature 10(nn-3) <EFBFBD>F 0.001<EFBFBD>F to 1<EFBFBD>F */
|
||||
{ 0x264, 1.0e-3, "<EFBFBD>F", "External temperature" },
|
||||
{ 0x265, 1.0e-2, "<EFBFBD>F", "External temperature" },
|
||||
{ 0x266, 1.0e-1, "<EFBFBD>F", "External temperature" },
|
||||
{ 0x267, 1.0e0, "<EFBFBD>F", "External temperature" },
|
||||
/* E110 01nn External Temperature 10(nn-3) °F 0.001°F to 1°F */
|
||||
{ 0x264, 1.0e-3, "°F", "External temperature" },
|
||||
{ 0x265, 1.0e-2, "°F", "External temperature" },
|
||||
{ 0x266, 1.0e-1, "°F", "External temperature" },
|
||||
{ 0x267, 1.0e0, "°F", "External temperature" },
|
||||
|
||||
/* E110 1nnn Reserved */
|
||||
{ 0x268, 1.0e0, "Reserved", "Reserved" },
|
||||
@ -642,19 +642,19 @@ mbus_variable_vif vif_table[] = {
|
||||
{ 0x26E, 1.0e0, "Reserved", "Reserved" },
|
||||
{ 0x26F, 1.0e0, "Reserved", "Reserved" },
|
||||
|
||||
/* E111 00nn Cold / Warm Temperature Limit 10(nn-3) <EFBFBD>F 0.001<EFBFBD>F to 1<EFBFBD>F */
|
||||
{ 0x270, 1.0e-3, "<EFBFBD>F", "Cold / Warm Temperature Limit" },
|
||||
{ 0x271, 1.0e-2, "<EFBFBD>F", "Cold / Warm Temperature Limit" },
|
||||
{ 0x272, 1.0e-1, "<EFBFBD>F", "Cold / Warm Temperature Limit" },
|
||||
{ 0x273, 1.0e0, "<EFBFBD>F", "Cold / Warm Temperature Limit" },
|
||||
/* E111 00nn Cold / Warm Temperature Limit 10(nn-3) °F 0.001°F to 1°F */
|
||||
{ 0x270, 1.0e-3, "°F", "Cold / Warm Temperature Limit" },
|
||||
{ 0x271, 1.0e-2, "°F", "Cold / Warm Temperature Limit" },
|
||||
{ 0x272, 1.0e-1, "°F", "Cold / Warm Temperature Limit" },
|
||||
{ 0x273, 1.0e0, "°F", "Cold / Warm Temperature Limit" },
|
||||
|
||||
/* E111 01nn Cold / Warm Temperature Limit 10(nn-3) <EFBFBD>C 0.001<EFBFBD>C to 1<EFBFBD>C */
|
||||
{ 0x274, 1.0e-3, "<EFBFBD>C", "Cold / Warm Temperature Limit" },
|
||||
{ 0x275, 1.0e-2, "<EFBFBD>C", "Cold / Warm Temperature Limit" },
|
||||
{ 0x276, 1.0e-1, "<EFBFBD>C", "Cold / Warm Temperature Limit" },
|
||||
{ 0x277, 1.0e0, "<EFBFBD>C", "Cold / Warm Temperature Limit" },
|
||||
/* E111 01nn Cold / Warm Temperature Limit 10(nn-3) °C 0.001°C to 1°C */
|
||||
{ 0x274, 1.0e-3, "°C", "Cold / Warm Temperature Limit" },
|
||||
{ 0x275, 1.0e-2, "°C", "Cold / Warm Temperature Limit" },
|
||||
{ 0x276, 1.0e-1, "°C", "Cold / Warm Temperature Limit" },
|
||||
{ 0x277, 1.0e0, "°C", "Cold / Warm Temperature Limit" },
|
||||
|
||||
/* E111 1nnn cumul. count max power <EFBFBD> 10(nnn-3) W 0.001W to 10000W */
|
||||
/* E111 1nnn cumul. count max power § 10(nnn-3) W 0.001W to 10000W */
|
||||
{ 0x278, 1.0e-3, "W", "Cumul count max power" },
|
||||
{ 0x279, 1.0e-3, "W", "Cumul count max power" },
|
||||
{ 0x27A, 1.0e-1, "W", "Cumul count max power" },
|
||||
@ -730,7 +730,7 @@ mbus_variable_vif fixed_table[] = {
|
||||
{ 0x36, 1.0e1, "m^3/h", "Volume flow" },
|
||||
{ 0x37, 1.0e2, "m^3/h", "Volume flow" },
|
||||
|
||||
{ 0x38, 1.0e-3, "<EFBFBD>C", "Temperature" },
|
||||
{ 0x38, 1.0e-3, "°C", "Temperature" },
|
||||
|
||||
{ 0x39, 1.0e0, "Units for H.C.A.", "H.C.A." },
|
||||
|
||||
@ -785,8 +785,6 @@ mbus_register_found_event(mbus_handle * handle, void (*event)(mbus_handle * hand
|
||||
|
||||
int mbus_fixed_normalize(int medium_unit, long medium_value, char **unit_out, double *value_out, char **quantity_out)
|
||||
{
|
||||
double exponent = 0.0;
|
||||
int i;
|
||||
medium_unit = medium_unit & 0x3F;
|
||||
|
||||
if (unit_out == NULL || value_out == NULL || quantity_out == NULL)
|
||||
@ -807,7 +805,7 @@ int mbus_fixed_normalize(int medium_unit, long medium_value, char **unit_out, do
|
||||
break;
|
||||
|
||||
default:
|
||||
for(i=0; fixed_table[i].vif < 0xfff; ++i)
|
||||
for(int i=0; fixed_table[i].vif < 0xfff; ++i)
|
||||
{
|
||||
if (fixed_table[i].vif == medium_unit)
|
||||
{
|
||||
@ -820,7 +818,6 @@ int mbus_fixed_normalize(int medium_unit, long medium_value, char **unit_out, do
|
||||
|
||||
*unit_out = strdup("Unknown");
|
||||
*quantity_out = strdup("Unknown");
|
||||
exponent = 0.0;
|
||||
*value_out = 0.0;
|
||||
return -1;
|
||||
}
|
||||
@ -835,7 +832,6 @@ int mbus_variable_value_decode(mbus_data_record *record, double *value_out_real,
|
||||
unsigned char vif, vife;
|
||||
struct tm time;
|
||||
int value_out_int;
|
||||
long value_out_long;
|
||||
long long value_out_long_long;
|
||||
*value_out_real = 0.0;
|
||||
*value_out_str = NULL;
|
||||
@ -886,7 +882,7 @@ int mbus_variable_value_decode(mbus_data_record *record, double *value_out_real,
|
||||
else // normal integer
|
||||
{
|
||||
result = mbus_data_int_decode(record->data, 2, &value_out_int);
|
||||
*value_out_real = value_out_int;
|
||||
*value_out_real = value_out_int;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -904,12 +900,12 @@ int mbus_variable_value_decode(mbus_data_record *record, double *value_out_real,
|
||||
((record->drh.vib.vif == 0xFD) && (vife == 0x70)))
|
||||
{
|
||||
mbus_data_tm_decode(&time, record->data, 4);
|
||||
if ((*value_out_str = (char*) malloc(20)) == NULL)
|
||||
if ((*value_out_str = (char*) malloc(21)) == NULL)
|
||||
{
|
||||
MBUS_ERROR("Unable to allocate memory");
|
||||
return -1;
|
||||
}
|
||||
*value_out_str_size = snprintf(*value_out_str, 20, "%04d-%02d-%02dT%02d:%02d:%02d",
|
||||
*value_out_str_size = snprintf(*value_out_str, 21, "%04d-%02d-%02dT%02d:%02d:%02dZ",
|
||||
(time.tm_year + 1900),
|
||||
(time.tm_mon + 1),
|
||||
time.tm_mday,
|
||||
@ -921,7 +917,7 @@ int mbus_variable_value_decode(mbus_data_record *record, double *value_out_real,
|
||||
else // normal integer
|
||||
{
|
||||
result = mbus_data_int_decode(record->data, 4, &value_out_int);
|
||||
*value_out_real = value_out_int;
|
||||
*value_out_real = value_out_int;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -939,12 +935,12 @@ int mbus_variable_value_decode(mbus_data_record *record, double *value_out_real,
|
||||
((record->drh.vib.vif == 0xFD) && (vife == 0x70)))
|
||||
{
|
||||
mbus_data_tm_decode(&time, record->data, 6);
|
||||
if ((*value_out_str = (char*) malloc(20)) == NULL)
|
||||
if ((*value_out_str = (char*) malloc(21)) == NULL)
|
||||
{
|
||||
MBUS_ERROR("Unable to allocate memory");
|
||||
return -1;
|
||||
}
|
||||
*value_out_str_size = snprintf(*value_out_str, 20, "%04d-%02d-%02dT%02d:%02d:%02d",
|
||||
*value_out_str_size = snprintf(*value_out_str, 21, "%04d-%02d-%02dT%02d:%02d:%02dZ",
|
||||
(time.tm_year + 1900),
|
||||
(time.tm_mon + 1),
|
||||
time.tm_mday,
|
||||
@ -1038,7 +1034,6 @@ int
|
||||
mbus_vif_unit_normalize(int vif, double value, char **unit_out, double *value_out, char **quantity_out)
|
||||
{
|
||||
int i;
|
||||
double exponent = 1.0;
|
||||
unsigned newVif = vif & 0xF7F; /* clear extension bit */
|
||||
|
||||
MBUS_DEBUG("vif_unit_normalize = 0x%03X \n", vif);
|
||||
@ -1063,7 +1058,6 @@ mbus_vif_unit_normalize(int vif, double value, char **unit_out, double *value_ou
|
||||
MBUS_ERROR("%s: Unknown VIF 0x%03X\n", __PRETTY_FUNCTION__, newVif);
|
||||
*unit_out = strdup("Unknown (VIF=0x%.02X)");
|
||||
*quantity_out = strdup("Unknown");
|
||||
exponent = 0.0;
|
||||
*value_out = 0.0;
|
||||
return -1;
|
||||
}
|
||||
@ -1286,7 +1280,7 @@ mbus_parse_variable_record(mbus_data_record *data)
|
||||
MBUS_ERROR("%s: memory allocation error\n", __PRETTY_FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
record->storage_number = mbus_data_record_storage_number(data);
|
||||
record->tariff = mbus_data_record_tariff(data);
|
||||
record->device = mbus_data_record_device(data);
|
||||
@ -1981,6 +1975,33 @@ mbus_send_user_data_frame(mbus_handle * handle, int address, const unsigned char
|
||||
return retval;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// send a request from master to slave in order to change the primary address
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
mbus_set_primary_address(mbus_handle * handle, int old_address, int new_address)
|
||||
{
|
||||
/* primary address record, see chapter 6.4.2 */
|
||||
unsigned char buffer[3] = { 0x01, 0x7A, new_address };
|
||||
|
||||
if (mbus_is_primary_address(new_address) == 0)
|
||||
{
|
||||
MBUS_ERROR("%s: invalid address %d\n", __PRETTY_FUNCTION__, new_address);
|
||||
return -1;
|
||||
}
|
||||
|
||||
switch (new_address)
|
||||
{
|
||||
case MBUS_ADDRESS_NETWORK_LAYER:
|
||||
case MBUS_ADDRESS_BROADCAST_REPLY:
|
||||
case MBUS_ADDRESS_BROADCAST_NOREPLY:
|
||||
MBUS_ERROR("%s: invalid address %d\n", __PRETTY_FUNCTION__, new_address);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return mbus_send_user_data_frame(handle, old_address, buffer, sizeof(buffer));
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// send a request from master to slave and collect the reply (replies)
|
||||
// from the slave.
|
||||
@ -2304,7 +2325,7 @@ mbus_probe_secondary_address(mbus_handle *handle, const char *mask, char *matchi
|
||||
if (addr == NULL)
|
||||
{
|
||||
// show error message, but procede with scan
|
||||
MBUS_ERROR("Failed to generate secondary address from M-Bus reply frame: %s\n",
|
||||
MBUS_ERROR("Failed to generate secondary address from M-Bus reply frame: %s\n",
|
||||
mbus_error_str());
|
||||
return MBUS_PROBE_NOTHING;
|
||||
}
|
||||
|
@ -307,6 +307,17 @@ int mbus_send_request_frame(mbus_handle * handle, int address);
|
||||
*/
|
||||
int mbus_send_user_data_frame(mbus_handle * handle, int address, const unsigned char *data, size_t data_size);
|
||||
|
||||
/**
|
||||
* Sends frame to change primary address of given slave using "unified" handle
|
||||
*
|
||||
* @param handle Initialized handle
|
||||
* @param old_address Old Address (0-255)
|
||||
* @param new_address New Address (0-250)
|
||||
*
|
||||
* @return Zero when successful.
|
||||
*/
|
||||
int mbus_set_primary_address(mbus_handle * handle, int old_address, int new_address);
|
||||
|
||||
/**
|
||||
* Sends a request and read replies until no more records available
|
||||
* or limit is reached.
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -487,10 +487,27 @@ typedef struct _mbus_data_secondary_address {
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_HEAT_COOL 0x0D
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_BUS 0x0E
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_UNKNOWN 0x0F
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_IRRIGATION 0x10
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_WATER_LOGGER 0x11
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_GAS_LOGGER 0x12
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_GAS_CONV 0x13
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_COLORIFIC 0x14
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_BOIL_WATER 0x15
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_COLD_WATER 0x16
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_DUAL_WATER 0x17
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_PRESSURE 0x18
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_ADC 0x19
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_SMOKE 0x1A
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_ROOM_SENSOR 0x1B
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_GAS_DETECTOR 0x1C
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_BREAKER_E 0x20
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_VALVE 0x21
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_CUSTOMER_UNIT 0x25
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_WASTE_WATER 0x28
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_GARBAGE 0x29
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_SERVICE_UNIT 0x30
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_RC_SYSTEM 0x36
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_RC_METER 0x37
|
||||
|
||||
//
|
||||
// Returns the manufacturer ID or zero if the given
|
||||
@ -554,6 +571,8 @@ const char *mbus_data_fixed_function(int status);
|
||||
long mbus_data_record_storage_number(mbus_data_record *record);
|
||||
long mbus_data_record_tariff(mbus_data_record *record);
|
||||
int mbus_data_record_device(mbus_data_record *record);
|
||||
const char *mbus_data_record_unit(mbus_data_record *record);
|
||||
const char *mbus_data_record_value(mbus_data_record *record);
|
||||
|
||||
//
|
||||
// M-Bus frame data struct access/write functions
|
||||
@ -608,6 +627,7 @@ int mbus_data_bcd_encode(unsigned char *bcd_data, size_t bcd_data_size, int valu
|
||||
int mbus_data_int_encode(unsigned char *int_data, size_t int_data_size, int value);
|
||||
|
||||
long long mbus_data_bcd_decode(unsigned char *bcd_data, size_t bcd_data_size);
|
||||
long long mbus_data_bcd_decode_hex(unsigned char *bcd_data, size_t bcd_data_size);
|
||||
int mbus_data_int_decode(unsigned char *int_data, size_t int_data_size, int *value);
|
||||
int mbus_data_long_decode(unsigned char *int_data, size_t int_data_size, long *value);
|
||||
int mbus_data_long_long_decode(unsigned char *int_data, size_t int_data_size, long long *value);
|
||||
@ -643,4 +663,3 @@ int mbus_is_secondary_address(const char * value);
|
||||
#endif
|
||||
|
||||
#endif /* _MBUS_PROTOCOL_H_ */
|
||||
|
||||
|
@ -191,7 +191,13 @@ mbus_serial_disconnect(mbus_handle *handle)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (handle->fd < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
close(handle->fd);
|
||||
handle->fd = -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -374,4 +380,3 @@ mbus_serial_recv_frame(mbus_handle *handle, mbus_frame *frame)
|
||||
|
||||
return MBUS_RECV_RESULT_OK;
|
||||
}
|
||||
|
||||
|
@ -127,7 +127,13 @@ mbus_tcp_disconnect(mbus_handle *handle)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (handle->fd < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
close(handle->fd);
|
||||
handle->fd = -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -262,4 +268,3 @@ mbus_tcp_set_timeout_set(double seconds)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,14 @@
|
||||
Release notes for libmbus
|
||||
|
||||
Version 0.9.0 (2019-02-22):
|
||||
|
||||
Added support for negative BCD numbers (type A) and date time CP48 (type I),
|
||||
new program (set primary address), extended XML output (storage number,
|
||||
tariff, device), echo cancelation and better retry handling. Also this version
|
||||
has countless bug fixes.
|
||||
|
||||
Many thanks to all contributers
|
||||
|
||||
Version 0.8.0 (2012-06-18):
|
||||
--------------------------
|
||||
|
||||
|
@ -12,66 +12,130 @@
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Check if mbus_parse_hex exists
|
||||
if [ ! -x ./mbus_parse_hex ]; then
|
||||
echo "mbus_parse_hex not found"
|
||||
exit 3
|
||||
fi
|
||||
NUMBER_OF_PARSING_ERRORS=0
|
||||
FAILING_TESTS=failing_tests.txt
|
||||
NEW_TESTS=new_tests.txt
|
||||
touch $FAILING_TESTS
|
||||
touch $NEW_TESTS
|
||||
|
||||
# Check commandline parameter
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "usage: $0 directory"
|
||||
if [ $# -lt 1 ] || [ $# -gt 2 ]; then
|
||||
echo "usage: $0 path_to_directory_with_xml_files"
|
||||
echo "or"
|
||||
echo "usage: $0 path_to_directory_with_xml_files path_to_mbus_parse_hex_with_filename"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
directory="$1"
|
||||
|
||||
# Check directory
|
||||
# # Check directory
|
||||
if [ ! -d "$directory" ]; then
|
||||
echo "usage: $0 directory"
|
||||
echo "$directory not found"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
# Default location is this one
|
||||
mbus_parse_hex="build/bin/mbus_parse_hex"
|
||||
|
||||
# though can be overriten
|
||||
if [ $# -eq 2 ]; then
|
||||
mbus_parse_hex="$2"
|
||||
fi
|
||||
|
||||
# Check if mbus_parse_hex exists
|
||||
if [ ! -x "$mbus_parse_hex" ]; then
|
||||
echo "mbus_parse_hex not found"
|
||||
echo "path to mbus_parse_hex: $mbus_parse_hex"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
generate_xml() {
|
||||
directory="$1"
|
||||
hexfile="$2"
|
||||
mode="$3"
|
||||
|
||||
filename=$(basename "$hexfile" .hex)
|
||||
|
||||
if [ "$mode" = "normalized" ]; then
|
||||
options="-n"
|
||||
mode=".norm"
|
||||
else
|
||||
options=""
|
||||
mode=""
|
||||
fi
|
||||
|
||||
# Parse hex file and write XML in file
|
||||
"$mbus_parse_hex" $options "$hexfile" > "$directory/$filename$mode.xml.new"
|
||||
result=$?
|
||||
|
||||
# Check parsing result
|
||||
if [ $result -ne 0 ]; then
|
||||
NUMBER_OF_PARSING_ERRORS=$((NUMBER_OF_PARSING_ERRORS + 1))
|
||||
echo "Unable to generate XML for $hexfile"
|
||||
rm "$directory/$filename$mode.xml.new"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Compare old XML with new XML and write in file
|
||||
diff -u "$directory/$filename$mode.xml" "$directory/$filename$mode.xml.new" 2> /dev/null > "$directory/$filename$mode.dif"
|
||||
result=$?
|
||||
|
||||
case "$result" in
|
||||
0)
|
||||
# XML equal -> remove new
|
||||
rm "$directory/$filename$mode.xml.new"
|
||||
rm "$directory/$filename$mode.dif"
|
||||
;;
|
||||
1)
|
||||
# different -> print diff
|
||||
echo "== $directory/$filename$mode failed"
|
||||
cat "$directory/$filename$mode.dif" && rm "$directory/$filename$mode.dif"
|
||||
echo ""
|
||||
echo "$filename$mode" >> $FAILING_TESTS
|
||||
;;
|
||||
*)
|
||||
# no old -> rename XML
|
||||
echo "Create $filename$mode.xml"
|
||||
mv "$directory/$filename$mode.xml.new" "$directory/$filename$mode.xml"
|
||||
rm "$directory/$filename$mode.dif"
|
||||
echo "$filename$mode" >> $NEW_TESTS
|
||||
;;
|
||||
esac
|
||||
|
||||
return $result
|
||||
}
|
||||
|
||||
for hexfile in "$directory"/*.hex; do
|
||||
if [ ! -f "$hexfile" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
filename=`basename $hexfile .hex`
|
||||
generate_xml "$directory" "$hexfile" "default"
|
||||
|
||||
# Parse hex file and write XML in file
|
||||
./mbus_parse_hex "$hexfile" > "$directory/$filename.xml.new"
|
||||
result=$?
|
||||
|
||||
# Check parsing result
|
||||
if [ $result -ne 0 ]; then
|
||||
echo "Unable to generate XML for $hexfile"
|
||||
rm "$directory/$filename.xml.new"
|
||||
continue
|
||||
fi
|
||||
|
||||
# Compare old XML with new XML and write in file
|
||||
diff -u "$directory/$filename.xml" "$directory/$filename.xml.new" 2> /dev/null > "$directory/$filename.dif"
|
||||
result=$?
|
||||
|
||||
case "$result" in
|
||||
0)
|
||||
# XML equal -> remove new
|
||||
rm "$directory/$filename.xml.new"
|
||||
rm "$directory/$filename.dif"
|
||||
;;
|
||||
1)
|
||||
# different -> print diff
|
||||
cat "$directory/$filename.dif" && rm "$directory/$filename.dif"
|
||||
echo ""
|
||||
;;
|
||||
*)
|
||||
# no old -> rename XML
|
||||
echo "Create $filename.xml"
|
||||
mv "$directory/$filename.xml.new" "$directory/$filename.xml"
|
||||
rm "$directory/$filename.dif"
|
||||
;;
|
||||
esac
|
||||
generate_xml "$directory" "$hexfile" "normalized"
|
||||
done
|
||||
|
||||
# Check the size of the file $FAILING_TESTS. Make sure to indicate failure.
|
||||
if [ -s $FAILING_TESTS ]; then
|
||||
echo "** There were errors in the following file(s):"
|
||||
cat $FAILING_TESTS
|
||||
exit 1
|
||||
else
|
||||
rm $FAILING_TESTS
|
||||
fi
|
||||
if [ -s $NEW_TESTS ]; then
|
||||
echo "** There were new test in the following file(s):"
|
||||
cat $NEW_TESTS
|
||||
else
|
||||
rm $NEW_TESTS
|
||||
fi
|
||||
|
||||
# Check that there was no files that failed to parse
|
||||
if [ $NUMBER_OF_PARSING_ERRORS -ne 0 ]; then
|
||||
echo "** There were $NUMBER_OF_PARSING_ERRORS files that did not parse, expected 0 files."
|
||||
echo
|
||||
exit $NUMBER_OF_PARSING_ERRORS
|
||||
fi
|
||||
DIRECTORY_BASENAME="$(basename "$directory")"
|
||||
echo "** Tests executed successfully in \"$DIRECTORY_BASENAME\"."
|
||||
echo
|
||||
|
@ -18,7 +18,7 @@ int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
FILE *fp = NULL;
|
||||
size_t buff_len, len;
|
||||
size_t len;
|
||||
int normalized = 0;
|
||||
unsigned char buf[1024];
|
||||
mbus_frame reply;
|
||||
@ -53,6 +53,7 @@ main(int argc, char *argv[])
|
||||
if (ferror(fp) != 0)
|
||||
{
|
||||
fprintf(stderr, "%s: failed to read '%s'\n", argv[0], file);
|
||||
fclose(fp);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@ int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
FILE *fp = NULL;
|
||||
size_t buff_len, len;
|
||||
size_t buff_len;
|
||||
int result, normalized = 0;
|
||||
unsigned char raw_buff[4096], buff[4096];
|
||||
mbus_frame reply;
|
||||
@ -48,11 +48,12 @@ main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
memset(raw_buff, 0, sizeof(raw_buff));
|
||||
len = fread(raw_buff, 1, sizeof(raw_buff), fp);
|
||||
fread(raw_buff, 1, sizeof(raw_buff), fp);
|
||||
|
||||
if (ferror(fp) != 0)
|
||||
{
|
||||
fprintf(stderr, "%s: failed to read '%s'\n", argv[0], file);
|
||||
fclose(fp);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
87
test/test-frames/ACW_Itron-BM-plus-m.norm.xml
Normal file
87
test/test-frames/ACW_Itron-BM-plus-m.norm.xml
Normal file
@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>11490378</Id>
|
||||
<Manufacturer>ACW</Manufacturer>
|
||||
<Version>14</Version>
|
||||
<ProductName>Itron BM +m</ProductName>
|
||||
<Medium>Cold water</Medium>
|
||||
<AccessNumber>10</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>11490378.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>54.321000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2000-00-00</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2014-03-13T11:11:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Firmware version</Quantity>
|
||||
<Value>2.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Software version</Quantity>
|
||||
<Value>6.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>00 01 75 13</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
79
test/test-frames/ACW_Itron-CYBLE-M-Bus-14.norm.xml
Normal file
79
test/test-frames/ACW_Itron-CYBLE-M-Bus-14.norm.xml
Normal file
@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>9011523</Id>
|
||||
<Manufacturer>ACW</Manufacturer>
|
||||
<Version>20</Version>
|
||||
<ProductName>Itron CYBLE M-Bus 1.4</ProductName>
|
||||
<Medium>Water</Medium>
|
||||
<AccessNumber>37</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>9011523.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>cust. ID</Quantity>
|
||||
<Value>09LA076755</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2014-03-13T14:26:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>bat. time</Quantity>
|
||||
<Value>2516.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.031000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.031000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>00 01 1F</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
231
test/test-frames/EDC.norm.xml
Normal file
231
test/test-frames/EDC.norm.xml
Normal file
@ -0,0 +1,231 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>11120895</Id>
|
||||
<Manufacturer>EDC</Manufacturer>
|
||||
<Version>2</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>23</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>35000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>465000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>21.536703</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>21.605042</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>92.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>92.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000707</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.357622</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>18511.912109</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-07-10T15:25:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>C</Quantity>
|
||||
<Value>3571.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>C</Quantity>
|
||||
<Value>413.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>c</Quantity>
|
||||
<Value>1.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="20">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>c</Quantity>
|
||||
<Value>1.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="21">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value></Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
229
test/test-frames/EFE_Engelmann-Elster-SensoStar-2.norm.xml
Normal file
229
test/test-frames/EFE_Engelmann-Elster-SensoStar-2.norm.xml
Normal file
@ -0,0 +1,229 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>24083345</Id>
|
||||
<Manufacturer>EFE</Manufacturer>
|
||||
<Version>0</Version>
|
||||
<ProductName>Engelmann / Elster SensoStar 2</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>102</AccessNumber>
|
||||
<Status>27</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>24083345.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2014-03-12T14:23:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-12-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2014-12-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>3</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.025000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>11.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>22.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="20">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>21.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="21">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>0.090000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="22">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>On time</Quantity>
|
||||
<Value>45273600.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="23">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Error flags</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="24">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000011</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
113
test/test-frames/EFE_Engelmann-WaterStar.norm.xml
Normal file
113
test/test-frames/EFE_Engelmann-WaterStar.norm.xml
Normal file
@ -0,0 +1,113 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>4990254</Id>
|
||||
<Manufacturer>EFE</Manufacturer>
|
||||
<Version>0</Version>
|
||||
<ProductName>Engelmann WaterStar</ProductName>
|
||||
<Medium>Warm water (30-90°C)</Medium>
|
||||
<AccessNumber>12</AccessNumber>
|
||||
<Status>27</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>4990254.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2014-03-13T12:10:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.332000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.331000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.332000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-12-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2014-12-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>2.070000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>On time</Quantity>
|
||||
<Value>102902400.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Error flags</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000008</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
@ -6,7 +6,7 @@
|
||||
<Manufacturer>EFE</Manufacturer>
|
||||
<Version>0</Version>
|
||||
<ProductName>Engelmann WaterStar</ProductName>
|
||||
<Medium>Hot water</Medium>
|
||||
<Medium>Warm water (30-90°C)</Medium>
|
||||
<AccessNumber>12</AccessNumber>
|
||||
<Status>27</Status>
|
||||
<Signature>0000</Signature>
|
||||
|
151
test/test-frames/ELS_Elster-F96-Plus.norm.xml
Normal file
151
test/test-frames/ELS_Elster-F96-Plus.norm.xml
Normal file
@ -0,0 +1,151 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>44493951</Id>
|
||||
<Manufacturer>ELS</Manufacturer>
|
||||
<Version>47</Version>
|
||||
<ProductName>Elster F96 Plus</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>161</AccessNumber>
|
||||
<Status>70</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>13131113.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>131.113000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>22.700000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>22.600000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>0.100000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>63072000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2014-03-13T13:09:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-05-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
@ -48,14 +48,14 @@
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Power (W)</Unit>
|
||||
<Value>144445223</Value>
|
||||
<Value>DDDDEBBD</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Volume flow (m m^3/h)</Unit>
|
||||
<Value>1445223</Value>
|
||||
<Value>DDEBBD</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
|
121
test/test-frames/ELV-Elvaco-CMa10.norm.xml
Normal file
121
test/test-frames/ELV-Elvaco-CMa10.norm.xml
Normal file
@ -0,0 +1,121 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>24011561</Id>
|
||||
<Manufacturer>ELV</Manufacturer>
|
||||
<Version>22</Version>
|
||||
<ProductName>Elvaco CMa10</ProductName>
|
||||
<Medium>Other</Medium>
|
||||
<AccessNumber>63</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Digital Input</Quantity>
|
||||
<Value>2.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>%RH</Quantity>
|
||||
<Value>54.100000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Minimum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>%RH</Quantity>
|
||||
<Value>33.640000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>%RH</Quantity>
|
||||
<Value>73.630000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>External temperature</Quantity>
|
||||
<Value>20.940000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Minimum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>External temperature</Quantity>
|
||||
<Value>13.720000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>External temperature</Quantity>
|
||||
<Value>29.780000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Averaging Duration</Quantity>
|
||||
<Value>86400.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>External temperature</Quantity>
|
||||
<Value>20.920000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>External temperature</Quantity>
|
||||
<Value>20.790000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>24011561.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Software version</Quantity>
|
||||
<Value>262144.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>More records follow</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value></Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
287
test/test-frames/EMU_EMU-Professional-375-M-Bus.norm.xml
Normal file
287
test/test-frames/EMU_EMU-Professional-375-M-Bus.norm.xml
Normal file
@ -0,0 +1,287 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>32629</Id>
|
||||
<Manufacturer>EMU</Manufacturer>
|
||||
<Version>16</Version>
|
||||
<ProductName>EMU Professional 3/75 M-Bus</ProductName>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>2</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>32629.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>1364.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>7854.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>-2.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>-2.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>14.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>14.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>225.700000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Minimum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>187.400000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Minimum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Minimum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>241.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="20">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="21">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="22">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>-0.066000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="23">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="24">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="25">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>-0.066000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="26">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>13.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="27">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="28">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="29">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>500.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="30">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Reset counter</Quantity>
|
||||
<Value>56.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="31">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Error flags</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
@ -241,7 +241,7 @@
|
||||
<DataRecord id="30">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Unrecognized VIF extension: 0x60</Unit>
|
||||
<Unit>Reset counter</Unit>
|
||||
<Value>56</Value>
|
||||
</DataRecord>
|
||||
|
||||
|
133
test/test-frames/Elster-F2.norm.xml
Normal file
133
test/test-frames/Elster-F2.norm.xml
Normal file
@ -0,0 +1,133 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>802657</Id>
|
||||
<Manufacturer>SVM</Manufacturer>
|
||||
<Version>8</Version>
|
||||
<ProductName>Elster F2 / Deltamess F2</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>70</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>5272000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>1204.270000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>917.690000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>28.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>34.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>On time</Quantity>
|
||||
<Value>149014800.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>149014800.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2013-06-29T12:12:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>Units for H.C.A.</Unit>
|
||||
<Quantity>H.C.A.</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>Units for H.C.A.</Unit>
|
||||
<Quantity>H.C.A.</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>More records follow</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>C4 09 01 01 12 00 01 01 01 07 57 26 80 00 CD 4E 08 04 07 A3 FF 03 57 26 80 00 04 04 0D 02 FF 0F 05 3C FF 62 E7 62 96 0A 89 0A 02 00 15 40 17 01 00 00 63 42</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
69
test/test-frames/FIN-Finder-7E.23.8.230.0020.norm.xml
Normal file
69
test/test-frames/FIN-Finder-7E.23.8.230.0020.norm.xml
Normal file
@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>23006207</Id>
|
||||
<Manufacturer>FIN</Manufacturer>
|
||||
<Version>35</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>146</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>1728680.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>1728680.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>230.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>0.600000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>90.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>-30.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
31
test/test-frames/GWF-MTKcoder.norm.xml
Normal file
31
test/test-frames/GWF-MTKcoder.norm.xml
Normal file
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>182007</Id>
|
||||
<Manufacturer>GWF</Manufacturer>
|
||||
<Version>53</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Water</Medium>
|
||||
<AccessNumber>76</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>182007.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>269.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
65
test/test-frames/LGB_G350.norm.xml
Normal file
65
test/test-frames/LGB_G350.norm.xml
Normal file
@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>12082058</Id>
|
||||
<Manufacturer>LGB</Manufacturer>
|
||||
<Version>64</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Gas</Medium>
|
||||
<AccessNumber>64</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>10834.092000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2016-07-22T08:00:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>G0017591208205814</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit></Unit>
|
||||
<Quantity>Digital Output</Quantity>
|
||||
<Value>1.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Error flags</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Special supplier information</Quantity>
|
||||
<Value>15.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
@ -52,7 +52,7 @@
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Unrecognized VIF extension: 0x67</Unit>
|
||||
<Unit>Special supplier information</Unit>
|
||||
<Value>15</Value>
|
||||
</DataRecord>
|
||||
|
||||
|
63
test/test-frames/REL-Relay-Padpuls2.norm.xml
Normal file
63
test/test-frames/REL-Relay-Padpuls2.norm.xml
Normal file
@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>11216301</Id>
|
||||
<Manufacturer>REL</Manufacturer>
|
||||
<Version>65</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Gas</Medium>
|
||||
<AccessNumber>177</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>28760.810000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>1900-01-00T00:00:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2014-12-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>25973.820000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2015-12-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>C0 01 01 0C</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
191
test/test-frames/SBC_Saia-Burgess-ALE3.norm.xml
Normal file
191
test/test-frames/SBC_Saia-Burgess-ALE3.norm.xml
Normal file
@ -0,0 +1,191 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>19000055</Id>
|
||||
<Manufacturer>SBC</Manufacturer>
|
||||
<Version>22</Version>
|
||||
<ProductName>Saia-Burgess ALE3</ProductName>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>191</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>2930.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>2930.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>60.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>60.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>223.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
143
test/test-frames/SEN_Pollustat.norm.xml
Normal file
143
test/test-frames/SEN_Pollustat.norm.xml
Normal file
@ -0,0 +1,143 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>11788</Id>
|
||||
<Manufacturer>SEN</Manufacturer>
|
||||
<Version>6</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Heat / Cooling load meter</Medium>
|
||||
<AccessNumber>62</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2015-04-07T14:59:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2000-01-01T00:00:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Error flags</Quantity>
|
||||
<Value>67108864.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>On time</Quantity>
|
||||
<Value>15803026.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>15145636.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>39831000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>6162.878000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>-170.721784</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>3.230039</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>31.147324</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>31.193100</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>-0.045776</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>11582321.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>756.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>11788.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>-19184.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
95
test/test-frames/SEN_Sensus-PolluStat-E.norm.xml
Normal file
95
test/test-frames/SEN_Sensus-PolluStat-E.norm.xml
Normal file
@ -0,0 +1,95 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>21265095</Id>
|
||||
<Manufacturer>SEN</Manufacturer>
|
||||
<Version>14</Version>
|
||||
<ProductName>Sensus PolluStat E</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>181</AccessNumber>
|
||||
<Status>10</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>20.100000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>20.200000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>21265095.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Customer location</Quantity>
|
||||
<Value>21265095.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>More records follow</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value></Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
87
test/test-frames/SEN_Sensus-PolluTherm.norm.xml
Normal file
87
test/test-frames/SEN_Sensus-PolluTherm.norm.xml
Normal file
@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>24351689</Id>
|
||||
<Manufacturer>SEN</Manufacturer>
|
||||
<Version>11</Version>
|
||||
<ProductName>Sensus PolluTherm</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>84</AccessNumber>
|
||||
<Status>10</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>24351689.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Customer location</Quantity>
|
||||
<Value>24351689.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
139
test/test-frames/SLB_CF-Compact-Integral-MK-MaXX.norm.xml
Normal file
139
test/test-frames/SLB_CF-Compact-Integral-MK-MaXX.norm.xml
Normal file
@ -0,0 +1,139 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>11817314</Id>
|
||||
<Manufacturer>SLB</Manufacturer>
|
||||
<Version>6</Version>
|
||||
<ProductName>CF Compact / Integral MK MaXX</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>3</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>11817314.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.020000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>21.800000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>22.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>-0.180000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>101606400.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2014-03-13T14:02:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>1.230000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>3.210000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Firmware version</Quantity>
|
||||
<Value>3.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Software version</Quantity>
|
||||
<Value>18.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>00 16</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
@ -58,7 +58,7 @@
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Temperature Difference (1e-2 deg C)</Unit>
|
||||
<Value>1500018</Value>
|
||||
<Value>F00018</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
|
121
test/test-frames/THI_cma10.norm.xml
Normal file
121
test/test-frames/THI_cma10.norm.xml
Normal file
@ -0,0 +1,121 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>2</Id>
|
||||
<Manufacturer>ELV</Manufacturer>
|
||||
<Version>21</Version>
|
||||
<ProductName>Elvaco CMa10</ProductName>
|
||||
<Medium>Other</Medium>
|
||||
<AccessNumber>13</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Digital Input</Quantity>
|
||||
<Value>2.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>%RH</Quantity>
|
||||
<Value>46.600000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Minimum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>%RH</Quantity>
|
||||
<Value>37.820000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>%RH</Quantity>
|
||||
<Value>51.220000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>External temperature</Quantity>
|
||||
<Value>22.620000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Minimum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>External temperature</Quantity>
|
||||
<Value>22.500000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>External temperature</Quantity>
|
||||
<Value>23.260000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Averaging Duration</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>External temperature</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>External temperature</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>2.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Software version</Quantity>
|
||||
<Value>772.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>More records follow</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value></Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
335
test/test-frames/ZRM_Minol-Minocal-C2.norm.xml
Normal file
335
test/test-frames/ZRM_Minol-Minocal-C2.norm.xml
Normal file
@ -0,0 +1,335 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>31425084</Id>
|
||||
<Manufacturer>ZRM</Manufacturer>
|
||||
<Version>129</Version>
|
||||
<ProductName>Minol Minocal C2</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>115</AccessNumber>
|
||||
<Status>27</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Error flags</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>8</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2015-01-01T00:00:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>8</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>10</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.074000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.043000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2011-09-01T08:30:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>2000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2011-09-01T08:30:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>20.710000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>20.380000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2014-03-13T12:45:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2014-03-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>33</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2014-02-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>33</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>34</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2014-01-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="20">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>34</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="21">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>35</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-12-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="22">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>35</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="23">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>36</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-11-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="24">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>36</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="25">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>37</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-10-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="26">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>37</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="27">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>38</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-09-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="28">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>38</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="29">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>39</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-08-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="30">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>39</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="31">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2014-03-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="32">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="33">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
153
test/test-frames/abb_delta.norm.xml
Normal file
153
test/test-frames/abb_delta.norm.xml
Normal file
@ -0,0 +1,153 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>78563412</Id>
|
||||
<Manufacturer>ABB</Manufacturer>
|
||||
<Version>2</Version>
|
||||
<ProductName>ABB Delta-Meter</ProductName>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>69</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>3</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>4</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>3</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>4</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>1000000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Error flags</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>More records follow</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value></Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
131
test/test-frames/abb_f95.norm.xml
Normal file
131
test/test-frames/abb_f95.norm.xml
Normal file
@ -0,0 +1,131 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>26718590</Id>
|
||||
<Manufacturer>HYD</Manufacturer>
|
||||
<Version>40</Version>
|
||||
<ProductName>ABB F95 Typ US770</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>115</AccessNumber>
|
||||
<Status>50</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.074200</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>1311041.300000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>11.041300</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>20.400000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>20.400000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-01-13T16:34:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2011-04-30T23:59:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-04-30T23:59:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2011-12-31T23:59:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>311590800.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
@ -30,14 +30,14 @@
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Power (1e-1 W)</Unit>
|
||||
<Value>144521543</Value>
|
||||
<Value>DDEBB4DD</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Volume flow (1e-4 m^3/h)</Unit>
|
||||
<Value>1521543</Value>
|
||||
<Value>EBB4DD</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
|
95
test/test-frames/allmess_cf50.norm.xml
Normal file
95
test/test-frames/allmess_cf50.norm.xml
Normal file
@ -0,0 +1,95 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>2205100</Id>
|
||||
<Manufacturer>SLB</Manufacturer>
|
||||
<Version>2</Version>
|
||||
<ProductName>Allmess Megacontrol CF-50</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>0</AccessNumber>
|
||||
<Status>88</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.300000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>128.800000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>51.600000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>77.230000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2012-01-12</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>292291200.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>60 00</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
1
test/test-frames/amt_calec_mb.hex
Normal file
1
test/test-frames/amt_calec_mb.hex
Normal file
@ -0,0 +1 @@
|
||||
68 38 38 68 08 C8 72 09 31 54 03 B4 05 B0 04 C9 10 FF FF 03 22 9A 00 00 05 2E A0 C8 51 46 05 3E B4 E3 D7 42 05 5B 90 D3 07 43 05 5F 0E AA E7 41 05 63 9C BC D5 42 04 6D 10 09 05 C5 77 16
|
71
test/test-frames/amt_calec_mb.norm.xml
Normal file
71
test/test-frames/amt_calec_mb.norm.xml
Normal file
@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>3543109</Id>
|
||||
<Manufacturer>AMT</Manufacturer>
|
||||
<Version>176</Version>
|
||||
<ProductName>Aquametro CALEC MB</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>201</AccessNumber>
|
||||
<Status>10</Status>
|
||||
<Signature>FFFF</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>On time</Quantity>
|
||||
<Value>554400.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>13426156.250000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>107.944733</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>135.826416</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>28.958035</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>106.868378</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2096-05-05T09:16:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
64
test/test-frames/amt_calec_mb.xml
Normal file
64
test/test-frames/amt_calec_mb.xml
Normal file
@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>3543109</Id>
|
||||
<Manufacturer>AMT</Manufacturer>
|
||||
<Version>176</Version>
|
||||
<ProductName>Aquametro CALEC MB</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>201</AccessNumber>
|
||||
<Status>10</Status>
|
||||
<Signature>FFFF</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>On time (hours)</Unit>
|
||||
<Value>154</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Power (kW)</Unit>
|
||||
<Value>13426.156250</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Volume flow ( m^3/h)</Unit>
|
||||
<Value>107.944733</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Flow temperature (deg C)</Unit>
|
||||
<Value>135.826416</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Return temperature (deg C)</Unit>
|
||||
<Value>28.958035</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Temperature Difference ( deg C)</Unit>
|
||||
<Value>106.868378</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Time Point (time & date)</Unit>
|
||||
<Value>2096-05-05T09:16:00</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
169
test/test-frames/berg_dz_plus.norm.xml
Normal file
169
test/test-frames/berg_dz_plus.norm.xml
Normal file
@ -0,0 +1,169 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>0</Id>
|
||||
<Manufacturer>ABB</Manufacturer>
|
||||
<Version>2</Version>
|
||||
<ProductName>ABB Delta-Meter</ProductName>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>0</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>3</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>4</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>3</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>4</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Error flags</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>More records follow</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
1
test/test-frames/eastron_sdm630.hex
Normal file
1
test/test-frames/eastron_sdm630.hex
Normal file
@ -0,0 +1 @@
|
||||
68 90 90 68 08 0A 72 78 65 34 21 24 40 01 02 55 00 00 00 0B FD 47 56 34 12 0B FD 47 56 34 12 0B FD 47 56 34 12 0B FD 47 56 34 12 0B FD 47 56 34 12 0B FD 47 56 34 12 0B FD 59 56 34 12 0B FD 59 56 34 12 0B FD 59 56 34 12 0B FD 59 56 34 12 0B 2A 56 34 12 0B 2A 56 34 12 0B 2A 56 34 12 0B 2A 56 34 12 0B FD 3A 56 34 12 0B FD 3A 56 34 12 0B FD 3A 56 34 12 0B FD 3A 56 34 12 0A FD 3A 00 05 0A FD 3A 05 00 0A FD 3A 05 00 0A FD 3A 05 00 0A FD 3A 50 00 4D 16
|
199
test/test-frames/eastron_sdm630.norm.xml
Normal file
199
test/test-frames/eastron_sdm630.norm.xml
Normal file
@ -0,0 +1,199 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>21346578</Id>
|
||||
<Manufacturer>PAD</Manufacturer>
|
||||
<Version>1</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>85</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>1234.560000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>1234.560000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>1234.560000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>1234.560000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>1234.560000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>1234.560000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>123.456000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>123.456000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>123.456000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>123.456000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>12345.600000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>12345.600000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>12345.600000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>12345.600000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Dimensionless</Quantity>
|
||||
<Value>123456.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Dimensionless</Quantity>
|
||||
<Value>123456.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Dimensionless</Quantity>
|
||||
<Value>123456.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Dimensionless</Quantity>
|
||||
<Value>123456.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Dimensionless</Quantity>
|
||||
<Value>500.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Dimensionless</Quantity>
|
||||
<Value>5.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="20">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Dimensionless</Quantity>
|
||||
<Value>5.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="21">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Dimensionless</Quantity>
|
||||
<Value>5.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="22">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Dimensionless</Quantity>
|
||||
<Value>50.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
176
test/test-frames/eastron_sdm630.xml
Normal file
176
test/test-frames/eastron_sdm630.xml
Normal file
@ -0,0 +1,176 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>21346578</Id>
|
||||
<Manufacturer>PAD</Manufacturer>
|
||||
<Version>1</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>85</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>1e-2 V</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>1e-2 V</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>1e-2 V</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>1e-2 V</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>1e-2 V</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>1e-2 V</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m A</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m A</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m A</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m A</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Power (1e-1 W)</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Power (1e-1 W)</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Power (1e-1 W)</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Power (1e-1 W)</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>dimensionless / no VIF</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>dimensionless / no VIF</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>dimensionless / no VIF</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>dimensionless / no VIF</Unit>
|
||||
<Value>123456</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>dimensionless / no VIF</Unit>
|
||||
<Value>500</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>dimensionless / no VIF</Unit>
|
||||
<Value>5</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="20">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>dimensionless / no VIF</Unit>
|
||||
<Value>5</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="21">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>dimensionless / no VIF</Unit>
|
||||
<Value>5</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="22">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>dimensionless / no VIF</Unit>
|
||||
<Value>50</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
191
test/test-frames/electricity-meter-1.norm.xml
Normal file
191
test/test-frames/electricity-meter-1.norm.xml
Normal file
@ -0,0 +1,191 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>500023E</Id>
|
||||
<Manufacturer>SBC</Manufacturer>
|
||||
<Version>18</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>19</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>12520.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>12520.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>17744330.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>17744330.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>237.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>3.200000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>790.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>-180.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>231.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>3.500000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>810.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>-150.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>228.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>6.900000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>1600.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>-320.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>3200.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>-650.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>4.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
@ -2,7 +2,7 @@
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>5000244</Id>
|
||||
<Id>500023E</Id>
|
||||
<Manufacturer>SBC</Manufacturer>
|
||||
<Version>18</Version>
|
||||
<ProductName></ProductName>
|
||||
|
191
test/test-frames/electricity-meter-2.norm.xml
Normal file
191
test/test-frames/electricity-meter-2.norm.xml
Normal file
@ -0,0 +1,191 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>50002E5</Id>
|
||||
<Manufacturer>@@@</Manufacturer>
|
||||
<Version>18</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>37</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>2540.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>2540.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>4441280.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>4441280.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>233.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>0.100000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>234.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>235.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>0.100000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Manufacturer specific</Quantity>
|
||||
<Value>4.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
@ -2,7 +2,7 @@
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>5000345</Id>
|
||||
<Id>50002E5</Id>
|
||||
<Manufacturer>@@@</Manufacturer>
|
||||
<Version>18</Version>
|
||||
<ProductName></ProductName>
|
||||
|
87
test/test-frames/els_falcon.norm.xml
Normal file
87
test/test-frames/els_falcon.norm.xml
Normal file
@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>70112345</Id>
|
||||
<Manufacturer>ELS</Manufacturer>
|
||||
<Version>10</Version>
|
||||
<ProductName>Elster Falcon</ProductName>
|
||||
<Medium>Water</Medium>
|
||||
<AccessNumber>2</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>1234.567000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2007-02-06T13:58:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2007-01-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>456.951000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2008-01-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>5.945000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2008-01-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>6.137000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>0E 42 20 01 01 01 00 05 08 5E 01 20 3D 12 08 3D 12 08 00</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
63
test/test-frames/els_tmpa_telegramm1.norm.xml
Normal file
63
test/test-frames/els_tmpa_telegramm1.norm.xml
Normal file
@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>70112345</Id>
|
||||
<Manufacturer>ELS</Manufacturer>
|
||||
<Version>2</Version>
|
||||
<ProductName>Elster TMP-A</ProductName>
|
||||
<Medium>Water</Medium>
|
||||
<AccessNumber>2</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>1234.567000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2007-02-06T13:58:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2007-01-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>456.951000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2008-01-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>00</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
121
test/test-frames/elv_temp_humid.norm.xml
Normal file
121
test/test-frames/elv_temp_humid.norm.xml
Normal file
@ -0,0 +1,121 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>54000834</Id>
|
||||
<Manufacturer>ELV</Manufacturer>
|
||||
<Version>50</Version>
|
||||
<ProductName>Elvaco CMa11</ProductName>
|
||||
<Medium>Other</Medium>
|
||||
<AccessNumber>242</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Digital Input</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>%RH</Quantity>
|
||||
<Value>45.640000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Minimum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>%RH</Quantity>
|
||||
<Value>45.520000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>%RH</Quantity>
|
||||
<Value>58.120000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>External temperature</Quantity>
|
||||
<Value>22.560000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Minimum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>External temperature</Quantity>
|
||||
<Value>21.600000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>External temperature</Quantity>
|
||||
<Value>23.390000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Averaging Duration</Quantity>
|
||||
<Value>86400.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>External temperature</Quantity>
|
||||
<Value>22.760000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>External temperature</Quantity>
|
||||
<Value>22.690000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>54000834.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Software version</Quantity>
|
||||
<Value>262144.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>More records follow</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value></Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
43
test/test-frames/emh_diz.norm.xml
Normal file
43
test/test-frames/emh_diz.norm.xml
Normal file
@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>623702</Id>
|
||||
<Manufacturer>EMH</Manufacturer>
|
||||
<Version>0</Version>
|
||||
<ProductName>EMH DIZ</ProductName>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>7</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>4090.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Error flags</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
225
test/test-frames/engelmann_sensostar2c.norm.xml
Normal file
225
test/test-frames/engelmann_sensostar2c.norm.xml
Normal file
@ -0,0 +1,225 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>10380010</Id>
|
||||
<Manufacturer>EFE</Manufacturer>
|
||||
<Version>1</Version>
|
||||
<ProductName>Engelmann SensoStar 2C</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>30</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>10380010.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-06-06T20:50:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>12.900000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>800000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>3</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>95.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>43.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>52.580000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>43718400.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Error flags</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.100000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2011-12-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>12.900000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>800000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>3</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2010-12-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="20">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>8.400000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="21">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>500000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="22">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="23">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>3</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
@ -36,7 +36,7 @@
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Unrecognized VIF extension: 0x00</Unit>
|
||||
<Unit>Energy (0.1 MWh)</Unit>
|
||||
<Value>8</Value>
|
||||
</DataRecord>
|
||||
|
||||
@ -45,7 +45,7 @@
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Unrecognized VIF extension: 0x00</Unit>
|
||||
<Unit>Energy (0.1 MWh)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
@ -54,7 +54,7 @@
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>3</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Unrecognized VIF extension: 0x00</Unit>
|
||||
<Unit>Energy (0.1 MWh)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
@ -131,7 +131,7 @@
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>Unrecognized VIF extension: 0x00</Unit>
|
||||
<Unit>Energy (0.1 MWh)</Unit>
|
||||
<Value>8</Value>
|
||||
</DataRecord>
|
||||
|
||||
@ -140,7 +140,7 @@
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Unrecognized VIF extension: 0x00</Unit>
|
||||
<Unit>Energy (0.1 MWh)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
@ -149,7 +149,7 @@
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>3</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Unrecognized VIF extension: 0x00</Unit>
|
||||
<Unit>Energy (0.1 MWh)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
@ -176,7 +176,7 @@
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Unrecognized VIF extension: 0x00</Unit>
|
||||
<Unit>Energy (0.1 MWh)</Unit>
|
||||
<Value>5</Value>
|
||||
</DataRecord>
|
||||
|
||||
@ -185,7 +185,7 @@
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Unrecognized VIF extension: 0x00</Unit>
|
||||
<Unit>Energy (0.1 MWh)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
@ -194,7 +194,7 @@
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>3</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Unrecognized VIF extension: 0x00</Unit>
|
||||
<Unit>Energy (0.1 MWh)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
|
63
test/test-frames/example_data_01.norm.xml
Normal file
63
test/test-frames/example_data_01.norm.xml
Normal file
@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>3575845</Id>
|
||||
<Manufacturer>AMT</Manufacturer>
|
||||
<Version>52</Version>
|
||||
<ProductName>Aquametro AMTRON</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>158</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>B627</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>1389817000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>504647.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>41.737434</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>35.463650</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
@ -5,7 +5,7 @@
|
||||
<Id>3575845</Id>
|
||||
<Manufacturer>AMT</Manufacturer>
|
||||
<Version>52</Version>
|
||||
<ProductName></ProductName>
|
||||
<ProductName>Aquametro AMTRON</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>158</AccessNumber>
|
||||
<Status>00</Status>
|
||||
|
63
test/test-frames/example_data_02.norm.xml
Normal file
63
test/test-frames/example_data_02.norm.xml
Normal file
@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>3575845</Id>
|
||||
<Manufacturer>AMT</Manufacturer>
|
||||
<Version>52</Version>
|
||||
<ProductName>Aquametro AMTRON</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>161</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>B627</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>1389817000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>504647.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>41.211052</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>35.385593</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
@ -5,7 +5,7 @@
|
||||
<Id>3575845</Id>
|
||||
<Manufacturer>AMT</Manufacturer>
|
||||
<Version>52</Version>
|
||||
<ProductName></ProductName>
|
||||
<ProductName>Aquametro AMTRON</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>161</AccessNumber>
|
||||
<Status>00</Status>
|
||||
|
23
test/test-frames/filler.norm.xml
Normal file
23
test/test-frames/filler.norm.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>17677731</Id>
|
||||
<Manufacturer>KAM</Manufacturer>
|
||||
<Version>1</Version>
|
||||
<ProductName>Kamstrup 382 (6850-005)</ProductName>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>0</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>5000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
23
test/test-frames/frame1.norm.xml
Normal file
23
test/test-frames/frame1.norm.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>10060958</Id>
|
||||
<Manufacturer>LSE</Manufacturer>
|
||||
<Version>22</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Bus/System</Medium>
|
||||
<AccessNumber>123</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>5F 42 01 11 FF FF FF FF 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
43
test/test-frames/frame2.norm.xml
Normal file
43
test/test-frames/frame2.norm.xml
Normal file
@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>12345678</Id>
|
||||
<Manufacturer>PAD</Manufacturer>
|
||||
<Version>1</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Water</Medium>
|
||||
<AccessNumber>85</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>12.565000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>5</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.113000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>218370.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
215
test/test-frames/gmc_emmod206.norm.xml
Normal file
215
test/test-frames/gmc_emmod206.norm.xml
Normal file
@ -0,0 +1,215 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>12345678</Id>
|
||||
<Manufacturer>GMC</Manufacturer>
|
||||
<Version>230</Version>
|
||||
<ProductName>GMC-I A230 EMMOD 206</ProductName>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>2</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>86.400000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>95.900000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>3</Device>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>105.600000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>0.957000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>1.055000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>3</Device>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>1.150000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>224.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>-202.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>103880.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>150000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>201590.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>250000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>300910.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>350000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>3</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>402370.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>3</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>450000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>224.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>4</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>6</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>8</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>202.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
87
test/test-frames/itron_bm_+m.norm.xml
Normal file
87
test/test-frames/itron_bm_+m.norm.xml
Normal file
@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>11490378</Id>
|
||||
<Manufacturer>ACW</Manufacturer>
|
||||
<Version>14</Version>
|
||||
<ProductName>Itron BM +m</ProductName>
|
||||
<Medium>Cold water</Medium>
|
||||
<AccessNumber>41</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>11490378.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>54.321000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2000-00-00</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-01-24T13:29:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Firmware version</Quantity>
|
||||
<Value>2.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Software version</Quantity>
|
||||
<Value>6.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>00 00 8F 13</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
147
test/test-frames/itron_cf_51.norm.xml
Normal file
147
test/test-frames/itron_cf_51.norm.xml
Normal file
@ -0,0 +1,147 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>11155185</Id>
|
||||
<Manufacturer>ACW</Manufacturer>
|
||||
<Version>10</Version>
|
||||
<ProductName>Itron CF 51</ProductName>
|
||||
<Medium>Heat / Cooling load meter</Medium>
|
||||
<AccessNumber>27</AccessNumber>
|
||||
<Status>10</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>11155185.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>99999900.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>999.900000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>999.900000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>9999.990000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-01-24T13:24:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>8985600.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Firmware version</Quantity>
|
||||
<Value>11.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Software version</Quantity>
|
||||
<Value>26.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>321.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>1.230000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>03 20</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
119
test/test-frames/itron_cf_55.norm.xml
Normal file
119
test/test-frames/itron_cf_55.norm.xml
Normal file
@ -0,0 +1,119 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>11127667</Id>
|
||||
<Manufacturer>ACW</Manufacturer>
|
||||
<Version>11</Version>
|
||||
<ProductName>Itron CF 55</ProductName>
|
||||
<Medium>Heat: Inlet</Medium>
|
||||
<AccessNumber>11</AccessNumber>
|
||||
<Status>10</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>11127667.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>99999900.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>999.900000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>999.900000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>9999.990000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-01-24T11:47:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>21772800.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Firmware version</Quantity>
|
||||
<Value>10.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Software version</Quantity>
|
||||
<Value>21.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>03 20</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
119
test/test-frames/itron_cf_echo_2.norm.xml
Normal file
119
test/test-frames/itron_cf_echo_2.norm.xml
Normal file
@ -0,0 +1,119 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>11100091</Id>
|
||||
<Manufacturer>ACW</Manufacturer>
|
||||
<Version>9</Version>
|
||||
<ProductName>Itron CF Echo 2</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>81</AccessNumber>
|
||||
<Status>10</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>11100091.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>99999900.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>999.999000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>20.500000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>20.600000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>0.090000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-01-24T13:29:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>33264000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Firmware version</Quantity>
|
||||
<Value>19.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Software version</Quantity>
|
||||
<Value>45.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>20 00</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
79
test/test-frames/itron_cyble_m-bus_v1.4_cold_water.norm.xml
Normal file
79
test/test-frames/itron_cyble_m-bus_v1.4_cold_water.norm.xml
Normal file
@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>10020380</Id>
|
||||
<Manufacturer>ACW</Manufacturer>
|
||||
<Version>20</Version>
|
||||
<ProductName>Itron CYBLE M-Bus 1.4</ProductName>
|
||||
<Medium>Cold water</Medium>
|
||||
<AccessNumber>161</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>10020380.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>cust. ID</Quantity>
|
||||
<Value> </Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2011-10-25T15:39:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>bat. time</Quantity>
|
||||
<Value>4050.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>453.500000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>453.500000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>00 04 1F</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
79
test/test-frames/itron_cyble_m-bus_v1.4_gas.norm.xml
Normal file
79
test/test-frames/itron_cyble_m-bus_v1.4_gas.norm.xml
Normal file
@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>10020387</Id>
|
||||
<Manufacturer>ACW</Manufacturer>
|
||||
<Version>20</Version>
|
||||
<ProductName>Itron CYBLE M-Bus 1.4</ProductName>
|
||||
<Medium>Gas</Medium>
|
||||
<AccessNumber>154</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>10020387.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>cust. ID</Quantity>
|
||||
<Value> </Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2011-10-25T15:43:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>bat. time</Quantity>
|
||||
<Value>4050.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.260000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.250000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>00 02 1F</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
79
test/test-frames/itron_cyble_m-bus_v1.4_water.norm.xml
Normal file
79
test/test-frames/itron_cyble_m-bus_v1.4_water.norm.xml
Normal file
@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>12000071</Id>
|
||||
<Manufacturer>ACW</Manufacturer>
|
||||
<Version>20</Version>
|
||||
<ProductName>Itron CYBLE M-Bus 1.4</ProductName>
|
||||
<Medium>Water</Medium>
|
||||
<AccessNumber>10</AccessNumber>
|
||||
<Status>30</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>12000071.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>cust. ID</Quantity>
|
||||
<Value>TEST CYBLE</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-01-24T13:43:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>bat. time</Quantity>
|
||||
<Value>4338.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>123.490000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.200000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>10 01 1F</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
139
test/test-frames/itron_integral_mk_maxx.norm.xml
Normal file
139
test/test-frames/itron_integral_mk_maxx.norm.xml
Normal file
@ -0,0 +1,139 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>11817314</Id>
|
||||
<Manufacturer>SLB</Manufacturer>
|
||||
<Version>6</Version>
|
||||
<ProductName>CF Compact / Integral MK MaXX</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>93</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>11817314.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.020000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>21.200000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>21.100000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>0.070000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>34300800.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-01-24T14:17:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>1.230000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>3.210000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Firmware version</Quantity>
|
||||
<Value>3.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Software version</Quantity>
|
||||
<Value>18.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>00 16</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
75
test/test-frames/kamstrup_382_005.norm.xml
Normal file
75
test/test-frames/kamstrup_382_005.norm.xml
Normal file
@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>14839120</Id>
|
||||
<Manufacturer>KAM</Manufacturer>
|
||||
<Version>1</Version>
|
||||
<ProductName>Kamstrup 382 (6850-005)</ProductName>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>4</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>On time</Quantity>
|
||||
<Value>32400.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
259
test/test-frames/kamstrup_multical_601.norm.xml
Normal file
259
test/test-frames/kamstrup_multical_601.norm.xml
Normal file
@ -0,0 +1,259 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>6855817</Id>
|
||||
<Manufacturer>KAM</Manufacturer>
|
||||
<Version>8</Version>
|
||||
<ProductName>Kamstrup Multical 601</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>4</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>6855817.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>37351000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>561.080000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>On time</Quantity>
|
||||
<Value>3546000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>101.690000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>46.160000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>55.530000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>34700.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>44800.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.543000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.628000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>3</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2011-01-05T15:26:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>33361000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>500.980000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>55000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="20">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>1.027000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="21">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="22">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="23">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="24">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="25">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>3</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="26">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2010-12-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="27">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>00 00 00 00 E7 E4 00 00 63 66 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5B C9 A5 02 34 53 00 00 E0 B2 03 00 89 9C 68 00 00 00 00 00 01 00 01 07 07 09 01 03 00 00 00 00 00</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
327
test/test-frames/landis+gyr_ultraheat_t230.norm.xml
Normal file
327
test/test-frames/landis+gyr_ultraheat_t230.norm.xml
Normal file
@ -0,0 +1,327 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>66660205</Id>
|
||||
<Manufacturer>LUG</Manufacturer>
|
||||
<Version>7</Version>
|
||||
<ProductName>Landis & Gyr Ultraheat T230</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>1</AccessNumber>
|
||||
<Status>10</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Actuality Duration</Quantity>
|
||||
<Value>4.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Averaging Duration</Quantity>
|
||||
<Value>8.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>19.500000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>19.700000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>-0.200000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>66660205.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Averaging Duration</Quantity>
|
||||
<Value>420.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>On time</Quantity>
|
||||
<Value>13568400.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>On time</Quantity>
|
||||
<Value>13568400.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>5</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>30.700000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>50.700000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="20">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="21">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>41065374.600000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="22">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>40953732.300000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="23">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="24">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="25">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>On time</Quantity>
|
||||
<Value>12488400.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="26">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Operating time</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="27">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>5</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="28">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="29">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="30">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>30.700000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="31">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>50.700000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="32">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>510</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2127-01-01T00:00:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="33">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-01-13T12:04:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="34">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>09 07 00 66 01</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
@ -72,7 +72,7 @@
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Temperature Difference (1e-1 deg C)</Unit>
|
||||
<Value>1500002</Value>
|
||||
<Value>F00002</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
|
23
test/test-frames/manual_frame2.norm.xml
Normal file
23
test/test-frames/manual_frame2.norm.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>12345678</Id>
|
||||
<Medium>Water</Medium>
|
||||
<AccessNumber>10</AccessNumber>
|
||||
<Status>00</Status>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Actual value</Function>
|
||||
<Unit>l</Unit>
|
||||
<Value>1</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Actual value</Function>
|
||||
<Unit>reserved but historic</Unit>
|
||||
<Value>135</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
43
test/test-frames/manual_frame3.norm.xml
Normal file
43
test/test-frames/manual_frame3.norm.xml
Normal file
@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>12345678</Id>
|
||||
<Manufacturer>PAD</Manufacturer>
|
||||
<Version>1</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Water</Medium>
|
||||
<AccessNumber>85</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>12.565000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>5</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.113000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>218370.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
23
test/test-frames/manual_frame7.norm.xml
Normal file
23
test/test-frames/manual_frame7.norm.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>12345678</Id>
|
||||
<Manufacturer>PAD</Manufacturer>
|
||||
<Version>1</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Water</Medium>
|
||||
<AccessNumber>19</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>1020304.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
95
test/test-frames/metrona_pollutherm.norm.xml
Normal file
95
test/test-frames/metrona_pollutherm.norm.xml
Normal file
@ -0,0 +1,95 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>44950146</Id>
|
||||
<Manufacturer>SPX</Manufacturer>
|
||||
<Version>52</Version>
|
||||
<ProductName>Sensus PolluTherm</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>84</AccessNumber>
|
||||
<Status>10</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>44950146.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Customer location</Quantity>
|
||||
<Value>44950146.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>More records follow</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value></Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
379
test/test-frames/metrona_ultraheat_xs.norm.xml
Normal file
379
test/test-frames/metrona_ultraheat_xs.norm.xml
Normal file
@ -0,0 +1,379 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>1810054</Id>
|
||||
<Manufacturer>LUG</Manufacturer>
|
||||
<Version>2</Version>
|
||||
<ProductName>Landis & Gyr Ultraheat 2WR5</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>15</AccessNumber>
|
||||
<Status>10</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Actuality Duration</Quantity>
|
||||
<Value>4.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Averaging Duration</Quantity>
|
||||
<Value>4.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>19969000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>26492.180000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>K</Unit>
|
||||
<Quantity>Temperature difference</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>26492.180000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>19969000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>65110054.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>Averaging Duration</Quantity>
|
||||
<Value>3600.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>31600.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>31600.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>8.820000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>44.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>40.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>On time</Quantity>
|
||||
<Value>252241200.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>On time</Quantity>
|
||||
<Value>185792400.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="20">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>On time</Quantity>
|
||||
<Value>172141200.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="21">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2000-01-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="22">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="23">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>3</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="24">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>4</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="25">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="26">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>3</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="27">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Tariff>4</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="28">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>36.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="29">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>40.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="30">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="31">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>1</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="32">
|
||||
<Function>Value during error state</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>s</Unit>
|
||||
<Quantity>On time</Quantity>
|
||||
<Value>185274000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="33">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>19969000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="34">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>2</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="35">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>3</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="36">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>4</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="37">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>26492.180000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="38">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-06-07T00:38:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="39">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>03 02 00 00 23</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
335
test/test-frames/minol_minocal_c2.norm.xml
Normal file
335
test/test-frames/minol_minocal_c2.norm.xml
Normal file
@ -0,0 +1,335 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>31425084</Id>
|
||||
<Manufacturer>ZRM</Manufacturer>
|
||||
<Version>129</Version>
|
||||
<ProductName>Minol Minocal C2</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>36</AccessNumber>
|
||||
<Status>27</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Error flags</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>8</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2013-01-01T00:00:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>8</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>10</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.073000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.043000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2011-09-01T08:30:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>2000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2011-09-01T08:30:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>20.090000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>19.270000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-01-13T11:53:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2012-01-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>33</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2011-12-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>33</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>34</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2011-11-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="20">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>34</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="21">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>35</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2011-10-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="22">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>35</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>3000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="23">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>36</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2011-09-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="24">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>36</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="25">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>37</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2011-08-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="26">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>37</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="27">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>38</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2011-07-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="28">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>38</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="29">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>39</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2011-06-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="30">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>39</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="31">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2012-01-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="32">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.001000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="33">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
285
test/test-frames/minol_minocal_wr3.norm.xml
Normal file
285
test/test-frames/minol_minocal_wr3.norm.xml
Normal file
@ -0,0 +1,285 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>31802759</Id>
|
||||
<Manufacturer>ZRM</Manufacturer>
|
||||
<Version>130</Version>
|
||||
<ProductName>Minol Minocal WR3</ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>43</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.010000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>8</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>9</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-01-01T00:00:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-01-13T11:30:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.010000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2011-03-24T07:30:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit></Unit>
|
||||
<Quantity>(Enhanced) Identification</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit></Unit>
|
||||
<Quantity>Medium</Quantity>
|
||||
<Value>7.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.001000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>9</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.001000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit></Unit>
|
||||
<Quantity>(Enhanced) Identification</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.001000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit></Unit>
|
||||
<Quantity>Medium</Quantity>
|
||||
<Value>7.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>10</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.001000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="20">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Error flags</Quantity>
|
||||
<Value>4.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="21">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2012-01-13T12:01:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="22">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2012-01-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="23">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="24">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>1</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.001000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="25">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>2</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.001000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="26">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2012-01-01</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="27">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="28">
|
||||
<Function>Maximum value</Function>
|
||||
<StorageNumber>32</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
71
test/test-frames/nzr_dhz_5_63.norm.xml
Normal file
71
test/test-frames/nzr_dhz_5_63.norm.xml
Normal file
@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>30100608</Id>
|
||||
<Manufacturer>NZR</Manufacturer>
|
||||
<Version>1</Version>
|
||||
<ProductName>NZR DHZ 5/63</ProductName>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>1</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>1274.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>1274.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>V</Unit>
|
||||
<Quantity>Voltage</Quantity>
|
||||
<Value>237.200000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>A</Unit>
|
||||
<Quantity>Current</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>30100608.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>0E</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
39
test/test-frames/oms_frame1.norm.xml
Normal file
39
test/test-frames/oms_frame1.norm.xml
Normal file
@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>12345678</Id>
|
||||
<Manufacturer>ELS</Manufacturer>
|
||||
<Version>51</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Gas</Medium>
|
||||
<AccessNumber>42</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>28504.270000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2008-05-31T23:50:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Error flags</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
55
test/test-frames/oms_frame2.norm.xml
Normal file
55
test/test-frames/oms_frame2.norm.xml
Normal file
@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>92752244</Id>
|
||||
<Manufacturer>HYD</Manufacturer>
|
||||
<Version>41</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Water</Medium>
|
||||
<AccessNumber>31</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>2850.427000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.127000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>1445.419000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2007-12-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Error flags</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
87
test/test-frames/oms_frame3.norm.xml
Normal file
87
test/test-frames/oms_frame3.norm.xml
Normal file
@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>12345678</Id>
|
||||
<Manufacturer>HYD</Manufacturer>
|
||||
<Version>42</Version>
|
||||
<ProductName></ProductName>
|
||||
<Medium>Heat: Outlet</Medium>
|
||||
<AccessNumber>38</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>2850427000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>703.476000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>Wh</Unit>
|
||||
<Quantity>Energy</Quantity>
|
||||
<Value>1445419000.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2007-12-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3/h</Unit>
|
||||
<Quantity>Volume flow</Quantity>
|
||||
<Value>0.127000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>W</Unit>
|
||||
<Quantity>Power</Quantity>
|
||||
<Value>329.700000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Flow temperature</Quantity>
|
||||
<Value>44.300000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>°C</Unit>
|
||||
<Quantity>Return temperature</Quantity>
|
||||
<Value>25.100000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Error flags</Quantity>
|
||||
<Value>0.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
311
test/test-frames/ram_modularis.norm.xml
Normal file
311
test/test-frames/ram_modularis.norm.xml
Normal file
@ -0,0 +1,311 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>25776</Id>
|
||||
<Manufacturer>RAM</Manufacturer>
|
||||
<Version>3</Version>
|
||||
<ProductName>Rossweiner ETK/ETW Modularis</ProductName>
|
||||
<Medium>Water</Medium>
|
||||
<AccessNumber>139</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>10.116000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date & time)</Quantity>
|
||||
<Value>2013-10-18T21:40:00Z</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-09-28</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>8.393000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>1</StorageNumber>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2014-09-28</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity>Fabrication No</Quantity>
|
||||
<Value>25776.000000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-09-30</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>2</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>8.527000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>3</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2012-10-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>3</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>99999.995000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>4</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2012-11-30</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>4</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>99999.993000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>5</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2012-12-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>5</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>0.782000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>6</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-01-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>6</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>1.929000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>7</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-02-28</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>7</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>3.092000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>8</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-03-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>8</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>4.661000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="20">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>9</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-04-30</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="21">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>9</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>4.767000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="22">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>10</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-05-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="23">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>10</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>5.124000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="24">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>11</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-06-30</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="25">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>11</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>5.176000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="26">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>12</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-07-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="27">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>12</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>5.246000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="28">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>13</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>-</Unit>
|
||||
<Quantity>Time point (date)</Quantity>
|
||||
<Value>2013-08-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="29">
|
||||
<Function>Instantaneous value</Function>
|
||||
<StorageNumber>13</StorageNumber>
|
||||
<Tariff>0</Tariff>
|
||||
<Device>0</Device>
|
||||
<Unit>m^3</Unit>
|
||||
<Quantity>Volume</Quantity>
|
||||
<Value>5.668000</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="30">
|
||||
<Function>Manufacturer specific</Function>
|
||||
<StorageNumber>0</StorageNumber>
|
||||
<Unit></Unit>
|
||||
<Quantity></Quantity>
|
||||
<Value>01 00 00</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user