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>
parent
93e7b02236
commit
2638b3965c
|
|
@ -67,6 +67,10 @@ set(PROGRAMS_J1939_TIMEDATE
|
|||
j1939-timedate-cli
|
||||
)
|
||||
|
||||
set(PROGRAMS_J1939_VEHICLE_POSITION
|
||||
j1939-vehicle-position-srv
|
||||
)
|
||||
|
||||
set(PROGRAMS_ISOBUSFS
|
||||
isobusfs-srv
|
||||
isobusfs-cli
|
||||
|
|
@ -190,6 +194,22 @@ if(NOT ANDROID)
|
|||
j1939-timedate-srv
|
||||
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()
|
||||
|
||||
add_library(can STATIC
|
||||
|
|
|
|||
15
Makefile
15
Makefile
|
|
@ -67,6 +67,9 @@ PROGRAMS_J1939_TIMEDATE := \
|
|||
j1939-timedate-srv \
|
||||
j1939-timedate-cli
|
||||
|
||||
PROGRAMS_J1939_VEHICLE_POSITION := \
|
||||
j1939-vehicle-position-srv
|
||||
|
||||
PROGRAMS_ISOBUSFS := \
|
||||
isobusfs-srv \
|
||||
isobusfs-cli
|
||||
|
|
@ -98,6 +101,7 @@ PROGRAMS_SLCAN := \
|
|||
PROGRAMS := \
|
||||
$(PROGRAMS_CANGW) \
|
||||
$(PROGRAMS_J1939_TIMEDATE) \
|
||||
$(PROGRAMS_J1939_VEHICLE_POSITION) \
|
||||
$(PROGRAMS_ISOBUSFS) \
|
||||
$(PROGRAMS_ISOTP) \
|
||||
$(PROGRAMS_J1939) \
|
||||
|
|
@ -126,7 +130,8 @@ endif
|
|||
all: $(PROGRAMS)
|
||||
|
||||
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:
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/bin
|
||||
|
|
@ -153,6 +158,8 @@ isobusfs_srv.o: lib.h libj1939.h
|
|||
isobusfs_c.o: lib.h libj1939.h
|
||||
j1939_timedate_srv.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
|
||||
|
||||
asc2log: asc2log.o lib.o
|
||||
|
|
@ -182,6 +189,12 @@ j1939-timedate-cli: lib.o \
|
|||
j1939_timedate/j1939_timedate_cli.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 \
|
||||
libj1939.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
Loading…
Reference in New Issue