Fredrik Skold
67ea2d3900
Implement all of VIF extensions for 0xFB ( #166 )
2020-07-08 11:31:13 +02:00
Anders Wennmo
5b26e62f55
Implement all of VIF extensions for 0xFD ( #166 )
2020-07-08 11:31:13 +02:00
Stefan Wahren
17a73287c2
Improve BCD decoding ( #167 )
...
* Introduce mbus_data_bcd_decode_hex
The convert function mbus_data_bcd_decode (BCD to decimal) suffers from
information loss in case of hexacimal digits. So introduce a new function
mbus_data_bcd_decode_hex (BCD to hexadecimal), which isn't affected and
use this for default XML output. But keep mbus_data_bcd_decode for
normalized output.
2020-06-28 10:28:40 +02:00
Fabian Pflug
23d8ee4844
Added more medium definitions according to DIN EN 13757-7:2018-06 ( #162 )
2020-06-05 13:12:44 +02:00
Fabian Pflug
643022388d
Add product strings for Sensoco devices ( #161 )
2020-06-05 13:05:43 +02:00
lvogt
62ac3678ff
Fix prefixes ( #148 )
2019-07-08 10:38:20 +02:00
Stefan Wahren
36a85d3737
Add product string of Hydrometer Sharky 775
2019-02-20 22:01:47 +01:00
Stefan Wahren
2f9fa5ccc8
Implement negative BCD number (Type A)
...
According to W4B21021.pdf Appendix A a hex code Fh in the MSD
position signals a negative BCD number.
2019-02-20 22:01:47 +01:00
Ingo Fischer
2a2fbc372a
make generated timestamps conform to ISO definition
2018-03-28 14:26:06 +02:00
Stefan Wahren
87e3c22f85
Implement Type I CP48 (date and time)
2016-07-23 09:38:41 +00:00
Stefan Wahren
094c9ef453
Fix year handling in mbus_data_tm_decode
...
According to ANSI C the member tm_year saves the years since
1900.
2016-07-23 09:38:14 +00:00
strongly-typed
0e5b5b46a8
Fix regression with XML output.
...
Copy-paste error from 9edcc44.
Spotted with `cd test && ./generate-xml.sh test-frames`
--- test-frames/manual_frame2.xml 2016-05-09 00:19:44.000000000 +0200
+++ test-frames/manual_frame2.xml.new 2016-05-09 01:09:09.000000000 +0200
@@ -17,7 +17,7 @@
<DataRecord id="1">
<Function>Actual value</Function>
<Unit>reserved but historic</Unit>
- <Value>135</Value>
+ <Value>1</Value>
</DataRecord>
</MBusData>
2016-05-09 01:11:23 +02:00
Stefan Wahren
9edcc44eeb
Fix several format string issues
2016-04-01 19:20:00 +00:00
Stefan Wahren
9906723447
Fix IEEE754 conversion
...
It seems that the endianness handling was broken in
ef6c4be655c ("Safer IEEE754 conversion."). So drop it.
2016-04-01 18:19:32 +00:00
Aarno Aukia
b6cbb1de1e
merge rscada/master with arska/feature-ignoretestbinaries
2016-03-25 23:20:34 +01:00
Aarno Aukia
b9b131d064
Order device detection by manufacurer
...
merging ELS so that TMP-A is detected again
2016-02-08 14:06:24 +01:00
Stefan Wahren
ed87f62a87
Add product strings for devices from ABB, Elster and Relay
...
This patch adds product identification for:
* ABB Delta-Meter
* Elster Falcon
* Relay PadPuls M1
* Relay PadPuls M4
* Relay Padin 4
* Relay AnDi 4
* Relay PadPuls M2
2016-02-06 12:04:13 +00:00
Aarno Aukia
eaeb6e5502
retab and remove trailing whitespace
2016-02-05 14:42:16 +01:00
Stefan Wahren
8b1c012a91
Add product strings of Janitza UMG 96S
2016-02-02 18:57:57 +00:00
Stefan Wahren
db40010b93
Add product strings of Berg DCMi, BLMi and BMB-10S0
2016-01-31 18:09:21 +00:00
Stefan Wahren
04eae740b4
Add product strings of Carlo Gavazzi EM21,EM24,EM33
2016-01-31 18:00:02 +00:00
Stefan Wahren
0927f23ee7
Let mbus_str_xml_encode return a resultcode
2016-01-31 17:55:09 +00:00
Stuart Longland
ef6c4be655
Safer IEEE754 conversion.
...
The conversion given assumed two things:
1. the pointer was either 32-bit aligned or that unaligned word access
was safe. (Not the case on ARM)
We avoid this by using memcpy to copy to a buffer that *is*
32-bit-word-aligned.
2. the word was in native-endian format.
The original code appeared to assume the given word would be in
big-endian format (aka "network" byte order), so we convert it to the
host's native format before casting.
We re-instate the original implementation, controlled by a compiler
switch to allow easy rollback if problems are encountered.
2015-12-03 08:08:22 +10:00
jakubovsky
583a397e8e
Needless math.h include
2015-12-03 07:52:23 +10:00
jakubovsky
7e1be93dbd
Needless IEEE754 conversion, float pointer cast instead
2015-12-03 07:51:26 +10:00
Dirk Zenker
5f0b5d5dd1
Beautify: replace tabs with spaces and remove trailing spaces
2014-02-24 15:20:42 +01:00
Dirk Zenker
f47caf151e
add manufacturer id / product string of some meters:
...
Aquametro CALEC MB
Aquametro CALEC ST
Elster SensoStar 2
Elster F96 Plus
Elster F4
EMU Professional 3/75 M-Bus
Deltamess F2
Sensus PolluTherm
Sensus PolluStat E
NZR IC-M2
Saia-Burgess ALE3
Saia-Burgess AWD3
2014-02-24 11:22:40 +01:00
Dirk Zenker
781736fe4c
add codepage to XML output
2014-02-24 11:02:26 +01:00
Dirk Zenker
8197874fe7
bugfix, the functions
...
mbus_data_record_storage_number()
mbus_data_record_tariff()
mbus_data_record_device()
did return bogus random values, because of uninitialized variables
2014-02-20 11:26:31 +01:00
Michael Heimpold
f262138572
mbus_manufacturer_id: add error checking code
...
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
2014-01-18 20:43:57 +01:00
Michael Heimpold
0fccc0e337
Add a function to calculate the manufacturer ID from the 3 byte ASCII
...
code. The formula can be found at http://www.m-bus.com/files/w4b21021.pdf ,
chapter 3.3 at page 6.
This obsoletes the static defines, so remove them.
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
2014-01-18 13:44:01 +01:00
Stefan Wahren
0d9f83ba88
Extend XML output with storage number, tariff and device
2013-11-07 00:32:01 +01:00
Stefan Wahren
58778ba9bc
Add functions to decode storage number, tariff and device from DIF
2013-11-07 00:24:11 +01:00
Stefan Wahren
d79cb1c998
Fix BCD decoding bug
2013-11-07 00:13:56 +01:00
Stefan Wahren
e9d39d4708
Extend DIF debug output (storage number LSB)
...
Fix DIFE debug output (storage number, tariff, device unit)
Fix typos in comments
Replace magic bit masks with defines
2013-11-06 11:11:43 +01:00
Stefan Wahren
4b82502c06
Add product name mapping for GMC-I EMMOD206
2013-10-31 23:01:06 +01:00
Stefan Wahren
6afe7a10dc
fix wrong decoding of integer / type B (now handle signedness correctly)
...
separate result code und decoded value for integer decoding (new
parameter)
refactor variable names
2013-10-31 22:25:34 +01:00
Stefan Wahren
7ca329ee40
Add product name mapping for Rossweiner Modularis
2013-10-18 17:32:22 +02:00
Stefan Wahren
0cf57bfc35
Move event handling from global variable to handle
...
- remove global event function pointer
- add event function pointer to handle structure
- add handle parameter to register functions
- move all register functions to mbus-protocol-aux.c
2013-10-13 21:49:40 +02:00
Stefan Wahren
55d4c0fba2
Remove trailing whitespace
...
Signed-off-by: Stefan Wahren <info@lategoodbye.de>
2013-09-13 17:53:33 +02:00
Stefan Wahren
d9dd055bea
Fix mbus_vib_unit_lookup
...
remove unreachable code
add missing unit password
fix typo
Signed-off-by: Stefan Wahren <info@lategoodbye.de>
2013-08-03 16:35:09 +02:00
Robert Johansson
5b83cad8fb
only show timestamp in XML output if it is set (not all frames that goes into mbus_parse passes through timestamp), to avoid a lot of '<Timestamp>1970-01-01T00:00:00</Timestamp>'
2013-07-04 23:47:06 +09:00
Robert Johansson
1fee3d9a5a
bug fix: don't assume that frame->next is zeroed before mbus_parse is called
2013-07-04 23:30:27 +09:00
Stefan Wahren
70f23567a8
fix potential segmentation fault
2013-07-03 20:36:43 +02:00
Stefan Wahren
551176911f
fix memory leaks in error case
2013-07-03 20:34:30 +02:00
Stefan Wahren
8dd1d4e4ae
bugfix for +1 error in VIFE parser
...
now VIFE and DIFE behave equal
2013-07-03 20:30:20 +02:00
Robert Johansson
88b2b9fafa
bugfix in VIFE parser
2013-07-03 22:50:03 +09:00
Robert Johansson
31f17ab4c2
use error_str instead of direct console output
2013-07-03 22:18:06 +09:00
Stefan Wahren
dd56a08811
Improve data parsing
...
- add length defines for variable data header and fixed data
- add size check for fixed data
- avoid problems with memory alignment / padding in mbus structures
(improve portability)
- abort parsing if there are too many DIFE or VIFEs
- check for premature end of variable data
- check size of variable length VIF
2013-06-22 11:50:36 +02:00
Stefan Wahren
c59e763a84
minor fixes
...
remove unreachable code
add parameter checks to mbus_data_bcd_encode
init time structure in mbus_data_tm_decode as possible
mark falltrough for splint
remove unused variable val
fix removed realloc
2013-05-04 22:43:23 +02:00