correcting the npdu encoding for handlers.

This commit is contained in:
skarg
2006-09-22 21:16:20 +00:00
parent 550dbbb91e
commit 07a1077b2d
9 changed files with 44 additions and 39 deletions
+3 -4
View File
@@ -194,9 +194,9 @@ int arcnet_send_pdu(BACNET_ADDRESS * dest, /* destination address */
int bytes = 0;
uint8_t mtu[512] = { 0 };
int mtu_len = 0;
int npdu_len = 0;
struct archdr *pkt = (struct archdr *) mtu;
(void)npdu_data;
src.mac[0] = ARCNET_MAC_Address;
src.mac_len = 1;
@@ -223,14 +223,13 @@ int arcnet_send_pdu(BACNET_ADDRESS * dest, /* destination address */
pkt->soft.raw[1] = 0x82; /* DSAP for BACnet */
pkt->soft.raw[2] = 0x82; /* SSAP for BACnet */
pkt->soft.raw[3] = 0x03; /* LLC Control byte in header */
npdu_len = npdu_encode_pdu(&pkt->soft.raw[4], dest, &src, npdu_data);
/* packet length */
mtu_len = ARC_HDR_SIZE + 4 /*SC,DSAP,SSAP,LLC */ + npdu_len + pdu_len;
mtu_len = ARC_HDR_SIZE + 4 /*SC,DSAP,SSAP,LLC */ + pdu_len;
if (mtu_len > 512) {
fprintf(stderr, "arcnet: PDU is too big to send!\n");
return -4;
}
memcpy(&pkt->soft.raw[4 + npdu_len], pdu, pdu_len);
memcpy(&pkt->soft.raw[4], pdu, pdu_len);
/* Send the packet */
bytes =
sendto(ARCNET_Sock_FD, &mtu, mtu_len, 0,
+3 -4
View File
@@ -188,8 +188,8 @@ int ethernet_send_pdu(BACNET_ADDRESS * dest, /* destination address */
BACNET_ADDRESS src = { 0 }; /* source address for npdu */
uint8_t mtu[MAX_MPDU] = { 0 }; /* our buffer */
int mtu_len = 0;
int npdu_len = 0;
(void)ndpu_data;
/* load the BACnet address for NPDU data */
for (i = 0; i < 6; i++) {
src.mac[i] = Ethernet_MAC_Address[i];
@@ -224,8 +224,7 @@ int ethernet_send_pdu(BACNET_ADDRESS * dest, /* destination address */
mtu[14] = 0x82; /* DSAP for BACnet */
mtu[15] = 0x82; /* SSAP for BACnet */
mtu[16] = 0x03; /* Control byte in header */
npdu_len = npdu_encode_pdu(&mtu[17], dest, &src, npdu_data);
mtu_len = 17 + npdu_len;
mtu_len = 17;
if ((mtu_len + pdu_len) > MAX_MPDU) {
fprintf(stderr, "ethernet: PDU is too big to send!\n");
return -4;
@@ -233,7 +232,7 @@ int ethernet_send_pdu(BACNET_ADDRESS * dest, /* destination address */
memcpy(&mtu[mtu_len], pdu, pdu_len);
mtu_len += pdu_len;
/* packet length - only the logical portion, not the address */
encode_unsigned16(&mtu[12], 3 + npdu_len + pdu_len);
encode_unsigned16(&mtu[12], 3 + pdu_len);
/* Send the packet */
bytes =