CMi6140
User’s Manual English
CMi6140
User’s Manual English
page | 26 (38)
[2022-09]
V1.2
Other values
•
(Base) Unit
is not used, since the unit is specified by the M-Bus data
•
An “Encoder Version field” is used in a separate record to define the type and version of the
encoded payload data.
Additional Records
All records in the SenML pack are expected to contain measurement values. If there is a need for
transmitting additional information in the same pack additional records can be added. For such records
the name field shall be used by defining a name of at least a single character. In SenML the
base name
and the
name
fields are appended to result in the final record name.
The
name
shall contain at least one character outside [A-Fa-f0-9] which signifies non-hexadecimal
representation, since meter-id is typically decimal/hexadecimal, and this makes it easier to check the
record name for validity.
If a parser finds a record with a
name
field like described above that it does not recognize it shall ignore
the record.
The following additional records are currently used
Record
Name field
Comment
Encoder Type &
Version
”V”
This field allows defining versions for the
contents of the measurement field.
Encoder Type & Versioning
The following table defines allowed encoder types and versions. The information is sent in a special
record
“Encoder Version field”.
•
This field encapsulates both the encoding of the data and versioning
•
It contains no timestamp
•
It is encoded as a SenML Value
•
It has a
Name
field with the single letter “V”
•
If, when parsing, an invalid version is encountered the parsing shall stop with an error
•
The value shall be interpreted as an UINT16
o
The first byte is the
encoder
type and the second is the encoder
version
, both interpreted
as UINT8.
o
Example:
value 0x0102 means Encoder type 0x01 and Encoder version 0x02.
o
Defined valid encoder types and versions are found in a table below on this page
o
Size of whole record is maximum 7 bytes
o
If we ever need to extend this beyond 256 encoder types or versions, we could use an
UINT32 and let the least significant byte overlap with the definition above and thus
simply extend encoder type and version to use UINT16 instead of UINT8
•
If record is excluded,
encoder
type is 0 and
encoder
version is 0
Record
Name field
Data
Comment
0 (M-Bus)
0
0x0000 M-Bus encoding of payload data. Each data record contains all
DIF/VIF/Values according to M-Bus.
Note that M-Bus uses LSB first byte order for the data and it
shall be preserved here as well.