Commit 7ac79f0a947e8f7eb9990c1388a6400293108579
1 parent
e48f66e0
Removed glib dependency
Showing
6 changed files
with
60 additions
and
75 deletions
TODO
| @@ -8,7 +8,6 @@ Cleanups | @@ -8,7 +8,6 @@ Cleanups | ||
| 8 | * split compute_response_size to reuse | 8 | * split compute_response_size to reuse |
| 9 | * split modbus.c (tcp/rtu, query/response) | 9 | * split modbus.c (tcp/rtu, query/response) |
| 10 | * t_id in param_msqg | 10 | * t_id in param_msqg |
| 11 | -* drop glib dependency (not sure) | ||
| 12 | * only one build_header_message function to replace build_query_packet/response_packet | 11 | * only one build_header_message function to replace build_query_packet/response_packet |
| 13 | 12 | ||
| 14 | Documentation | 13 | Documentation |
configure.ac
| @@ -10,14 +10,6 @@ AC_PROG_CC | @@ -10,14 +10,6 @@ AC_PROG_CC | ||
| 10 | AC_PROG_MAKE_SET | 10 | AC_PROG_MAKE_SET |
| 11 | AC_PROG_LIBTOOL | 11 | AC_PROG_LIBTOOL |
| 12 | 12 | ||
| 13 | -# Checks for libraries. | ||
| 14 | -AM_PATH_GLIB_2_0(2.0.0,,AC_MSG_ERROR(libmodbus needs GLib 2.X)) | ||
| 15 | -PKG_CHECK_MODULES(GLIB, glib-2.0) | ||
| 16 | -AC_SUBST(GLIB_CFLAGS) | ||
| 17 | -AC_SUBST(GLIB_LIBS) | ||
| 18 | -# Optional requirements to report via pkg-config (in modbus.pc) | ||
| 19 | -modbus_pkgdeps="glib-2.0" | ||
| 20 | - | ||
| 21 | # Checks for header files. | 13 | # Checks for header files. |
| 22 | AC_HEADER_STDC | 14 | AC_HEADER_STDC |
| 23 | AC_CHECK_HEADERS([arpa/inet.h fcntl.h netinet/in.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h termio.h termios.h unistd.h]) | 15 | AC_CHECK_HEADERS([arpa/inet.h fcntl.h netinet/in.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h termio.h termios.h unistd.h]) |
modbus.pc.in
| @@ -5,7 +5,7 @@ includedir=@includedir@ | @@ -5,7 +5,7 @@ includedir=@includedir@ | ||
| 5 | 5 | ||
| 6 | Name: modbus | 6 | Name: modbus |
| 7 | Description: ModBus library | 7 | Description: ModBus library |
| 8 | -Requires: @modbus_pkgdeps@ | 8 | +Requires: |
| 9 | Version: @VERSION@ | 9 | Version: @VERSION@ |
| 10 | Libs: -L${libdir} -lmodbus | 10 | Libs: -L${libdir} -lmodbus |
| 11 | Cflags: -I${includedir} | 11 | Cflags: -I${includedir} |
src/Makefile.am
| @@ -3,13 +3,10 @@ libmodbus_la_SOURCES = modbus.c modbus.h | @@ -3,13 +3,10 @@ libmodbus_la_SOURCES = modbus.c modbus.h | ||
| 3 | 3 | ||
| 4 | bin_PROGRAMS = test-modbus-master test-modbus-slave | 4 | bin_PROGRAMS = test-modbus-master test-modbus-slave |
| 5 | test_modbus_master_SOURCES = test-modbus-master.c | 5 | test_modbus_master_SOURCES = test-modbus-master.c |
| 6 | -test_modbus_master_INCLUDES = @GLIB_CFLAGS@ | ||
| 7 | -test_modbus_master_LDADD = libmodbus.la @GLIB_LIBS@ | 6 | +test_modbus_master_LDADD = libmodbus.la |
| 8 | 7 | ||
| 9 | test_modbus_slave_SOURCES = test-modbus-slave.c | 8 | test_modbus_slave_SOURCES = test-modbus-slave.c |
| 10 | -test_modbus_slave_INCLUDES = @GLIB_CFLAGS@ | ||
| 11 | -test_modbus_slave_LDADD = libmodbus.la @GLIB_LIBS@ | 9 | +test_modbus_slave_LDADD = libmodbus.la |
| 12 | 10 | ||
| 13 | -INCLUDES = @GLIB_CFLAGS@ -I$(top_srcdir)/include | ||
| 14 | -LDADD = @GLIB_LIBS@ | 11 | +INCLUDES = -I$(top_srcdir)/include |
| 15 | CLEANFILES = *~ | 12 | CLEANFILES = *~ |
src/modbus.c
| @@ -37,7 +37,6 @@ | @@ -37,7 +37,6 @@ | ||
| 37 | #include <sys/time.h> | 37 | #include <sys/time.h> |
| 38 | #include <unistd.h> | 38 | #include <unistd.h> |
| 39 | #include <errno.h> | 39 | #include <errno.h> |
| 40 | -#include <glib.h> | ||
| 41 | 40 | ||
| 42 | /* TCP */ | 41 | /* TCP */ |
| 43 | #include <sys/types.h> | 42 | #include <sys/types.h> |
| @@ -137,7 +136,7 @@ static void error_treat(int ret, const char *string, modbus_param_t *mb_param) | @@ -137,7 +136,7 @@ static void error_treat(int ret, const char *string, modbus_param_t *mb_param) | ||
| 137 | { | 136 | { |
| 138 | if (ret == -1) | 137 | if (ret == -1) |
| 139 | perror(string); | 138 | perror(string); |
| 140 | - g_print("\n\nERROR %s\n\n", string); | 139 | + printf("\n\nERROR %s\n\n", string); |
| 141 | 140 | ||
| 142 | if (mb_param->type_com == RTU) { | 141 | if (mb_param->type_com == RTU) { |
| 143 | tcflush(mb_param->fd, TCIOFLUSH); | 142 | tcflush(mb_param->fd, TCIOFLUSH); |
| @@ -334,12 +333,10 @@ int check_crc16(modbus_param_t *mb_param, | @@ -334,12 +333,10 @@ int check_crc16(modbus_param_t *mb_param, | ||
| 334 | if (crc_calc == crc_received) { | 333 | if (crc_calc == crc_received) { |
| 335 | ret = 0; | 334 | ret = 0; |
| 336 | } else { | 335 | } else { |
| 337 | - char *s_error; | ||
| 338 | - s_error = g_strdup_printf( | ||
| 339 | - "invalid crc received %0X - crc_calc %0X", | 336 | + char s_error[64]; |
| 337 | + sprintf(s_error, "invalid crc received %0X - crc_calc %0X", | ||
| 340 | crc_received, crc_calc); | 338 | crc_received, crc_calc); |
| 341 | error_treat(0, s_error, mb_param); | 339 | error_treat(0, s_error, mb_param); |
| 342 | - g_free(s_error); | ||
| 343 | ret = INVALID_CRC; | 340 | ret = INVALID_CRC; |
| 344 | } | 341 | } |
| 345 | } else { | 342 | } else { |
| @@ -367,11 +364,11 @@ static int modbus_send(modbus_param_t *mb_param, unsigned char *query, | @@ -367,11 +364,11 @@ static int modbus_send(modbus_param_t *mb_param, unsigned char *query, | ||
| 367 | } | 364 | } |
| 368 | 365 | ||
| 369 | if (mb_param->debug) { | 366 | if (mb_param->debug) { |
| 370 | - g_print("\n"); | 367 | + printf("\n"); |
| 371 | for (i = 0; i < query_size; i++) | 368 | for (i = 0; i < query_size; i++) |
| 372 | - g_print("[%.2X]", query[i]); | 369 | + printf("[%.2X]", query[i]); |
| 373 | 370 | ||
| 374 | - g_print("\n"); | 371 | + printf("\n"); |
| 375 | } | 372 | } |
| 376 | 373 | ||
| 377 | if (mb_param->type_com == RTU) | 374 | if (mb_param->type_com == RTU) |
| @@ -404,7 +401,7 @@ int compute_query_size_header(int function) | @@ -404,7 +401,7 @@ int compute_query_size_header(int function) | ||
| 404 | else | 401 | else |
| 405 | byte = 0; | 402 | byte = 0; |
| 406 | 403 | ||
| 407 | - g_print("compute_query_size_header FC %d, B%d\n", function, byte); | 404 | + printf("compute_query_size_header FC %d, B%d\n", function, byte); |
| 408 | 405 | ||
| 409 | return byte; | 406 | return byte; |
| 410 | } | 407 | } |
| @@ -422,7 +419,7 @@ int compute_query_size_data(modbus_param_t *mb_param, unsigned char *msg) | @@ -422,7 +419,7 @@ int compute_query_size_data(modbus_param_t *mb_param, unsigned char *msg) | ||
| 422 | byte = 0; | 419 | byte = 0; |
| 423 | 420 | ||
| 424 | byte += mb_param->checksum_size; | 421 | byte += mb_param->checksum_size; |
| 425 | - g_print("compute_query_size_data FC %d, B %d\n", function, byte); | 422 | + printf("compute_query_size_data FC %d, B %d\n", function, byte); |
| 426 | 423 | ||
| 427 | return byte; | 424 | return byte; |
| 428 | } | 425 | } |
| @@ -431,7 +428,7 @@ int compute_query_size_data(modbus_param_t *mb_param, unsigned char *msg) | @@ -431,7 +428,7 @@ int compute_query_size_data(modbus_param_t *mb_param, unsigned char *msg) | ||
| 431 | { \ | 428 | { \ |
| 432 | while ((select_ret = select(mb_param->fd+1, &rfds, NULL, NULL, &tv)) == -1) { \ | 429 | while ((select_ret = select(mb_param->fd+1, &rfds, NULL, NULL, &tv)) == -1) { \ |
| 433 | if (errno == EINTR) { \ | 430 | if (errno == EINTR) { \ |
| 434 | - g_print("A non blocked signal was caught\n"); \ | 431 | + printf("A non blocked signal was caught\n"); \ |
| 435 | /* Necessary after an error */ \ | 432 | /* Necessary after an error */ \ |
| 436 | FD_ZERO(&rfds); \ | 433 | FD_ZERO(&rfds); \ |
| 437 | FD_SET(mb_param->fd, &rfds); \ | 434 | FD_SET(mb_param->fd, &rfds); \ |
| @@ -472,9 +469,9 @@ int receive_msg(modbus_param_t *mb_param, | @@ -472,9 +469,9 @@ int receive_msg(modbus_param_t *mb_param, | ||
| 472 | 469 | ||
| 473 | if (mb_param->debug) { | 470 | if (mb_param->debug) { |
| 474 | if (msg_size_computed == MSG_SIZE_UNDEFINED) | 471 | if (msg_size_computed == MSG_SIZE_UNDEFINED) |
| 475 | - g_print("Waiting for a message...\n"); | 472 | + printf("Waiting for a message...\n"); |
| 476 | else | 473 | else |
| 477 | - g_print("Waiting for a message (%d bytes)...\n", msg_size_computed); | 474 | + printf("Waiting for a message (%d bytes)...\n", msg_size_computed); |
| 478 | } | 475 | } |
| 479 | 476 | ||
| 480 | /* Add a file descriptor to the set */ | 477 | /* Add a file descriptor to the set */ |
| @@ -526,7 +523,7 @@ int receive_msg(modbus_param_t *mb_param, | @@ -526,7 +523,7 @@ int receive_msg(modbus_param_t *mb_param, | ||
| 526 | if (mb_param->debug) { | 523 | if (mb_param->debug) { |
| 527 | int i; | 524 | int i; |
| 528 | for (i=0; i < read_ret; i++) | 525 | for (i=0; i < read_ret; i++) |
| 529 | - g_print("<%.2X>", p_msg[i]); | 526 | + printf("<%.2X>", p_msg[i]); |
| 530 | } | 527 | } |
| 531 | 528 | ||
| 532 | if ((*msg_size) < msg_size_computed) { | 529 | if ((*msg_size) < msg_size_computed) { |
| @@ -539,20 +536,20 @@ int receive_msg(modbus_param_t *mb_param, | @@ -539,20 +536,20 @@ int receive_msg(modbus_param_t *mb_param, | ||
| 539 | size_to_read = compute_query_size_header(msg[mb_param->header_length + 1]); | 536 | size_to_read = compute_query_size_header(msg[mb_param->header_length + 1]); |
| 540 | msg_size_computed += size_to_read; | 537 | msg_size_computed += size_to_read; |
| 541 | state = BYTE; | 538 | state = BYTE; |
| 542 | - g_print("\nBYTE:"); | 539 | + printf("\nBYTE:"); |
| 543 | break; | 540 | break; |
| 544 | case BYTE: | 541 | case BYTE: |
| 545 | size_to_read = compute_query_size_data(mb_param, msg); | 542 | size_to_read = compute_query_size_data(mb_param, msg); |
| 546 | msg_size_computed += size_to_read; | 543 | msg_size_computed += size_to_read; |
| 547 | state = COMPLETE; | 544 | state = COMPLETE; |
| 548 | - g_print("\nCOMPLETE:"); | 545 | + printf("\nCOMPLETE:"); |
| 549 | break; | 546 | break; |
| 550 | case COMPLETE: | 547 | case COMPLETE: |
| 551 | size_to_read = 0; | 548 | size_to_read = 0; |
| 552 | break; | 549 | break; |
| 553 | } | 550 | } |
| 554 | } | 551 | } |
| 555 | - g_print(" size to read %d\n", size_to_read); | 552 | + printf(" size to read %d\n", size_to_read); |
| 556 | 553 | ||
| 557 | /* Moves the pointer to receive other datas */ | 554 | /* Moves the pointer to receive other datas */ |
| 558 | p_msg = &(p_msg[read_ret]); | 555 | p_msg = &(p_msg[read_ret]); |
| @@ -571,7 +568,7 @@ int receive_msg(modbus_param_t *mb_param, | @@ -571,7 +568,7 @@ int receive_msg(modbus_param_t *mb_param, | ||
| 571 | } | 568 | } |
| 572 | 569 | ||
| 573 | if (mb_param->debug) | 570 | if (mb_param->debug) |
| 574 | - g_print("\n"); | 571 | + printf("\n"); |
| 575 | 572 | ||
| 576 | /* OK */ | 573 | /* OK */ |
| 577 | return 0; | 574 | return 0; |
| @@ -652,12 +649,10 @@ static int modbus_check_response(modbus_param_t *mb_param, | @@ -652,12 +649,10 @@ static int modbus_check_response(modbus_param_t *mb_param, | ||
| 652 | /* The chances are low to hit this | 649 | /* The chances are low to hit this |
| 653 | case but can avoid a vicious | 650 | case but can avoid a vicious |
| 654 | segfault */ | 651 | segfault */ |
| 655 | - char *s_error; | ||
| 656 | - s_error = g_strdup_printf( | ||
| 657 | - "Invalid exception code %d", | ||
| 658 | - response[offset + 2]); | 652 | + char s_error[64]; |
| 653 | + sprintf(s_error, "Invalid exception code %d", response[offset + 2]); | ||
| 659 | error_treat(0, s_error, mb_param); | 654 | error_treat(0, s_error, mb_param); |
| 660 | - g_free(s_error); | 655 | + free(s_error); |
| 661 | return INVALID_EXCEPTION_CODE; | 656 | return INVALID_EXCEPTION_CODE; |
| 662 | } | 657 | } |
| 663 | } | 658 | } |
| @@ -735,12 +730,12 @@ void manage_query(modbus_param_t *mb_param, unsigned char *query, | @@ -735,12 +730,12 @@ void manage_query(modbus_param_t *mb_param, unsigned char *query, | ||
| 735 | count = (query[offset+4] << 8) + query[offset+5]; | 730 | count = (query[offset+4] << 8) + query[offset+5]; |
| 736 | byte_count = 2 * count; | 731 | byte_count = 2 * count; |
| 737 | offset = build_response_packet(mb_param, slave, function, byte_count, response); | 732 | offset = build_response_packet(mb_param, slave, function, byte_count, response); |
| 738 | - g_print("offset %d\n", offset); | 733 | + printf("offset %d\n", offset); |
| 739 | for (i = address; i < address + count; i++) { | 734 | for (i = address; i < address + count; i++) { |
| 740 | response[offset++] = mb_mapping->tab_holding_registers[i] >> 8; | 735 | response[offset++] = mb_mapping->tab_holding_registers[i] >> 8; |
| 741 | response[offset++] = mb_mapping->tab_holding_registers[i] & 0xFF; | 736 | response[offset++] = mb_mapping->tab_holding_registers[i] & 0xFF; |
| 742 | } | 737 | } |
| 743 | - g_print("fin offset %d\n", offset); | 738 | + printf("fin offset %d\n", offset); |
| 744 | break; | 739 | break; |
| 745 | case FC_READ_INPUT_REGISTERS: | 740 | case FC_READ_INPUT_REGISTERS: |
| 746 | count = (query[offset+4] << 8) + query[offset+5]; | 741 | count = (query[offset+4] << 8) + query[offset+5]; |
| @@ -758,8 +753,8 @@ void manage_query(modbus_param_t *mb_param, unsigned char *query, | @@ -758,8 +753,8 @@ void manage_query(modbus_param_t *mb_param, unsigned char *query, | ||
| 758 | else if (data == 0x0) | 753 | else if (data == 0x0) |
| 759 | mb_mapping->tab_coil_status[address] = OFF; | 754 | mb_mapping->tab_coil_status[address] = OFF; |
| 760 | else | 755 | else |
| 761 | - g_print("FIXME Error %d\n", data); | ||
| 762 | - g_print("FIXME works only in TCP mode (CRC)"); | 756 | + printf("FIXME Error %d\n", data); |
| 757 | + printf("FIXME works only in TCP mode (CRC)"); | ||
| 763 | memcpy(response, query, query_size); | 758 | memcpy(response, query, query_size); |
| 764 | offset = query_size; | 759 | offset = query_size; |
| 765 | break; | 760 | break; |
| @@ -768,7 +763,7 @@ void manage_query(modbus_param_t *mb_param, unsigned char *query, | @@ -768,7 +763,7 @@ void manage_query(modbus_param_t *mb_param, unsigned char *query, | ||
| 768 | case FC_FORCE_MULTIPLE_COILS: | 763 | case FC_FORCE_MULTIPLE_COILS: |
| 769 | case FC_PRESET_MULTIPLE_REGISTERS: | 764 | case FC_PRESET_MULTIPLE_REGISTERS: |
| 770 | case FC_REPORT_SLAVE_ID: | 765 | case FC_REPORT_SLAVE_ID: |
| 771 | - g_print("Not implemented\n"); | 766 | + printf("Not implemented\n"); |
| 772 | break; | 767 | break; |
| 773 | } | 768 | } |
| 774 | 769 | ||
| @@ -897,7 +892,7 @@ int read_holding_registers(modbus_param_t *mb_param, int slave, | @@ -897,7 +892,7 @@ int read_holding_registers(modbus_param_t *mb_param, int slave, | ||
| 897 | int status; | 892 | int status; |
| 898 | 893 | ||
| 899 | if (count > MAX_READ_HOLD_REGS) { | 894 | if (count > MAX_READ_HOLD_REGS) { |
| 900 | - g_print("WARNING Too many holding registers requested\n"); | 895 | + printf("WARNING Too many holding registers requested\n"); |
| 901 | count = MAX_READ_HOLD_REGS; | 896 | count = MAX_READ_HOLD_REGS; |
| 902 | } | 897 | } |
| 903 | 898 | ||
| @@ -914,7 +909,7 @@ int read_input_registers(modbus_param_t *mb_param, int slave, | @@ -914,7 +909,7 @@ int read_input_registers(modbus_param_t *mb_param, int slave, | ||
| 914 | int status; | 909 | int status; |
| 915 | 910 | ||
| 916 | if (count > MAX_READ_INPUT_REGS) { | 911 | if (count > MAX_READ_INPUT_REGS) { |
| 917 | - g_print("WARNING Too many input registers requested\n"); | 912 | + printf("WARNING Too many input registers requested\n"); |
| 918 | count = MAX_READ_INPUT_REGS; | 913 | count = MAX_READ_INPUT_REGS; |
| 919 | } | 914 | } |
| 920 | 915 | ||
| @@ -1023,7 +1018,7 @@ int force_multiple_coils(modbus_param_t *mb_param, int slave, | @@ -1023,7 +1018,7 @@ int force_multiple_coils(modbus_param_t *mb_param, int slave, | ||
| 1023 | unsigned char query[MAX_PACKET_SIZE]; | 1018 | unsigned char query[MAX_PACKET_SIZE]; |
| 1024 | 1019 | ||
| 1025 | if (coil_count > MAX_WRITE_COILS) { | 1020 | if (coil_count > MAX_WRITE_COILS) { |
| 1026 | - g_print("WARNING Writing to too many coils\n"); | 1021 | + printf("WARNING Writing to too many coils\n"); |
| 1027 | coil_count = MAX_WRITE_COILS; | 1022 | coil_count = MAX_WRITE_COILS; |
| 1028 | } | 1023 | } |
| 1029 | 1024 | ||
| @@ -1071,7 +1066,7 @@ int preset_multiple_registers(modbus_param_t *mb_param, int slave, | @@ -1071,7 +1066,7 @@ int preset_multiple_registers(modbus_param_t *mb_param, int slave, | ||
| 1071 | unsigned char query[MAX_PACKET_SIZE]; | 1066 | unsigned char query[MAX_PACKET_SIZE]; |
| 1072 | 1067 | ||
| 1073 | if (reg_count > MAX_WRITE_REGS) { | 1068 | if (reg_count > MAX_WRITE_REGS) { |
| 1074 | - g_print("WARNING Trying to write to too many registers\n"); | 1069 | + printf("WARNING Trying to write to too many registers\n"); |
| 1075 | reg_count = MAX_WRITE_REGS; | 1070 | reg_count = MAX_WRITE_REGS; |
| 1076 | } | 1071 | } |
| 1077 | 1072 | ||
| @@ -1177,7 +1172,7 @@ static int modbus_connect_rtu(modbus_param_t *mb_param) | @@ -1177,7 +1172,7 @@ static int modbus_connect_rtu(modbus_param_t *mb_param) | ||
| 1177 | speed_t baud_rate; | 1172 | speed_t baud_rate; |
| 1178 | 1173 | ||
| 1179 | if (mb_param->debug) { | 1174 | if (mb_param->debug) { |
| 1180 | - g_print("Opening %s at %d bauds (%s)\n", | 1175 | + printf("Opening %s at %d bauds (%s)\n", |
| 1181 | mb_param->device, mb_param->baud_i, mb_param->parity); | 1176 | mb_param->device, mb_param->baud_i, mb_param->parity); |
| 1182 | } | 1177 | } |
| 1183 | 1178 | ||
| @@ -1191,7 +1186,7 @@ static int modbus_connect_rtu(modbus_param_t *mb_param) | @@ -1191,7 +1186,7 @@ static int modbus_connect_rtu(modbus_param_t *mb_param) | ||
| 1191 | mb_param->fd = open(mb_param->device, O_RDWR | O_NOCTTY | O_NDELAY); | 1186 | mb_param->fd = open(mb_param->device, O_RDWR | O_NOCTTY | O_NDELAY); |
| 1192 | if (mb_param->fd < 0) { | 1187 | if (mb_param->fd < 0) { |
| 1193 | perror("open"); | 1188 | perror("open"); |
| 1194 | - g_print("ERROR Opening device %s (no : %d)\n", | 1189 | + printf("ERROR Opening device %s (no : %d)\n", |
| 1195 | mb_param->device, errno); | 1190 | mb_param->device, errno); |
| 1196 | return -1; | 1191 | return -1; |
| 1197 | } | 1192 | } |
| @@ -1240,7 +1235,7 @@ static int modbus_connect_rtu(modbus_param_t *mb_param) | @@ -1240,7 +1235,7 @@ static int modbus_connect_rtu(modbus_param_t *mb_param) | ||
| 1240 | break; | 1235 | break; |
| 1241 | default: | 1236 | default: |
| 1242 | baud_rate = B9600; | 1237 | baud_rate = B9600; |
| 1243 | - g_print("WARNING Unknown baud rate %d for %s (B9600 used)\n", | 1238 | + printf("WARNING Unknown baud rate %d for %s (B9600 used)\n", |
| 1244 | mb_param->baud_i, mb_param->device); | 1239 | mb_param->baud_i, mb_param->device); |
| 1245 | } | 1240 | } |
| 1246 | 1241 | ||
| @@ -1460,7 +1455,7 @@ static int modbus_connect_tcp(modbus_param_t *mb_param) | @@ -1460,7 +1455,7 @@ static int modbus_connect_tcp(modbus_param_t *mb_param) | ||
| 1460 | } | 1455 | } |
| 1461 | 1456 | ||
| 1462 | if (mb_param->debug) { | 1457 | if (mb_param->debug) { |
| 1463 | - g_print("Connecting to %s\n", mb_param->ip); | 1458 | + printf("Connecting to %s\n", mb_param->ip); |
| 1464 | } | 1459 | } |
| 1465 | 1460 | ||
| 1466 | ret = connect(mb_param->fd, (struct sockaddr *)&addr, | 1461 | ret = connect(mb_param->fd, (struct sockaddr *)&addr, |
| @@ -1499,34 +1494,38 @@ int modbus_mapping_new(modbus_mapping_t *mb_mapping, | @@ -1499,34 +1494,38 @@ int modbus_mapping_new(modbus_mapping_t *mb_mapping, | ||
| 1499 | { | 1494 | { |
| 1500 | /* 0X */ | 1495 | /* 0X */ |
| 1501 | mb_mapping->nb_coil_status = nb_coil_status; | 1496 | mb_mapping->nb_coil_status = nb_coil_status; |
| 1502 | - mb_mapping->tab_coil_status = (unsigned char *) g_malloc0(nb_coil_status * sizeof(unsigned char)); | 1497 | + mb_mapping->tab_coil_status = (unsigned char *) malloc(nb_coil_status * sizeof(unsigned char)); |
| 1498 | + memset(mb_mapping->tab_coil_status, 0, nb_coil_status * sizeof(unsigned char)); | ||
| 1503 | if (mb_mapping->tab_coil_status == NULL) | 1499 | if (mb_mapping->tab_coil_status == NULL) |
| 1504 | return FALSE; | 1500 | return FALSE; |
| 1505 | 1501 | ||
| 1506 | /* 1X */ | 1502 | /* 1X */ |
| 1507 | mb_mapping->nb_input_status = nb_input_status; | 1503 | mb_mapping->nb_input_status = nb_input_status; |
| 1508 | - mb_mapping->tab_input_status = (unsigned char *) g_malloc0(nb_input_status * sizeof(unsigned char)); | 1504 | + mb_mapping->tab_input_status = (unsigned char *) malloc(nb_input_status * sizeof(unsigned char)); |
| 1505 | + memset(mb_mapping->tab_input_status, 0, nb_input_status * sizeof(unsigned char)); | ||
| 1509 | if (mb_mapping->tab_input_status == NULL) { | 1506 | if (mb_mapping->tab_input_status == NULL) { |
| 1510 | - g_free(mb_mapping->tab_coil_status); | 1507 | + free(mb_mapping->tab_coil_status); |
| 1511 | return FALSE; | 1508 | return FALSE; |
| 1512 | } | 1509 | } |
| 1513 | 1510 | ||
| 1514 | /* 3X */ | 1511 | /* 3X */ |
| 1515 | mb_mapping->nb_input_registers = nb_input_registers; | 1512 | mb_mapping->nb_input_registers = nb_input_registers; |
| 1516 | - mb_mapping->tab_input_registers = (unsigned short *) g_malloc0(nb_input_registers * sizeof(unsigned short)); | 1513 | + mb_mapping->tab_input_registers = (unsigned short *) malloc(nb_input_registers * sizeof(unsigned short)); |
| 1514 | + memset(mb_mapping->tab_input_registers, 0, nb_input_registers * sizeof(unsigned short)); | ||
| 1517 | if (mb_mapping->tab_input_registers == NULL) { | 1515 | if (mb_mapping->tab_input_registers == NULL) { |
| 1518 | - g_free(mb_mapping->tab_coil_status); | ||
| 1519 | - g_free(mb_mapping->tab_input_status); | 1516 | + free(mb_mapping->tab_coil_status); |
| 1517 | + free(mb_mapping->tab_input_status); | ||
| 1520 | return FALSE; | 1518 | return FALSE; |
| 1521 | } | 1519 | } |
| 1522 | 1520 | ||
| 1523 | /* 4X */ | 1521 | /* 4X */ |
| 1524 | mb_mapping->nb_holding_registers = nb_holding_registers; | 1522 | mb_mapping->nb_holding_registers = nb_holding_registers; |
| 1525 | - mb_mapping->tab_holding_registers = (unsigned short *) g_malloc0(nb_holding_registers * sizeof(unsigned short)); | 1523 | + mb_mapping->tab_holding_registers = (unsigned short *) malloc(nb_holding_registers * sizeof(unsigned short)); |
| 1524 | + memset(mb_mapping->tab_holding_registers, 0, nb_holding_registers * sizeof(unsigned short)); | ||
| 1526 | if (mb_mapping->tab_holding_registers == NULL) { | 1525 | if (mb_mapping->tab_holding_registers == NULL) { |
| 1527 | - g_free(mb_mapping->tab_coil_status); | ||
| 1528 | - g_free(mb_mapping->tab_input_status); | ||
| 1529 | - g_free(mb_mapping->tab_input_registers); | 1526 | + free(mb_mapping->tab_coil_status); |
| 1527 | + free(mb_mapping->tab_input_status); | ||
| 1528 | + free(mb_mapping->tab_input_registers); | ||
| 1530 | return FALSE; | 1529 | return FALSE; |
| 1531 | } | 1530 | } |
| 1532 | 1531 | ||
| @@ -1536,10 +1535,10 @@ int modbus_mapping_new(modbus_mapping_t *mb_mapping, | @@ -1536,10 +1535,10 @@ int modbus_mapping_new(modbus_mapping_t *mb_mapping, | ||
| 1536 | /* Frees the 4 arrays */ | 1535 | /* Frees the 4 arrays */ |
| 1537 | void modbus_mapping_free(modbus_mapping_t *mb_mapping) | 1536 | void modbus_mapping_free(modbus_mapping_t *mb_mapping) |
| 1538 | { | 1537 | { |
| 1539 | - g_free(mb_mapping->tab_coil_status); | ||
| 1540 | - g_free(mb_mapping->tab_input_status); | ||
| 1541 | - g_free(mb_mapping->tab_input_registers); | ||
| 1542 | - g_free(mb_mapping->tab_holding_registers); | 1538 | + free(mb_mapping->tab_coil_status); |
| 1539 | + free(mb_mapping->tab_input_status); | ||
| 1540 | + free(mb_mapping->tab_input_registers); | ||
| 1541 | + free(mb_mapping->tab_holding_registers); | ||
| 1543 | } | 1542 | } |
| 1544 | 1543 | ||
| 1545 | /* Listens for any query from a modbus master */ | 1544 | /* Listens for any query from a modbus master */ |
| @@ -1561,7 +1560,7 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param) | @@ -1561,7 +1560,7 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param) | ||
| 1561 | perror("socket"); | 1560 | perror("socket"); |
| 1562 | exit(1); | 1561 | exit(1); |
| 1563 | } else { | 1562 | } else { |
| 1564 | - g_print("Socket OK\n"); | 1563 | + printf("Socket OK\n"); |
| 1565 | } | 1564 | } |
| 1566 | 1565 | ||
| 1567 | ret = bind(new_socket, (struct sockaddr *)&addr, | 1566 | ret = bind(new_socket, (struct sockaddr *)&addr, |
| @@ -1571,7 +1570,7 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param) | @@ -1571,7 +1570,7 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param) | ||
| 1571 | close(new_socket); | 1570 | close(new_socket); |
| 1572 | exit(1); | 1571 | exit(1); |
| 1573 | } else { | 1572 | } else { |
| 1574 | - g_print("Bind OK\n"); | 1573 | + printf("Bind OK\n"); |
| 1575 | } | 1574 | } |
| 1576 | 1575 | ||
| 1577 | ret = listen(new_socket, 1); | 1576 | ret = listen(new_socket, 1); |
| @@ -1580,7 +1579,7 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param) | @@ -1580,7 +1579,7 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param) | ||
| 1580 | close(new_socket); | 1579 | close(new_socket); |
| 1581 | exit(1); | 1580 | exit(1); |
| 1582 | } else { | 1581 | } else { |
| 1583 | - g_print("Listen OK\n"); | 1582 | + printf("Listen OK\n"); |
| 1584 | } | 1583 | } |
| 1585 | 1584 | ||
| 1586 | addrlen = sizeof(struct sockaddr_in); | 1585 | addrlen = sizeof(struct sockaddr_in); |
| @@ -1591,8 +1590,8 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param) | @@ -1591,8 +1590,8 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param) | ||
| 1591 | new_socket = 0; | 1590 | new_socket = 0; |
| 1592 | exit(1); | 1591 | exit(1); |
| 1593 | } else { | 1592 | } else { |
| 1594 | - g_print("The client %s is connected\n", | ||
| 1595 | - inet_ntoa(addr.sin_addr)); | 1593 | + printf("The client %s is connected\n", |
| 1594 | + inet_ntoa(addr.sin_addr)); | ||
| 1596 | } | 1595 | } |
| 1597 | 1596 | ||
| 1598 | return new_socket; | 1597 | return new_socket; |
wscript
| @@ -17,7 +17,6 @@ def set_options(opt): | @@ -17,7 +17,6 @@ def set_options(opt): | ||
| 17 | 17 | ||
| 18 | def configure(conf): | 18 | def configure(conf): |
| 19 | conf.check_tool('compiler_cc') | 19 | conf.check_tool('compiler_cc') |
| 20 | - conf.check_pkg('glib-2.0', destvar='GLIB', mandatory=True) | ||
| 21 | conf.check_tool('misc') | 20 | conf.check_tool('misc') |
| 22 | 21 | ||
| 23 | headers = 'arpa/inet.h fcntl.h netinet/in.h stdlib.h \ | 22 | headers = 'arpa/inet.h fcntl.h netinet/in.h stdlib.h \ |
| @@ -62,8 +61,7 @@ def build(bld): | @@ -62,8 +61,7 @@ def build(bld): | ||
| 62 | 'prefix': bld.env()['PREFIX'], | 61 | 'prefix': bld.env()['PREFIX'], |
| 63 | 'exec_prefix': bld.env()['PREFIX'], | 62 | 'exec_prefix': bld.env()['PREFIX'], |
| 64 | 'libdir': bld.env()['PREFIX'] + '/lib', | 63 | 'libdir': bld.env()['PREFIX'] + '/lib', |
| 65 | - 'includedir': bld.env()['PREFIX'] + '/include', | ||
| 66 | - 'modbus_pkgdeps' : 'glib-2.0'} | 64 | + 'includedir': bld.env()['PREFIX'] + '/include'} |
| 67 | 65 | ||
| 68 | def shutdown(): | 66 | def shutdown(): |
| 69 | import UnitTest | 67 | import UnitTest |