157 Commits

Author SHA1 Message Date
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
Aarno Aukia
f42c56f19c fix 2nd address scanning bug, add some comments
code merge from arska/libmbus without debug
2013-11-07 11:14:15 +01:00
Stefan Wahren
0d9f83ba88 Extend XML output with storage number, tariff and device 2013-11-07 00:32:01 +01:00
Stefan Wahren
e1ca652bf0 Extend mbus_record with storage number, tariff and device 2013-11-07 00:31:03 +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
3aa81cfb23 Add DIF extension bit masks 2013-11-06 10:15:15 +01:00
Stefan Wahren
7f00f72b69 Add missing VIF=7Eh / FEh 2013-11-01 17:17:57 +01:00
Stefan Wahren
6021f3cc65 Fix VIF extension mappings for VIF=0FBh 2013-11-01 17:13:49 +01:00
Stefan Wahren
4b82502c06 Add product name mapping for GMC-I EMMOD206 2013-10-31 23:01:06 +01:00
Stefan Wahren
9d84318631 Add manufacturer ID for GMC 2013-10-31 22:59:59 +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
663642b7ec Adopt retransmission for secondary address probing 2013-10-19 13:56:58 +02:00
Stefan Wahren
e6173103e2 Avoid unnecessary data request in mbus_read_slave 2013-10-19 13:43:00 +02:00
Stefan Wahren
31016929bc Seperate retransmission maximum in two parameters
one for data requests and another for search requests
- add new handle member for max search retransmission
- set default maximum for search retransmission to one
- rename define for retransmission option
2013-10-18 20:15:53 +02:00
Stefan Wahren
7ca329ee40 Add product name mapping for Rossweiner Modularis 2013-10-18 17:32:22 +02:00
Stefan Wahren
28b73bf9d8 Add manufacturer ID for Rossweiner 2013-10-17 13:45:45 +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
9e23818152 Add new function to send a user data packet from master to slave 2013-10-13 14:52:45 +02:00
Stefan Wahren
d5f06ec910 Replace magic number for M-Bus frame data length with define 2013-10-05 10:38:07 +02:00
Stefan Wahren
55d4c0fba2 Remove trailing whitespace
Signed-off-by: Stefan Wahren <info@lategoodbye.de>
2013-09-13 17:53:33 +02:00
Robert Johansson
654905a94d bug fix in timeout config 2013-08-30 00:20:35 +09:00
Robert Johansson
fd5c9adffb made it possible to configure the TCP read timeout parameter 2013-08-30 00:05:22 +09: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
5160a10211 fixed warning 2013-07-04 23:59:41 +09: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
dcc9e2c2b4 fix indent 2013-07-03 20:52:27 +02:00
Stefan Wahren
7b897494fd Improve wildcard search
- handle collisions after request for secondary address
- check frame type correctly
- ignore M-Bus devices without secondary address
2013-07-03 20:46:47 +02: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
e1164c87c9 error message if secondary address generation fails 2013-07-03 22:20:44 +09:00
Robert Johansson
31f17ab4c2 use error_str instead of direct console output 2013-07-03 22:18:06 +09:00
Robert Johansson
973cc7ba30 use MBUS_ERROR instead of fprintf(stderr 2013-07-03 22:11:13 +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
687ea60f54 Fixed correction in mbus_vib_unit_normalize 2013-06-09 23:14:08 +02:00
Stefan Wahren
d7168a4ea4 Fix return value and error message 2013-05-13 08:47:19 +02:00
Stefan Wahren
858aea33ab add more checks in lower layers
to avoid segmentation faults, out of bounds access and integer overflow
make parseable for splint
suppress splint warnings about datatype cc_t
fix type of return value for read()
add checks before accessing tty
2013-05-13 08:41:38 +02:00
Stefan Wahren
4d85dad403 change TCP port datatype from int to uint16_t
because int doesn't match the range
add range check in every TCP binary
2013-05-12 21:26:38 +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
Stefan Wahren
ee209023b8 fix memleaks
avoid memleak if memory is full
fix "memleak" at the end of mbus_parse_hex
2013-05-04 19:17:27 +02:00
Stefan Wahren
3935b4013e make parseable for splint
- replace non standard u_char with unsigned char (ANSI)
- advice splint to ignore variadic macros
- move declarations from the middle to top of functions (C90)
- replace local library includes <> to ""
2013-05-04 18:14:18 +02:00
Stefan Wahren
0d6bb583c2 add missing initialization (thanks to valgrind) 2013-05-03 17:23:18 +02:00
Stefan Wahren
e1657399ff add new function to send application reset incl. subcode
fix typo in comment
add new program to test experimental feature application reset
add mbus-tcp-application-reset to build process
2013-04-27 13:16:44 +02:00