diff --git a/GNUmakefile.am b/GNUmakefile.am index 29b7570..703b917 100644 --- a/GNUmakefile.am +++ b/GNUmakefile.am @@ -69,6 +69,7 @@ bin_PROGRAMS = \ jacd_LDADD = libj1939.la jspy_LDADD = libj1939.la jsr_LDADD = libj1939.la +testj1939_LDADD = libj1939.la EXTRA_DIST = \ .travis.yml \ diff --git a/Makefile b/Makefile index a63f72a..21c2e78 100644 --- a/Makefile +++ b/Makefile @@ -88,6 +88,7 @@ log2asc.o: lib.h asc2log.o: lib.h jspy.o: libj1939.h jsr.o: libj1939.h +testj1939.o: libj1939.h canframelen.o: canframelen.h cansend: cansend.o lib.o @@ -102,3 +103,4 @@ canbusload: canbusload.o canframelen.o jspy: jspy.o libj1939.o jsr: jsr.o libj1939.o +testj1939: testj1939.o libj1939.o diff --git a/testj1939.c b/testj1939.c index d76a52d..06ca9a9 100644 --- a/testj1939.c +++ b/testj1939.c @@ -23,8 +23,8 @@ #include #include #include -#include -#include + +#include "libj1939.h" static const char help_msg[] = "testj1939: demonstrate j1939 use\n" @@ -69,28 +69,6 @@ static void parse_canaddr(char *spec, struct sockaddr_can *paddr) paddr->can_addr.j1939.name = strtoul(str, NULL, 0); } -static const char *canaddr2str(const struct sockaddr_can *paddr) -{ - static char buf[128]; - char *str = buf; - char ifname[IF_NAMESIZE]; - - if (paddr->can_ifindex) - str += sprintf(str, "%s", if_indextoname(paddr->can_ifindex, ifname)); - *str++ = ':'; - - if (paddr->can_addr.j1939.addr != J1939_NO_ADDR) - str += sprintf(str, "%02x", paddr->can_addr.j1939.addr); - *str++ = ','; - if (paddr->can_addr.j1939.pgn != J1939_NO_PGN) - str += sprintf(str, "%05x", paddr->can_addr.j1939.pgn); - *str++ = ','; - if (paddr->can_addr.j1939.name != J1939_NO_NAME) - str += sprintf(str, "%016llx", paddr->can_addr.j1939.name); - *str++ = 0; - return buf; -} - static void onsigalrm(int sig) { error(0, 0, "exit as requested"); @@ -199,7 +177,7 @@ int main(int argc, char *argv[]) } if (verbose) - fprintf(stderr, "- bind(, %s, %zi);\n", canaddr2str(&sockname), sizeof(sockname)); + fprintf(stderr, "- bind(, %s, %zi);\n", libj1939_addr2str(&sockname), sizeof(sockname)); ret = bind(sock, (void *)&sockname, sizeof(sockname)); if (ret < 0) error(1, errno, "bind()"); @@ -208,7 +186,7 @@ int main(int argc, char *argv[]) if (!valid_peername) error(1, 0, "no peername supplied"); if (verbose) - fprintf(stderr, "- connect(, %s, %zi);\n", canaddr2str(&peername), sizeof(peername)); + fprintf(stderr, "- connect(, %s, %zi);\n", libj1939_addr2str(&peername), sizeof(peername)); ret = connect(sock, (void *)&peername, sizeof(peername)); if (ret < 0) error(1, errno, "connect()"); @@ -226,7 +204,7 @@ int main(int argc, char *argv[]) */ if (valid_peername && !todo_connect) { if (verbose) - fprintf(stderr, "- sendto(, , %i, 0, %s, %zi);\n", todo_send, canaddr2str(&peername), sizeof(peername)); + fprintf(stderr, "- sendto(, , %i, 0, %s, %zi);\n", todo_send, libj1939_addr2str(&peername), sizeof(peername)); ret = sendto(sock, dat, todo_send, 0, (void *)&peername, sizeof(peername)); } else { @@ -267,7 +245,7 @@ int main(int argc, char *argv[]) if (todo_echo) { if (verbose) - fprintf(stderr, "- sendto(, , %i, 0, %s, %i);\n", ret, canaddr2str(&peername), peernamelen); + fprintf(stderr, "- sendto(, , %i, 0, %s, %i);\n", ret, libj1939_addr2str(&peername), peernamelen); ret = sendto(sock, dat, ret, 0, (void *)&peername, peernamelen); if (ret < 0)