59 Commits

Author SHA1 Message Date
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
55d4c0fba2 Remove trailing whitespace
Signed-off-by: Stefan Wahren <info@lategoodbye.de>
2013-09-13 17:53:33 +02:00
Robert Johansson
5160a10211 fixed warning 2013-07-04 23:59:41 +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
Robert Johansson
e1164c87c9 error message if secondary address generation fails 2013-07-03 22:20:44 +09:00
Robert Johansson
973cc7ba30 use MBUS_ERROR instead of fprintf(stderr 2013-07-03 22:11:13 +09:00
Stefan Wahren
687ea60f54 Fixed correction in mbus_vib_unit_normalize 2013-06-09 23:14:08 +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
Stefan Wahren
5500db0898 add missing checks after memory allocation
add missing memset after memory allocation
2013-04-11 22:05:08 +02:00
Stefan Wahren
b1063db3bc replace magic numbers with defines
fix MBUS_MAX_PRIMARY_SLAVES to 250
2013-03-02 18:03:31 +01:00
Stefan Wahren
61fd2aa1c7 add new helper functions to check primary and secondary addresses 2012-12-31 13:37:17 +01:00
Stefan Wahren
404e245af5 replace magic number with define 2012-12-20 20:42:10 +01:00
Stefan Wahren
9b94df16b9 - add new type for context options
- add new function mbus_context_set_option to set context specific
options like retransmission or echo cancelation
2012-12-11 20:22:26 +01:00
Stefan Wahren
72868fdc3f add a new helper function ( mbus_hex2bin ) to convert hex values
into binary values
2012-12-10 21:16:46 +01:00
Stefan Wahren
cfa35db086 Fixed potential segmentation fault 2012-10-22 23:35:45 +02:00
Stefan Wahren
bc2c85c378 Add custom VIFE handling with a corrective factor (from Jakob
Skov-Pedersen)
2012-10-21 11:21:07 +02:00
Stefan Wahren
fef774d98d Purge behavior as new context parameter (default = purge master to
slave)
2012-10-04 22:33:22 +02:00
Stefan Wahren
78f16f0248 New defines for purge behavior (echo cancelation) 2012-10-04 22:30:53 +02:00
Stefan Wahren
af80dda0d8 Revert "Extend mbus_recv_frame with simple echo cancelation"
This reverts commit 169e37d360f5782dbbfe8bf9ccb5877cb6af7fb9.
2012-10-03 23:25:10 +02:00
Stefan Wahren
169e37d360 Extend mbus_recv_frame with simple echo cancelation 2012-10-03 23:06:11 +02:00
Stefan Wahren
564483e092 new error message in case of unknown vif 2012-09-15 02:11:14 +02:00
Stefan Wahren
b55d038899 fixed typo in vif list 2012-09-15 02:06:08 +02:00
Stefan Wahren
1a538e73aa New parameter for mbus_send_ping_frame to purge response 2012-09-01 22:51:44 +02:00
Stefan Wahren
d2608d5de7 add allocation error handling 2012-09-01 22:14:21 +02:00
Stefan Wahren
5467679f66 Reset retry counter after valid frame to be conform with M-Bus
documentation
2012-07-19 21:08:07 +02:00
Stefan Wahren
08a4c55443 - Initialize maximum retry counter to 3 for serial and tcp connections
- Retransmit request frame (just for mbus_sendrecv_request) in case of
timeout or invalid response
2012-07-14 16:22:25 +02:00
Stefan Wahren
e6a52f97ea Replaced magic resultcodes from mbus_recv_frame with defines 2012-07-11 23:33:52 +02:00
jakubovsky
b95f29fcc8 mbus_connect() and mbus_disconnect() return 0 on success and -1 otherwise 2012-07-09 12:33:32 +02:00
jakubovsky
5f9052b284 Renamed mbus_recv_frame_dummy() to more descriptive mbus_purge_frames() 2012-07-09 10:48:13 +02:00
jakubovsky
e70c07e8f3 TCP and serial specific data structs renamed. 2012-07-06 11:29:46 +02:00
jakubovsky
6b2d43617f Merge remote-tracking branch 'upstream/master' 2012-07-06 11:14:47 +02:00
jakubovsky
ec50ab9286 Examples from bin directory updated. API usage updated in mbus-protocol-aux.h. 2012-07-04 19:49:54 +02:00
jakubovsky
34255c7237 free_auxdata() added to mbus_handle interface for freeing context specific data 2012-07-04 19:08:51 +02:00
jakubovsky
c848090f56 Rebuilding M-Bus context structs in progress
- changed local library file includes from <> to ""
- get rid of 'if (is_serial)' conditions
- mbus_context_serial() and mbus_context_tcp() allocates memory and initialize context specific function pointers
- simply mbus_connect() called instead of mbus_connect_tcp() or mbus_connect_serial()
- context specific data can still be accessed via (void* auxdata) pointer
- strdup(3) to copy host IP into TCP context struct
2012-07-04 17:18:36 +02:00
jakubovsky
9f9e0fc008 Fixed mbus_recv_frame() return value to -1 when invalid m-bus handle 2012-07-03 17:17:10 +02:00
jakubovsky
5d079254cc Extended mbus_recv_frame() error codes, improved collision handling
- handling TCP connection reset and read(2) timeout
2012-07-03 14:35:07 +02:00
Stefan Wahren
0d610b6a27 - fixed check of mbus_sendrecv_request and mbus_recv_frame
- initialize memory in mbus_sendrecv_request
- used defines for special address instead of magic numbers
2012-06-20 00:21:28 +02:00
Stefan Wahren
bf12395af9 Fixed segmentation fault in case of much XML output
Because of the multi telegrams it is impossible to use a fixed
buffer for XML output on the stack. Now the buffer is allocated on the
heap. These also leads to a change in return behaviour for all XML
functions, because it's possible that the buffer is NULL. For variable
data this buffer grows every time there are less than 1024 bytes left
for a new record.
2012-05-29 21:24:30 +02:00
Stefan Wahren
0cb23161e7 Added receive timestamp for each data record in XML output 2012-05-29 20:17:05 +02:00
Stefan Wahren
ef630f2e5d Added a new function to select a device by it's secondary address 2012-05-20 03:52:15 +02:00
Stefan Wahren
d12d7dd052 Fixed bug in multi telegram readout with secondary address
- init slave before selecting secondary address
2012-05-20 03:44:06 +02:00
Stefan Wahren
03d4876425 New events for wildcard search 2012-05-20 02:52:11 +02:00
Stefan Wahren
c6031f3287 Added missing header file 2012-05-20 02:39:29 +02:00