From d5665bb73a6c805777381dc1f5032f6266d90ae8 Mon Sep 17 00:00:00 2001 From: Oleksij Rempel Date: Thu, 14 Mar 2019 11:50:44 +0100 Subject: [PATCH] j1939: use defines instead of magic values for now cover most of PGN values. Signed-off-by: Oleksij Rempel --- include/linux/can/j1939.h | 8 +++++++- jacd.c | 20 ++++++++++---------- jspy.c | 2 +- libj1939.c | 4 ++-- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/include/linux/can/j1939.h b/include/linux/can/j1939.h index 3063806..aa3303c 100644 --- a/include/linux/can/j1939.h +++ b/include/linux/can/j1939.h @@ -16,9 +16,15 @@ #include #include -#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 diff --git a/jacd.c b/jacd.c index 4010937..0f4d5e5 100644 --- a/jacd.c +++ b/jacd.c @@ -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) diff --git a/jspy.c b/jspy.c index 55ddeb7..5764be5 100644 --- a/jspy.c +++ b/jspy.c @@ -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; diff --git a/libj1939.c b/libj1939.c index 9bb6fe5..002bebd 100644 --- a/libj1939.c +++ b/libj1939.c @@ -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;