mirror of
https://github.com/linux-can/can-utils.git
synced 2026-09-23 00:21:14 +02:00
j1939-vehicle-position-srv: Introduce J1939 and NMEA 2000 Vehicle Position Server
This patch adds `j1939-vehicle-position-srv`, a server for sending vehicle position data over CAN using J1939 or NMEA 2000 protocols. It retrieves GPS data from gpsd or simulates data if gpsd is unavailable. By default, it operates in J1939 profile but can switch to NMEA 2000 with the `-p nmea2000` option. Usage Examples: 1. With gpsd: j1939acd -r 64-95 -c /tmp/1122334455667789.jacd 1122334455667789 vcan0 & j1939-vehicle-position-srv -i vcan0 -n 0x1122334455667789 2. In simulation mode without gpsd: j1939-vehicle-position-srv -i vcan0 -s -p nmea2000 Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
This commit is contained in:
@@ -67,6 +67,10 @@ set(PROGRAMS_J1939_TIMEDATE
|
|||||||
j1939-timedate-cli
|
j1939-timedate-cli
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(PROGRAMS_J1939_VEHICLE_POSITION
|
||||||
|
j1939-vehicle-position-srv
|
||||||
|
)
|
||||||
|
|
||||||
set(PROGRAMS_ISOBUSFS
|
set(PROGRAMS_ISOBUSFS
|
||||||
isobusfs-srv
|
isobusfs-srv
|
||||||
isobusfs-cli
|
isobusfs-cli
|
||||||
@@ -190,6 +194,22 @@ if(NOT ANDROID)
|
|||||||
j1939-timedate-srv
|
j1939-timedate-srv
|
||||||
DESTINATION ${CMAKE_INSTALL_BINDIR})
|
DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||||
|
|
||||||
|
set(PUBLIC_HEADER_J1939_VEHICLE_POSITION
|
||||||
|
j1939_vehicle_position/j1939_vehicle_position_cmn.h
|
||||||
|
)
|
||||||
|
|
||||||
|
add_executable(j1939-vehicle-position-srv
|
||||||
|
j1939_vehicle_position/j1939_vehicle_position_srv.c
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(j1939-vehicle-position-srv
|
||||||
|
PRIVATE can j1939 gps
|
||||||
|
)
|
||||||
|
|
||||||
|
install(TARGETS
|
||||||
|
j1939-vehicle-position-srv
|
||||||
|
DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(can STATIC
|
add_library(can STATIC
|
||||||
|
|||||||
@@ -67,6 +67,9 @@ PROGRAMS_J1939_TIMEDATE := \
|
|||||||
j1939-timedate-srv \
|
j1939-timedate-srv \
|
||||||
j1939-timedate-cli
|
j1939-timedate-cli
|
||||||
|
|
||||||
|
PROGRAMS_J1939_VEHICLE_POSITION := \
|
||||||
|
j1939-vehicle-position-srv
|
||||||
|
|
||||||
PROGRAMS_ISOBUSFS := \
|
PROGRAMS_ISOBUSFS := \
|
||||||
isobusfs-srv \
|
isobusfs-srv \
|
||||||
isobusfs-cli
|
isobusfs-cli
|
||||||
@@ -98,6 +101,7 @@ PROGRAMS_SLCAN := \
|
|||||||
PROGRAMS := \
|
PROGRAMS := \
|
||||||
$(PROGRAMS_CANGW) \
|
$(PROGRAMS_CANGW) \
|
||||||
$(PROGRAMS_J1939_TIMEDATE) \
|
$(PROGRAMS_J1939_TIMEDATE) \
|
||||||
|
$(PROGRAMS_J1939_VEHICLE_POSITION) \
|
||||||
$(PROGRAMS_ISOBUSFS) \
|
$(PROGRAMS_ISOBUSFS) \
|
||||||
$(PROGRAMS_ISOTP) \
|
$(PROGRAMS_ISOTP) \
|
||||||
$(PROGRAMS_J1939) \
|
$(PROGRAMS_J1939) \
|
||||||
@@ -126,7 +130,8 @@ endif
|
|||||||
all: $(PROGRAMS)
|
all: $(PROGRAMS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(PROGRAMS) *.o mcp251xfd/*.o isobusfs/*.o j1939_timedate/*.o
|
rm -f $(PROGRAMS) *.o mcp251xfd/*.o isobusfs/*.o j1939_timedate/*.o \
|
||||||
|
j1939_vehicle_position/*.o
|
||||||
|
|
||||||
install:
|
install:
|
||||||
mkdir -p $(DESTDIR)$(PREFIX)/bin
|
mkdir -p $(DESTDIR)$(PREFIX)/bin
|
||||||
@@ -153,6 +158,8 @@ isobusfs_srv.o: lib.h libj1939.h
|
|||||||
isobusfs_c.o: lib.h libj1939.h
|
isobusfs_c.o: lib.h libj1939.h
|
||||||
j1939_timedate_srv.o: lib.h libj1939.h
|
j1939_timedate_srv.o: lib.h libj1939.h
|
||||||
j1939_timedate_cli.o: lib.h libj1939.h
|
j1939_timedate_cli.o: lib.h libj1939.h
|
||||||
|
j1939_vehicle_position_srv.o: lib.h libj1939.h
|
||||||
|
|
||||||
canframelen.o: canframelen.h
|
canframelen.o: canframelen.h
|
||||||
|
|
||||||
asc2log: asc2log.o lib.o
|
asc2log: asc2log.o lib.o
|
||||||
@@ -182,6 +189,12 @@ j1939-timedate-cli: lib.o \
|
|||||||
j1939_timedate/j1939_timedate_cli.o
|
j1939_timedate/j1939_timedate_cli.o
|
||||||
$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@
|
$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@
|
||||||
|
|
||||||
|
j1939-vehicle-position-srv: \
|
||||||
|
lib.o \
|
||||||
|
libj1939.o \
|
||||||
|
j1939_vehicle_position/j1939_vehicle_position_srv.o \
|
||||||
|
$(CC) $(LDFLAGS) $^ $(LDLIBS) -lgps -o $@
|
||||||
|
|
||||||
isobusfs-srv: lib.o \
|
isobusfs-srv: lib.o \
|
||||||
libj1939.o \
|
libj1939.o \
|
||||||
isobusfs/isobusfs_cmn.o \
|
isobusfs/isobusfs_cmn.o \
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user