Fix Frame Count Bit handling

Extend mbus_send_request_frame() to set FCB
Set FCB in case of primary adressing
This commit is contained in:
Stefan Wahren
2015-06-27 12:55:12 +02:00
parent 716d712314
commit 61f6942448
6 changed files with 21 additions and 12 deletions

View File

@ -56,6 +56,7 @@ main(int argc, char **argv)
char *device, *addr_str, *xml_result;
int address;
char fcb;
long baudrate = 9600;
memset((void *)&reply, 0, sizeof(mbus_frame));
@ -159,14 +160,16 @@ main(int argc, char **argv)
// else MBUS_PROBE_SINGLE
address = MBUS_ADDRESS_NETWORK_LAYER;
fcb = 0;
}
else
{
// primary addressing
address = atoi(addr_str);
fcb = 1;
}
if (mbus_send_request_frame(handle, address) == -1)
if (mbus_send_request_frame(handle, address, fcb) == -1)
{
fprintf(stderr, "Failed to send M-Bus request frame.\n");
mbus_disconnect(handle);

View File

@ -96,7 +96,7 @@ main(int argc, char **argv)
if (mbus_frame_type(&reply) == MBUS_FRAME_TYPE_ACK)
{
if (mbus_send_request_frame(handle, MBUS_ADDRESS_NETWORK_LAYER) == -1)
if (mbus_send_request_frame(handle, MBUS_ADDRESS_NETWORK_LAYER, 0) == -1)
{
fprintf(stderr,"Failed to send request to selected secondary device: %s\n", mbus_error_str());
return 1;

View File

@ -102,7 +102,7 @@ main(int argc, char **argv)
}
// else MBUS_PROBE_SINGLE
if (mbus_send_request_frame(handle, MBUS_ADDRESS_NETWORK_LAYER) == -1)
if (mbus_send_request_frame(handle, MBUS_ADDRESS_NETWORK_LAYER, 0) == -1)
{
fprintf(stderr, "Failed to send M-Bus request frame.\n");
return 1;
@ -113,7 +113,7 @@ main(int argc, char **argv)
// primary addressing
address = atoi(addr_str);
if (mbus_send_request_frame(handle, address) == -1)
if (mbus_send_request_frame(handle, address, 1) == -1)
{
fprintf(stderr, "Failed to send M-Bus request frame.\n");
return 1;

View File

@ -87,7 +87,7 @@ main(int argc, char **argv)
if (mbus_frame_type(&reply) == MBUS_FRAME_TYPE_ACK)
{
if (mbus_send_request_frame(handle, MBUS_ADDRESS_NETWORK_LAYER) == -1)
if (mbus_send_request_frame(handle, MBUS_ADDRESS_NETWORK_LAYER, 0) == -1)
{
fprintf(stderr,"Failed to send request to selected secondary device: %s\n", mbus_error_str());
return 1;