Skip to content

Commit 4d21832

Browse files
committed
Update AIS-catcher to latest, fix leaked USB connection causing error -6 (#27) and bump version to 1.16 (116)
1 parent abf25a6 commit 4d21832

4 files changed

Lines changed: 122 additions & 116 deletions

File tree

‎app/build.gradle‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ android {
1010
applicationId "com.jvdegithub.aiscatcher"
1111
minSdk 23
1212
targetSdk 34
13-
versionCode 115
14-
versionName '1.15'
13+
versionCode 116
14+
versionName '1.16'
1515

1616
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1717
externalNativeBuild {

‎app/src/main/java/com/jvdegithub/aiscatcher/DeviceManager.java‎

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,16 @@ public static int openDevice() {
120120
UsbManager mUsbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE);
121121

122122
if(mUsbManager.hasPermission(devices.get(deviceIndex).getDevice())) {
123-
UsbDeviceConnection conn = mUsbManager.openDevice(devices.get(deviceIndex).getDevice());
124-
fd = conn.getFileDescriptor();
125-
AisCatcherJava.onStatus("Device SN: " + conn.getSerial() + ", FD: " + fd + "\n");
123+
closeDevice();
124+
125+
usbDeviceConnection = mUsbManager.openDevice(devices.get(deviceIndex).getDevice());
126+
if (usbDeviceConnection == null) {
127+
AisCatcherJava.onStatus("Cannot open USB device\n");
128+
return -1;
129+
}
130+
131+
fd = usbDeviceConnection.getFileDescriptor();
132+
AisCatcherJava.onStatus("Device SN: " + usbDeviceConnection.getSerial() + ", FD: " + fd + "\n");
126133
}
127134
else
128135
{
@@ -183,12 +190,11 @@ public static int getDeviceCode() {
183190

184191
public static void closeDevice() {
185192

186-
AisCatcherJava.onStatus("Closing connection\n");
187-
188-
if (devices.get(deviceIndex).getType() != DeviceType.RTLTCP && devices.get(deviceIndex).getType() != DeviceType.SPYSERVER && usbDeviceConnection != null) {
193+
if (usbDeviceConnection != null) {
194+
AisCatcherJava.onStatus("Closing connection\n");
189195
usbDeviceConnection.close();
196+
usbDeviceConnection = null;
190197
}
191-
usbDeviceConnection = null;
192198
}
193199

194200
public static void Init(Context m) {

‎app/src/main/jni/AIS-catcher‎

Submodule AIS-catcher updated 69 files

‎app/src/main/jni/CMakeLists.txt‎

Lines changed: 106 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1,106 +1,106 @@
1-
2-
cmake_minimum_required(VERSION 3.10.2)
3-
4-
project("AIScatcherNDK")
5-
6-
set(OPTIMIZATION_FLAGS "-O3")
7-
8-
set(CMAKE_CXX_FLAGS "${OPTIMIZATION_FLAGS}")
9-
set(CMAKE_C_FLAGS "${OPTIMIZATION_FLAGS}")
10-
11-
add_link_options("-Wl,--build-id=none" "-Wl,--strip-debug" "-Wl,--hash-style=gnu")
12-
add_compile_options(-O3 -ffast-math -Wno-builtin-macro-redefined)
13-
14-
set(BUILD_DATE "NA")
15-
find_package(Git QUIET)
16-
if(GIT_FOUND)
17-
execute_process(
18-
COMMAND ${GIT_EXECUTABLE} log -1 --format=%cd "--date=format:%b %e %Y"
19-
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
20-
OUTPUT_VARIABLE GIT_BUILD_DATE
21-
OUTPUT_STRIP_TRAILING_WHITESPACE
22-
ERROR_QUIET)
23-
if(GIT_BUILD_DATE)
24-
set(BUILD_DATE "${GIT_BUILD_DATE}")
25-
endif()
26-
endif()
27-
add_compile_definitions(__DATE__="${BUILD_DATE}")
28-
29-
add_library(
30-
AIScatcherNDK
31-
32-
SHARED
33-
34-
./libusb/libusb/core.c
35-
./libusb/libusb/descriptor.c
36-
./libusb/libusb/hotplug.c
37-
./libusb/libusb/io.c
38-
./libusb/libusb/sync.c
39-
./libusb/libusb/strerror.c
40-
./libusb/libusb/os/linux_usbfs.c
41-
./libusb/libusb/os/events_posix.c
42-
./libusb/libusb/os/threads_posix.c
43-
./libusb/libusb/os/linux_netlink.c
44-
45-
./rtl-sdr/src/librtlsdr.c
46-
./rtl-sdr/src/tuner_e4k.c ./rtl-sdr/src/tuner_fc0012.c ./rtl-sdr/src/tuner_fc0013.c ./rtl-sdr/src/tuner_fc2580.c ./rtl-sdr/src/tuner_r82xx.c
47-
48-
./airspyone_host/libairspy/src/airspy.c ./airspyone_host/libairspy/src/iqconverter_float.c
49-
./airspyone_host/libairspy/src/iqconverter_int16.c
50-
51-
./airspyhf/libairspyhf/src/airspyhf.c
52-
./airspyhf/libairspyhf/src/iqbalancer.c
53-
54-
./AIS-catcher/Source/Application/Receiver.cpp ./AIS-catcher/Source/Application/WebDB.cpp ./AIS-catcher/Source/Application/Config.cpp ./AIS-catcher/Source/Tracking/DB.cpp
55-
./AIS-catcher/Source/Tracking/Ships.cpp ./AIS-catcher/Source/DBMS/PostgreSQL.cpp
56-
./AIS-catcher/Source/Device/AIRSPYHF.cpp ./AIS-catcher/Source/Device/FileWAV.cpp ./AIS-catcher/Source/Device/RTLSDR.cpp ./AIS-catcher/Source/Device/SDRPLAY.cpp
57-
./AIS-catcher/Source/DSP/Demod.cpp ./AIS-catcher/Source/DSP/Model.cpp ./AIS-catcher/Source/Marine/AIS.cpp ./AIS-catcher/Source/JSON/JSONAIS.cpp
58-
./AIS-catcher/Source/JSON/Keys.cpp ./AIS-catcher/Source/IO/HTTPClient.cpp
59-
./AIS-catcher/Source/Device/FileRAW.cpp ./AIS-catcher/Source/Device/HACKRF.cpp ./AIS-catcher/Source/Device/UDP.cpp ./AIS-catcher/Source/Device/RTLTCP.cpp
60-
./AIS-catcher/Source/Device/ZMQ.cpp ./AIS-catcher/Source/Device/SoapySDR.cpp ./AIS-catcher/Source/Device/SpyServer.cpp ./AIS-catcher/Source/Marine/Message.cpp
61-
./AIS-catcher/Source/Marine/NMEA.cpp
62-
./AIS-catcher/Source/Utilities/Convert.cpp ./AIS-catcher/Source/Utilities/Parse.cpp ./AIS-catcher/Source/Utilities/Helper.cpp
63-
./AIS-catcher/Source/JSON/JSON.cpp ./AIS-catcher/Source/IO/Network.cpp
64-
./AIS-catcher/Source/IO/HTTPServer.cpp ./AIS-catcher/Source/IO/TCPServer.cpp
65-
./AIS-catcher/Source/JSON/Parser.cpp ./AIS-catcher/Source/Device/AIRSPY.cpp ./AIS-catcher/Source/Device/Serial.cpp
66-
./AIS-catcher/Source/Device/HYDRASDR.cpp
67-
./AIS-catcher/Source/Aviation/ADSB.cpp
68-
./AIS-catcher/Source/DSP/DSP.cpp ./AIS-catcher/Source/Application/WebViewer.cpp ./AIS-catcher/Source/Application/Prometheus.cpp ./AIS-catcher/Source/IO/Protocol.cpp
69-
./AIS-catcher/Source/Library/Logger.cpp ./AIS-catcher/Source/Application/DeviceManager.cpp ./AIS-catcher/Source/Utilities/StreamHelpers.cpp
70-
./AIS-catcher/Source/Aviation/Basestation.cpp ./AIS-catcher/Source/Aviation/Beast.cpp ./AIS-catcher/Source/Utilities/TemplateString.cpp ./AIS-catcher/Source/Application/MapTiles.cpp
71-
./AIS-catcher/Source/Application/BackupManager.cpp ./AIS-catcher/Source/Application/FrontendConfig.cpp
72-
./AIS-catcher/Source/Tracking/ReceiverTracker.cpp ./AIS-catcher/Source/DSP/Decoder/V2/V2Engine.cpp
73-
74-
JNI/AIScatcherNDK.cpp)
75-
76-
include_directories(
77-
# Order matters: Filters.h, airspy.h, airspyhf.h and config.h collide case-insensitively
78-
./AIS-catcher/Source/DSP
79-
./libusb/android ./libusb/libusb ./libusb/libusb/os
80-
./rtl-sdr/include
81-
./airspyone_host/libairspy/src
82-
./airspyhf/libairspyhf/src
83-
./AIS-catcher/Source ./AIS-catcher/Source/Application ./AIS-catcher/Source/IO ./AIS-catcher/Source/Library ./AIS-catcher/Source/Tracking ./AIS-catcher/Source/JSON
84-
./AIS-catcher/Source/DBMS ./AIS-catcher/Source/DSP ./AIS-catcher/Source/Device ./AIS-catcher/Source/Utilities ./AIS-catcher/Source/Aviation ./AIS-catcher/Source/Marine)
85-
86-
add_definitions(-DHASRTLSDR -DHASRTLSDR_BIASTEE -DHASRTL_ANDROID -DHASAIRSPY -DHASAIRSPY_ANDROID -D HASAIRSPYHF -DHASAIRSPYHF_ANDROID -DHASRTLSDR_TUNERBW)
87-
88-
find_package(openssl REQUIRED CONFIG)
89-
add_definitions(-DHASOPENSSL)
90-
91-
add_definitions(-DHASZLIB)
92-
93-
find_library(
94-
log-lib
95-
96-
log)
97-
98-
target_link_libraries(
99-
AIScatcherNDK
100-
101-
${log-lib}
102-
103-
openssl::ssl
104-
openssl::crypto
105-
106-
z)
1+
2+
cmake_minimum_required(VERSION 3.10.2)
3+
4+
project("AIScatcherNDK")
5+
6+
set(OPTIMIZATION_FLAGS "-O3")
7+
8+
set(CMAKE_CXX_FLAGS "${OPTIMIZATION_FLAGS}")
9+
set(CMAKE_C_FLAGS "${OPTIMIZATION_FLAGS}")
10+
11+
add_link_options("-Wl,--build-id=none" "-Wl,--strip-debug" "-Wl,--hash-style=gnu")
12+
add_compile_options(-O3 -ffast-math -Wno-builtin-macro-redefined)
13+
14+
set(BUILD_DATE "NA")
15+
find_package(Git QUIET)
16+
if(GIT_FOUND)
17+
execute_process(
18+
COMMAND ${GIT_EXECUTABLE} log -1 --format=%cd "--date=format:%b %e %Y"
19+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
20+
OUTPUT_VARIABLE GIT_BUILD_DATE
21+
OUTPUT_STRIP_TRAILING_WHITESPACE
22+
ERROR_QUIET)
23+
if(GIT_BUILD_DATE)
24+
set(BUILD_DATE "${GIT_BUILD_DATE}")
25+
endif()
26+
endif()
27+
add_compile_definitions(__DATE__="${BUILD_DATE}")
28+
29+
add_library(
30+
AIScatcherNDK
31+
32+
SHARED
33+
34+
./libusb/libusb/core.c
35+
./libusb/libusb/descriptor.c
36+
./libusb/libusb/hotplug.c
37+
./libusb/libusb/io.c
38+
./libusb/libusb/sync.c
39+
./libusb/libusb/strerror.c
40+
./libusb/libusb/os/linux_usbfs.c
41+
./libusb/libusb/os/events_posix.c
42+
./libusb/libusb/os/threads_posix.c
43+
./libusb/libusb/os/linux_netlink.c
44+
45+
./rtl-sdr/src/librtlsdr.c
46+
./rtl-sdr/src/tuner_e4k.c ./rtl-sdr/src/tuner_fc0012.c ./rtl-sdr/src/tuner_fc0013.c ./rtl-sdr/src/tuner_fc2580.c ./rtl-sdr/src/tuner_r82xx.c
47+
48+
./airspyone_host/libairspy/src/airspy.c ./airspyone_host/libairspy/src/iqconverter_float.c
49+
./airspyone_host/libairspy/src/iqconverter_int16.c
50+
51+
./airspyhf/libairspyhf/src/airspyhf.c
52+
./airspyhf/libairspyhf/src/iqbalancer.c
53+
54+
./AIS-catcher/Source/Application/Receiver.cpp ./AIS-catcher/Source/Web/WebDB.cpp ./AIS-catcher/Source/Application/Config.cpp ./AIS-catcher/Source/Tracking/DB.cpp
55+
./AIS-catcher/Source/Tracking/Ships.cpp ./AIS-catcher/Source/DBMS/PostgreSQL.cpp
56+
./AIS-catcher/Source/Device/AIRSPYHF.cpp ./AIS-catcher/Source/Device/FileWAV.cpp ./AIS-catcher/Source/Device/RTLSDR.cpp ./AIS-catcher/Source/Device/SDRPLAY.cpp
57+
./AIS-catcher/Source/DSP/Demod.cpp ./AIS-catcher/Source/DSP/Model.cpp ./AIS-catcher/Source/Marine/AIS.cpp ./AIS-catcher/Source/JSON/JSONAIS.cpp
58+
./AIS-catcher/Source/JSON/Keys.cpp ./AIS-catcher/Source/IO/HTTPClient.cpp
59+
./AIS-catcher/Source/Device/FileRAW.cpp ./AIS-catcher/Source/Device/HACKRF.cpp ./AIS-catcher/Source/Device/UDP.cpp ./AIS-catcher/Source/Device/RTLTCP.cpp
60+
./AIS-catcher/Source/Device/ZMQ.cpp ./AIS-catcher/Source/Device/SoapySDR.cpp ./AIS-catcher/Source/Device/SpyServer.cpp ./AIS-catcher/Source/Marine/Message.cpp
61+
./AIS-catcher/Source/Marine/NMEA.cpp
62+
./AIS-catcher/Source/Utilities/Convert.cpp ./AIS-catcher/Source/Utilities/Parse.cpp ./AIS-catcher/Source/Utilities/Helper.cpp
63+
./AIS-catcher/Source/JSON/JSON.cpp ./AIS-catcher/Source/IO/Network.cpp
64+
./AIS-catcher/Source/IO/HTTPServer.cpp ./AIS-catcher/Source/IO/TCPServer.cpp
65+
./AIS-catcher/Source/JSON/Parser.cpp ./AIS-catcher/Source/Device/AIRSPY.cpp ./AIS-catcher/Source/Device/Serial.cpp
66+
./AIS-catcher/Source/Device/HYDRASDR.cpp
67+
./AIS-catcher/Source/Aviation/ADSB.cpp
68+
./AIS-catcher/Source/DSP/DSP.cpp ./AIS-catcher/Source/Web/WebViewer.cpp ./AIS-catcher/Source/Web/Prometheus.cpp ./AIS-catcher/Source/IO/Protocol.cpp
69+
./AIS-catcher/Source/Library/Logger.cpp ./AIS-catcher/Source/Application/DeviceManager.cpp ./AIS-catcher/Source/Utilities/StreamHelpers.cpp
70+
./AIS-catcher/Source/Aviation/Basestation.cpp ./AIS-catcher/Source/Aviation/Beast.cpp ./AIS-catcher/Source/Utilities/TemplateString.cpp ./AIS-catcher/Source/Web/MapTiles.cpp
71+
./AIS-catcher/Source/Web/BackupManager.cpp ./AIS-catcher/Source/Web/FrontendConfig.cpp
72+
./AIS-catcher/Source/Tracking/ReceiverTracker.cpp ./AIS-catcher/Source/DSP/Decoder/V2/V2Engine.cpp
73+
74+
JNI/AIScatcherNDK.cpp)
75+
76+
include_directories(
77+
# Order matters: Filters.h, airspy.h, airspyhf.h and config.h collide case-insensitively
78+
./AIS-catcher/Source/DSP
79+
./libusb/android ./libusb/libusb ./libusb/libusb/os
80+
./rtl-sdr/include
81+
./airspyone_host/libairspy/src
82+
./airspyhf/libairspyhf/src
83+
./AIS-catcher/Source ./AIS-catcher/Source/Application ./AIS-catcher/Source/Web ./AIS-catcher/Source/IO ./AIS-catcher/Source/Library ./AIS-catcher/Source/Tracking ./AIS-catcher/Source/JSON
84+
./AIS-catcher/Source/DBMS ./AIS-catcher/Source/DSP ./AIS-catcher/Source/Device ./AIS-catcher/Source/Utilities ./AIS-catcher/Source/Aviation ./AIS-catcher/Source/Marine)
85+
86+
add_definitions(-DHASRTLSDR -DHASRTLSDR_BIASTEE -DHASRTL_ANDROID -DHASAIRSPY -DHASAIRSPY_ANDROID -D HASAIRSPYHF -DHASAIRSPYHF_ANDROID -DHASRTLSDR_TUNERBW)
87+
88+
find_package(openssl REQUIRED CONFIG)
89+
add_definitions(-DHASOPENSSL)
90+
91+
add_definitions(-DHASZLIB)
92+
93+
find_library(
94+
log-lib
95+
96+
log)
97+
98+
target_link_libraries(
99+
AIScatcherNDK
100+
101+
${log-lib}
102+
103+
openssl::ssl
104+
openssl::crypto
105+
106+
z)

0 commit comments

Comments
 (0)