Examples from bin directory updated. API usage updated in mbus-protocol-aux.h.

This commit is contained in:
jakubovsky
2012-07-04 19:49:54 +02:00
parent 34255c7237
commit ec50ab9286
14 changed files with 111 additions and 32 deletions

13
bin/mbus-serial-request-data-multi-reply.c Normal file → Executable file
View File

@ -73,13 +73,19 @@ main(int argc, char **argv)
mbus_register_recv_event(&mbus_dump_recv_event); mbus_register_recv_event(&mbus_dump_recv_event);
} }
if ((handle = mbus_connect_serial(device)) == NULL) if ((handle = mbus_context_serial(device)) == NULL)
{ {
fprintf(stderr, "Failed to setup connection to M-bus gateway\n"); fprintf(stderr, "Could not initialize M-Bus context: %s\n", mbus_error_str());
return 1; return 1;
} }
if (mbus_serial_set_baudrate(handle->m_serial_handle, baudrate) == -1) if (!mbus_connect(handle))
{
printf("Failed to setup connection to M-bus gateway\n");
return 1;
}
if (mbus_serial_set_baudrate(handle, baudrate) == -1)
{ {
printf("Failed to set baud rate.\n"); printf("Failed to set baud rate.\n");
return 1; return 1;
@ -174,6 +180,7 @@ main(int argc, char **argv)
free(xml_result); free(xml_result);
mbus_disconnect(handle); mbus_disconnect(handle);
mbus_context_free(handle);
return 0; return 0;
} }

View File

@ -70,13 +70,19 @@ main(int argc, char **argv)
mbus_register_recv_event(&mbus_dump_recv_event); mbus_register_recv_event(&mbus_dump_recv_event);
} }
if ((handle = mbus_connect_serial(device)) == NULL) if ((handle = mbus_context_serial(device)) == NULL)
{ {
fprintf(stderr, "Failed to setup connection to M-bus gateway\n"); fprintf(stderr, "Could not initialize M-Bus context: %s\n", mbus_error_str());
return 1; return 1;
} }
if (mbus_serial_set_baudrate(handle->m_serial_handle, baudrate) == -1) if (!mbus_connect(handle))
{
printf("Failed to setup connection to M-bus gateway\n");
return 1;
}
if (mbus_serial_set_baudrate(handle, baudrate) == -1)
{ {
printf("Failed to set baud rate.\n"); printf("Failed to set baud rate.\n");
return 1; return 1;
@ -162,6 +168,7 @@ main(int argc, char **argv)
} }
mbus_disconnect(handle); mbus_disconnect(handle);
mbus_context_free(handle);
return 0; return 0;
} }

14
bin/mbus-serial-scan-secondary.c Normal file → Executable file
View File

@ -102,13 +102,19 @@ main(int argc, char **argv)
return 1; return 1;
} }
if ((handle = mbus_connect_serial(device)) == NULL) if ((handle = mbus_context_serial(device)) == NULL)
{ {
fprintf(stderr, "Failed to setup connection to M-bus gateway: %s\n", mbus_error_str()); fprintf(stderr, "Could not initialize M-Bus context: %s\n", mbus_error_str());
return 1; return 1;
} }
if (mbus_serial_set_baudrate(handle->m_serial_handle, baudrate) == -1) if (!mbus_connect(handle))
{
printf("Failed to setup connection to M-bus gateway\n");
return 1;
}
if (mbus_serial_set_baudrate(handle, baudrate) == -1)
{ {
fprintf(stderr, "Failed to set baud rate.\n"); fprintf(stderr, "Failed to set baud rate.\n");
return 1; return 1;
@ -153,7 +159,7 @@ main(int argc, char **argv)
mbus_scan_2nd_address_range(handle, 0, addr_mask); mbus_scan_2nd_address_range(handle, 0, addr_mask);
mbus_disconnect(handle); mbus_disconnect(handle);
mbus_context_free(handle);
//printf("Summary: Tried %ld address masks and found %d devices.\n", probe_count, match_count); //printf("Summary: Tried %ld address masks and found %d devices.\n", probe_count, match_count);
free(addr_mask); free(addr_mask);

View File

@ -62,13 +62,19 @@ main(int argc, char **argv)
mbus_register_recv_event(&mbus_dump_recv_event); mbus_register_recv_event(&mbus_dump_recv_event);
} }
if ((handle = mbus_connect_serial(device)) == NULL) if ((handle = mbus_context_serial(device)) == NULL)
{
fprintf(stderr, "Could not initialize M-Bus context: %s\n", mbus_error_str());
return 1;
}
if (!mbus_connect(handle))
{ {
printf("Failed to setup connection to M-bus gateway\n"); printf("Failed to setup connection to M-bus gateway\n");
return 1; return 1;
} }
if (mbus_serial_set_baudrate(handle->m_serial_handle, baudrate) == -1) if (mbus_serial_set_baudrate(handle, baudrate) == -1)
{ {
printf("Failed to set baud rate.\n"); printf("Failed to set baud rate.\n");
return 1; return 1;
@ -128,6 +134,7 @@ main(int argc, char **argv)
} }
mbus_disconnect(handle); mbus_disconnect(handle);
mbus_context_free(handle);
return 0; return 0;
} }

View File

@ -53,13 +53,19 @@ main(int argc, char **argv)
return 1; return 1;
} }
if ((handle = mbus_connect_serial(device)) == NULL) if ((handle = mbus_context_serial(device)) == NULL)
{ {
printf("Failed to setup connection to M-bus device: %s\n", mbus_error_str()); fprintf(stderr, "Could not initialize M-Bus context: %s\n", mbus_error_str());
return 1; return 1;
} }
if (mbus_serial_set_baudrate(handle->m_serial_handle, baudrate) == -1) if (!mbus_connect(handle))
{
printf("Failed to setup connection to M-bus gateway\n");
return 1;
}
if (mbus_serial_set_baudrate(handle, baudrate) == -1)
{ {
printf("Failed to set baud rate.\n"); printf("Failed to set baud rate.\n");
return 1; return 1;
@ -113,6 +119,7 @@ main(int argc, char **argv)
free(addr); free(addr);
mbus_disconnect(handle); mbus_disconnect(handle);
mbus_context_free(handle);
return 0; return 0;
} }

View File

@ -52,13 +52,19 @@ main(int argc, char **argv)
return 0; return 0;
} }
if ((handle = mbus_connect_serial(device)) == NULL) if ((handle = mbus_context_serial(device)) == NULL)
{ {
printf("Failed to setup connection to M-bus device: %s\n", mbus_error_str()); fprintf(stderr, "Could not initialize M-Bus context: %s\n", mbus_error_str());
return 1;
}
if (!mbus_connect(handle))
{
printf("Failed to setup connection to M-bus gateway\n");
return 1; return 1;
} }
if (mbus_serial_set_baudrate(handle->m_serial_handle, source_baudrate) == -1) if (mbus_serial_set_baudrate(handle, source_baudrate) == -1)
{ {
printf("Failed to set baud rate.\n"); printf("Failed to set baud rate.\n");
return 1; return 1;
@ -88,6 +94,7 @@ main(int argc, char **argv)
} }
mbus_disconnect(handle); mbus_disconnect(handle);
mbus_context_free(handle);
return 0; return 0;
} }

9
bin/mbus-tcp-request-data-multi-reply.c Normal file → Executable file
View File

@ -62,7 +62,13 @@ main(int argc, char **argv)
mbus_register_recv_event(&mbus_dump_recv_event); mbus_register_recv_event(&mbus_dump_recv_event);
} }
if ((handle = mbus_connect_tcp(host, port)) == NULL) if ((handle = mbus_context_tcp(host, port)) == NULL)
{
fprintf(stderr, "Could not initialize M-Bus context: %s\n", mbus_error_str());
return 1;
}
if (!mbus_connect(handle))
{ {
fprintf(stderr, "Failed to setup connection to M-bus gateway\n"); fprintf(stderr, "Failed to setup connection to M-bus gateway\n");
return 1; return 1;
@ -157,6 +163,7 @@ main(int argc, char **argv)
free(xml_result); free(xml_result);
mbus_disconnect(handle); mbus_disconnect(handle);
mbus_context_free(handle);
return 0; return 0;
} }

View File

@ -62,7 +62,13 @@ main(int argc, char **argv)
mbus_register_recv_event(&mbus_dump_recv_event); mbus_register_recv_event(&mbus_dump_recv_event);
} }
if ((handle = mbus_connect_tcp(host, port)) == NULL) if ((handle = mbus_context_tcp(host, port)) == NULL)
{
fprintf(stderr, "Could not initialize M-Bus context: %s\n", mbus_error_str());
return 1;
}
if (!mbus_connect(handle))
{ {
fprintf(stderr, "Failed to setup connection to M-bus gateway\n"); fprintf(stderr, "Failed to setup connection to M-bus gateway\n");
return 1; return 1;
@ -147,6 +153,7 @@ main(int argc, char **argv)
} }
mbus_disconnect(handle); mbus_disconnect(handle);
mbus_context_free(handle);
return 0; return 0;
} }

11
bin/mbus-tcp-scan-secondary.c Normal file → Executable file
View File

@ -57,9 +57,15 @@ main(int argc, char **argv)
return 1; return 1;
} }
if ((handle = mbus_connect_tcp(host, port)) == NULL) if ((handle = mbus_context_tcp(host, port)) == NULL)
{ {
fprintf(stderr, "Failed to setup connection to M-bus gateway: %s\n", mbus_error_str()); fprintf(stderr, "Could not initialize M-Bus context: %s\n", mbus_error_str());
return 1;
}
if (!mbus_connect(handle))
{
fprintf(stderr, "Failed to setup connection to M-bus gateway\n");
return 1; return 1;
} }
@ -103,6 +109,7 @@ main(int argc, char **argv)
mbus_scan_2nd_address_range(handle, 0, addr_mask); mbus_scan_2nd_address_range(handle, 0, addr_mask);
mbus_disconnect(handle); mbus_disconnect(handle);
mbus_context_free(handle);
//printf("Summary: Tried %ld address masks and found %d devices.\n", probe_count, match_count); //printf("Summary: Tried %ld address masks and found %d devices.\n", probe_count, match_count);

View File

@ -51,7 +51,13 @@ main(int argc, char **argv)
mbus_register_recv_event(&mbus_dump_recv_event); mbus_register_recv_event(&mbus_dump_recv_event);
} }
if ((handle = mbus_connect_tcp(host, port)) == NULL) if ((handle = mbus_context_tcp(host, port)) == NULL)
{
printf("Scan failed: Could not initialize M-Bus context: %s\n", mbus_error_str());
return 1;
}
if (!mbus_connect(handle))
{ {
printf("Scan failed: Could not setup connection to M-bus gateway: %s\n", mbus_error_str()); printf("Scan failed: Could not setup connection to M-bus gateway: %s\n", mbus_error_str());
return 1; return 1;
@ -110,6 +116,7 @@ main(int argc, char **argv)
} }
mbus_disconnect(handle); mbus_disconnect(handle);
mbus_context_free(handle);
return 0; return 0;
} }

View File

@ -45,9 +45,15 @@ main(int argc, char **argv)
return 1; return 1;
} }
if ((handle = mbus_connect_tcp(host, port)) == NULL) if ((handle = mbus_context_tcp(host, port)) == NULL)
{ {
printf("Failed to setup connection to M-bus gateway: %s\n", mbus_error_str()); fprintf(stderr, "Could not initialize M-Bus context: %s\n", mbus_error_str());
return 1;
}
if (!mbus_connect(handle))
{
fprintf(stderr, "Failed to setup connection to M-bus gateway\n");
return 1; return 1;
} }
@ -99,6 +105,7 @@ main(int argc, char **argv)
free(addr); free(addr);
mbus_disconnect(handle); mbus_disconnect(handle);
mbus_context_free(handle);
return 0; return 0;
} }

View File

@ -1336,7 +1336,7 @@ mbus_context_serial(const char *device)
handle->close = mbus_serial_disconnect; handle->close = mbus_serial_disconnect;
handle->recv = mbus_serial_recv_frame; handle->recv = mbus_serial_recv_frame;
handle->send = mbus_serial_send_frame; handle->send = mbus_serial_send_frame;
handle->free_auxdata = mbus_tcp_data_free; handle->free_auxdata = mbus_serial_data_free;
if ((serial_data->device = strdup(device)) == NULL) if ((serial_data->device = strdup(device)) == NULL)
{ {
@ -1403,7 +1403,7 @@ mbus_context_free(mbus_handle * handle)
} }
int int
modbus_connect(mbus_handle * handle) mbus_connect(mbus_handle * handle)
{ {
if (handle == NULL) if (handle == NULL)
{ {

View File

@ -20,9 +20,11 @@
* the data processing. * the data processing.
* Typical use might be (in oversimplified "pseudocode"): * Typical use might be (in oversimplified "pseudocode"):
* \verbatim * \verbatim
* mbus_handle = mbus_connect_serial(device); * mbus_handle = mbus_context_serial(device);
* or * or
* mbus_handle = mbus_connect_tcp(host, port); * mbus_handle = mbus_context_tcp(host, port);
*
* mbus_connect(mbus_handle);
* *
* ... * ...
* *
@ -45,6 +47,7 @@
* ... * ...
* *
* mbus_disconnect(mbus_handle); * mbus_disconnect(mbus_handle);
* mbus_context_free(mbus_handle);
* \endverbatim * \endverbatim
* *
* Note that the quantity values are partially "normalized". For example energy * Note that the quantity values are partially "normalized". For example energy

View File

@ -81,8 +81,8 @@ mbus_tcp_connect(mbus_handle *handle)
} }
// Set a timeout // Set a timeout
time_out.tv_sec = 0; //seconds time_out.tv_sec = 4; //seconds
time_out.tv_usec = 100000; time_out.tv_usec = 0;
setsockopt(handle->fd, SOL_SOCKET, SO_SNDTIMEO, &time_out, sizeof(time_out)); setsockopt(handle->fd, SOL_SOCKET, SO_SNDTIMEO, &time_out, sizeof(time_out));
setsockopt(handle->fd, SOL_SOCKET, SO_RCVTIMEO, &time_out, sizeof(time_out)); setsockopt(handle->fd, SOL_SOCKET, SO_RCVTIMEO, &time_out, sizeof(time_out));
@ -189,7 +189,7 @@ retry:
goto retry; goto retry;
if (errno == EAGAIN || errno == EWOULDBLOCK) { if (errno == EAGAIN || errno == EWOULDBLOCK) {
mbus_error_str_set("M-Bus tcp transport layer timeout has been reached."); mbus_error_str_set("M-Bus tcp transport layer response timeout has been reached.");
return -3; return -3;
} }