j1939: use defines instead of magic values

for now cover most of PGN values.

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
pull/131/head
Oleksij Rempel 2019-03-14 11:50:44 +01:00 committed by Oleksij Rempel
parent a505085b71
commit d5665bb73a
4 changed files with 20 additions and 14 deletions

View File

@ -16,9 +16,15 @@
#include <linux/socket.h>
#include <linux/can.h>
#define J1939_IDLE_ADDR 0xfe
#define J1939_IDLE_ADDR 0xfe
#define J1939_MAX_UNICAST_ADDR 0xfd
#define J1939_NO_ADDR 0xff
#define J1939_NO_NAME 0
#define J1939_PGN_REQUEST 0x0ea00
#define J1939_PGN_ADDRESS_CLAIMED 0x0ee00
#define J1939_PGN_PDU1_MAX 0x3ff00
#define J1939_PGN_MAX 0x3ffff
#define J1939_NO_PGN 0x40000
/* J1939 Parameter Group Number

20
jacd.c
View File

@ -175,14 +175,14 @@ static int parse_range(char *str)
/* j1939 socket */
static const struct j1939_filter filt[] = {
{
.pgn = 0x0ee00,
.pgn_mask = 0x3ff00,
.pgn = J1939_PGN_ADDRESS_CLAIMED,
.pgn_mask = J1939_PGN_PDU1_MAX,
}, {
.pgn = 0x0ea00,
.pgn_mask = 0x3ff00,
.pgn = J1939_PGN_REQUEST,
.pgn_mask = J1939_PGN_PDU1_MAX,
}, {
.pgn = 0x0fed8,
.pgn_mask = 0x3ffff,
.pgn_mask = J1939_PGN_MAX,
},
};
@ -244,7 +244,7 @@ static int repeat_address(int sock, uint64_t name)
static const struct sockaddr_can saddr = {
.can_family = AF_CAN,
.can_addr.j1939 = {
.pgn = 0x0ee00,
.pgn = J1939_PGN_ADDRESS_CLAIMED,
.addr = J1939_NO_ADDR,
},
};
@ -288,7 +288,7 @@ static int request_addresses(int sock)
int ret;
static const struct sockaddr_can saddr = {
.can_family = AF_CAN,
.can_addr.j1939.pgn = 0x0ea00,
.can_addr.j1939.pgn = J1939_PGN_REQUEST,
.can_addr.j1939.addr = J1939_NO_ADDR,
};
@ -577,11 +577,11 @@ int main(int argc, char *argv[])
error(1, errno, "recvfrom()");
}
switch (saddr.can_addr.j1939.pgn) {
case 0x0ea00:
case J1939_PGN_REQUEST:
if (ret < 3)
break;
pgn = dat[0] + (dat[1] << 8) + ((dat[2] & 0x03) << 16);
if (pgn != 0x0ee00)
if (pgn != J1939_PGN_ADDRESS_CLAIMED)
/* not interested */
break;
if (s.state == STATE_REQ_SENT) {
@ -595,7 +595,7 @@ int main(int argc, char *argv[])
schedule_itimer(50);
}
break;
case 0x0ee00:
case J1939_PGN_ADDRESS_CLAIMED:
if (saddr.can_addr.j1939.addr >= J1939_IDLE_ADDR) {
sa = lookup_name(saddr.can_addr.j1939.name);
if (sa < J1939_IDLE_ADDR)

2
jspy.c
View File

@ -162,7 +162,7 @@ int main(int argc, char **argv)
filt.addr_mask = ~0;
++filter;
}
if (s.addr.can_addr.j1939.pgn <= 0x3ffff) {
if (s.addr.can_addr.j1939.pgn <= J1939_PGN_MAX) {
filt.pgn = s.addr.can_addr.j1939.pgn;
filt.pgn_mask = ~0;
++filter;

View File

@ -183,13 +183,13 @@ const char *libj1939_addr2str(const struct sockaddr_can *can)
}
if (can->can_addr.j1939.name) {
str += sprintf(str, "%016llx", (unsigned long long)can->can_addr.j1939.name);
if (can->can_addr.j1939.pgn == 0x0ee00)
if (can->can_addr.j1939.pgn == J1939_PGN_ADDRESS_CLAIMED)
str += sprintf(str, ".%02x", can->can_addr.j1939.addr);
} else if (can->can_addr.j1939.addr <= 0xfe)
str += sprintf(str, "%02x", can->can_addr.j1939.addr);
else
str += sprintf(str, "-");
if (can->can_addr.j1939.pgn <= 0x3ffff)
if (can->can_addr.j1939.pgn <= J1939_PGN_MAX)
str += sprintf(str, ",%05x", can->can_addr.j1939.pgn);
return buf;