trendmicro / ais Goto Github PK
View Code? Open in Web Editor NEWToolkit for research purposes in AIS. See the website for the paper.
Toolkit for research purposes in AIS. See the website for the paper.
Thanks for downloading the AIS BlackToolkit! This directory contains: The AIS transmitter in form of GRC graph a1e4b54db83fb895a3c94493126bb318 AiS_TX.grc The AIS transmitter in form of script kiddie script 52540b46f316ee460f4684a262132d36 AiS_TX.py An AIVDM encoder supporting the main message types 056ac09822b342da296617ba7b4055dd AIVDM_Encoder.py Preprocessor / user interface (by Gary C. Kessler) 092d01c6a4f2e75513176b22f33a1f05 AIVDM_pre.pl The AIS Frame Builder block for GnuRadio c8b7018386f64dd725fde119f406f574 gr-aistx.tgz A NMEA encoder (binary to ASCII) (C version) 2534dc06c21fe53f45bd2abab96bb6a7 unpacker.c A NMEA encoder (Perl version by Gary C. Kessler) 52ab60db06525f2230bb4de3ee61a34b unpacker.pl Remember to install GnuRadio and gr-aistx first. A short description is included in each file's header. Good luck!
Swig isn't part of gnuradio v.3.9 anymore. It has been replaced with Pybind11 (https://www.gnuradio.org/news/2021-01-17-gnu-radio-v3.9.0.0-release/). Would be great to use the AIS tools in newer versions.
I recently installed gnuradio 3.7.13.15 with pybombs. (ref : https://github.com/Nuand/bladeRF/wiki/Getting-Started:-Linux ) However, the installation of gr-aistx with pybombs failed.
It seems to be a problem of python version (python 3 is used rather than python2.7) but I do not know how can I fix this issue.
Here, is some information concerning my OS version and pybombs installation :
OS : VERSION="18.04.3 LTS (Bionic Beaver)"
PyBOMBS Version 2.3.4a0
Prefix Python version is: 2.7.15
Gnuradio version : 3.7.13.5
Python versions : 2.7(default) & 3.6
The method encode_21 for A-to-N messages is not present in the code even tough it is called.
ais/gr-aistx/lib/Build_Frame_impl.cc
Line 127 in 6af5c3f
Not respecting buf_size causes a buffer out of bounds access, resulting in a segmentation fault.
Howdy,
When following the install-steps for gr-aistx I get stuck at the 'make' command which outputs the following error:
[ 4%] Building CXX object lib/CMakeFiles/gnuradio-AISTX.dir/nrz_to_nrzi_impl.cc.o /home/pi/ais/gr-aistx/lib/nrz_to_nrzi_impl.cc: In static member function ‘static gr::AISTX::nrz_to_nrzi::sptr gr::AISTX::nrz_to_nrzi::make()’: /home/pi/ais/gr-aistx/lib/nrz_to_nrzi_impl.cc:36:9: error: could not convert ‘gnuradio::get_initial_sptr(T*) [with T = gr::AISTX::nrz_to_nrzi_impl]()’ from ‘std::shared_ptr<gr::AISTX::nrz_to_nrzi_impl>’ to ‘gr::AISTX::nrz_to_nrzi::sptr’ {aka ‘boost::shared_ptr<gr::AISTX::nrz_to_nrzi>’} 35 | return gnuradio::get_initial_sptr | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | (new nrz_to_nrzi_impl()); | ^~~~~~~~~~~~~~~~~~~~~~~~ | | | std::shared_ptr<gr::AISTX::nrz_to_nrzi_impl> make[2]: *** [lib/CMakeFiles/gnuradio-AISTX.dir/build.make:82: lib/CMakeFiles/gnuradio-AISTX.dir/nrz_to_nrzi_impl.cc.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:303: lib/CMakeFiles/gnuradio-AISTX.dir/all] Error 2 make: *** [Makefile:160: all] Error 2
I've notcied the following issue addresses the same, but I can't find the solution to the problem there.
#15
Cheers.
Hi,
When I do the (cmake ../) this comes up:
-- Build type not specified: defaulting to release.
-- Boost version: 1.67.0
-- Found the following Boost libraries:
-- filesystem
-- system
CMake Warning (dev) at cmake/Modules/GrPython.cmake:196:
Syntax Warning in cmake code at column 44
Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
cmake/Modules/GrSwig.cmake:25 (include)
swig/CMakeLists.txt:28 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at cmake/Modules/GrPython.cmake:196:
Syntax Warning in cmake code at column 92
Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
cmake/Modules/GrSwig.cmake:25 (include)
swig/CMakeLists.txt:28 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at cmake/Modules/GrPython.cmake:196:
Syntax Warning in cmake code at column 100
Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
cmake/Modules/GrSwig.cmake:25 (include)
swig/CMakeLists.txt:28 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
File "", line 3
print sysconfig.get_python_lib(plat_specific=True, prefix='')
^
SyntaxError: invalid syntax
CMake Error at cmake/Modules/GrPython.cmake:103 (file):
file FILE([TO_CMAKE_PATH|TO_NATIVE_PATH] path result) must be called with
exactly three arguments.
Call Stack (most recent call first):
cmake/Modules/GrSwig.cmake:25 (include)
swig/CMakeLists.txt:28 (include)
CMake Warning (dev) at cmake/Modules/GrPython.cmake:196:
Syntax Warning in cmake code at column 44
Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
swig/CMakeLists.txt:29 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at cmake/Modules/GrPython.cmake:196:
Syntax Warning in cmake code at column 92
Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
swig/CMakeLists.txt:29 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at cmake/Modules/GrPython.cmake:196:
Syntax Warning in cmake code at column 100
Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
swig/CMakeLists.txt:29 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Deprecation Warning at /usr/share/cmake-3.12/Modules/UseSWIG.cmake:492 (message):
SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead.
Call Stack (most recent call first):
cmake/Modules/GrSwig.cmake:158 (SWIG_ADD_MODULE)
swig/CMakeLists.txt:42 (GR_SWIG_MAKE)
CMake Warning (dev) at cmake/Modules/GrPython.cmake:196:
Syntax Warning in cmake code at column 44
Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
cmake/Modules/GrSwig.cmake:182 (include)
swig/CMakeLists.txt:47 (GR_SWIG_INSTALL)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at cmake/Modules/GrPython.cmake:196:
Syntax Warning in cmake code at column 92
Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
cmake/Modules/GrSwig.cmake:182 (include)
swig/CMakeLists.txt:47 (GR_SWIG_INSTALL)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at cmake/Modules/GrPython.cmake:196:
Syntax Warning in cmake code at column 100
Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
cmake/Modules/GrSwig.cmake:182 (include)
swig/CMakeLists.txt:47 (GR_SWIG_INSTALL)
This warning is for project developers. Use -Wno-dev to suppress it.
Traceback (most recent call last):
File "", line 2, in
TypeError: Unicode-objects must be encoded before hashing
CMake Warning (dev) at cmake/Modules/GrPython.cmake:196:
Syntax Warning in cmake code at column 44
Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
python/CMakeLists.txt:23 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at cmake/Modules/GrPython.cmake:196:
Syntax Warning in cmake code at column 92
Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
python/CMakeLists.txt:23 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at cmake/Modules/GrPython.cmake:196:
Syntax Warning in cmake code at column 100
Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
python/CMakeLists.txt:23 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
File "", line 3
print sysconfig.get_python_lib(plat_specific=True, prefix='')
^
SyntaxError: invalid syntax
CMake Error at cmake/Modules/GrPython.cmake:103 (file):
file FILE([TO_CMAKE_PATH|TO_NATIVE_PATH] path result) must be called with
exactly three arguments.
Call Stack (most recent call first):
python/CMakeLists.txt:23 (include)
Traceback (most recent call last):
File "", line 2, in
TypeError: Unicode-objects must be encoded before hashing
CMake Error at cmake/Modules/GrPython.cmake:115 (add_custom_target):
add_custom_target cannot create target "ALL" because another target with
the same name already exists. The existing target is a custom target
created in source directory "/home/diogo/ais/gr-aistx/swig". See
documentation for policy CMP0002 for more details.
Call Stack (most recent call first):
cmake/Modules/GrPython.cmake:214 (GR_UNIQUE_TARGET)
python/CMakeLists.txt:31 (GR_PYTHON_INSTALL)
CMake Warning (dev) at cmake/Modules/GrPython.cmake:196:
Syntax Warning in cmake code at column 44
Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
apps/CMakeLists.txt:20 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at cmake/Modules/GrPython.cmake:196:
Syntax Warning in cmake code at column 92
Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
apps/CMakeLists.txt:20 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at cmake/Modules/GrPython.cmake:196:
Syntax Warning in cmake code at column 100
Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
apps/CMakeLists.txt:20 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
File "", line 3
print sysconfig.get_python_lib(plat_specific=True, prefix='')
^
SyntaxError: invalid syntax
CMake Error at cmake/Modules/GrPython.cmake:103 (file):
file FILE([TO_CMAKE_PATH|TO_NATIVE_PATH] path result) must be called with
exactly three arguments.
Call Stack (most recent call first):
apps/CMakeLists.txt:20 (include)
Traceback (most recent call last):
File "", line 2, in
TypeError: Unicode-objects must be encoded before hashing
CMake Error at cmake/Modules/GrPython.cmake:115 (add_custom_target):
add_custom_target cannot create target "ALL" because another target with
the same name already exists. The existing target is a custom target
created in source directory "/home/diogo/ais/gr-aistx/swig". See
documentation for policy CMP0002 for more details.
Call Stack (most recent call first):
cmake/Modules/GrPython.cmake:214 (GR_UNIQUE_TARGET)
apps/CMakeLists.txt:22 (GR_PYTHON_INSTALL)
-- Configuring incomplete, errors occurred!
See also "/home/diogo/ais/gr-aistx/build/CMakeFiles/CMakeOutput.log".
Can someone tell me what's wrong?
Thanks
Hi,
I already installed gnu radio and build ais-master without problem. But when I executed the graph, I got this error:
Traceback (most recent call last):
File "/home/nazmi/Documents/Pernika/Code/ais-master/top_block.py", line 29, in
import AISTX
File "/usr/local/lib/python2.7/dist-packages/AISTX/init.py", line 45, in
from AISTX_swig import *
File "/usr/local/lib/python2.7/dist-packages/AISTX/AISTX_swig.py", line 28, in
_AISTX_swig = swig_import_helper()
File "/usr/local/lib/python2.7/dist-packages/AISTX/AISTX_swig.py", line 24, in swig_import_helper
_mod = imp.load_module('_AISTX_swig', fp, pathname, description)
ImportError: libgnuradio-AISTX.so: cannot open shared object file: No such file or directory
I'm newbie in GNU radio, and hope the solution from you.
Thanks.
Nazmi
I have some challenges getting this to work
mostly failing with ImportError: No module named _AISTX_swig
To make it work, 2 things were needed:
sudo apt-get install swig
to ensure swig was installed
cmake .. -Wno-dev -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python2.7 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python2.7 -DPYTHON_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libpython2.7.so
as in my environment (Ubuntu 18.4 LTS) it kept taking the wrong python version
a second fix needed:
linux; GNU C++ version 7.3.0; Boost_106501; UHD_003.010.003.000-0-unknown
Traceback (most recent call last):
File "./AiS_TX.py", line 32, in <module>
from gnuradio.gr import firdes
ImportError: cannot import name firdes
Fix this by replacing the from gnuradio.gr import firdes
with from gnuradio.filter import firdes
Hello,
Is this tool still supported?
...
-- package 'gruel' not found
...
Gruel and GNURADIO_CORE are both elements of GnuRadio 3.6 that went away in 3.7.
gnuradio-config-info -v
3.7.8.1
I've been attempting to get this software to work for a couple of weeks now and I can't seem to pick up any messages sent over an AIS receiver. Just wondering if any helpful tips or tricks I should look at because I'm running out of ideas. Here's what I'm running:
In all cases, a signal is sent out. I've got a receiver hardwired to my radio and can see some sort of signal coming out at the right frequency. I have a signal recorder that I can use to record/playback signals. If I try to play the signal back, and hook this up to an AIS Receiver (I've tested with both a real Shine Micro AIS receiver as well as using https://github.com/bistromath/gr-ais.git). Neither one seems to be able to pick up the AIS messages being put out.
I seem to be running into a dead end here. Any help would be greatly appreciated.
Hi,
I am trying to install this module on Ubuntu 19 using pybombs, there is some problem with finding the correct python version which I was able to bypass but now I am getting an error regarding this file, any ideas or how I can get the file manually?
[ 19%] Built target gnuradio-AISTX Scanning dependencies of target test-AISTX [ 23%] Building CXX object lib/CMakeFiles/test-AISTX.dir/test_AISTX.cc.o [ 28%] Building CXX object lib/CMakeFiles/test-AISTX.dir/qa_AISTX.cc.o [ 33%] Linking CXX executable test-AISTX [ 33%] Built target test-AISTX make[2]: *** No rule to make target 'swig/AISTX_swig.py', needed by 'swig/AISTX_swig.pyc'. Stop. make[1]: *** [CMakeFiles/Makefile2:242: swig/CMakeFiles/pygen_swig_7d327.dir/all] Error 2 make: *** [Makefile:141: all] Error 2 PyBOMBS.Packager.source - ERROR - Build failed. See output above for error messages. PyBOMBS.Packager.source - ERROR - Problem occurred while building package gr-aistx: Build failed. PyBOMBS.install_manager - ERROR - Error installing package gr-aistx. Aborting.
I'm using your project as base for an AIS simulator. Implemented some code from another fork, so I can change sentence on the fly.
However, the top_block is running in endless loop, repeating transmission of a sentence. The build_frame block seems to have a "Repeat" option but obviously without effect. Repetition speed seems to be limited only be a delay at the end of "work" function in build_frame implementation.
So, how can I stop endless repetition of a sentence and create a single shot transmission?
Or, how to tell GNU radio that this flow/top_block shall run only one time then return?
Any help appreciated, thanks.
Hi @zhudsonSM, @cvanslyke, @nazmibojan and all! :)
I know this is warming up an old topic again, but after many hours of debugging, I am not really able to receive AIS messages.
I am using HackRF One to transmit messages. As @cvanslyke , I both tried Gnu Radio gui and generated python code. On the receive end I am using RTL-SDR and running piece of software called rtl_ais. When I go to next to a boat, I am able to receive AIS messages from a transmitter on the boat but when I try to to send ais messages from HackRF, I am not able to receive messages.
I have 2 good marine antennas on both end, and when I transmit, I can see on spectrum analyzer by Universal Radio Hacker something is transmitted on 162 MHz. However, on receive end I can not read the message.
Here are my GNU Radio building blocks.
Do you have any idea, what could be wrong? Huge thanks!
The new pull request on gr-aistx of gnuradio 3.7 (https://github.com/dadopap/ais) still not be compiled. Error log as below:
~/ais/gr-aistx/build$ make
[ 20%] Built target gnuradio-AISTX
[ 33%] Built target test-AISTX
[ 40%] Built target _AISTX_swig_swig_tag
[ 46%] Swig source
/home/ran2/ais/gr-aistx/swig/AISTX_swig.i:5: Error: Unable to find 'gnuradio.i'
swig/CMakeFiles/_AISTX_swig.dir/build.make:56: recipe for target 'swig/AISTX_swigPYTHON_wrap.cxx' failed
make[2]: *** [swig/AISTX_swigPYTHON_wrap.cxx] Error 1
CMakeFiles/Makefile2:213: recipe for target 'swig/CMakeFiles/_AISTX_swig.dir/all' failed
make[1]: *** [swig/CMakeFiles/_AISTX_swig.dir/all] Error 2
Makefile:126: recipe for target 'all' failed
make: *** [all] Error 2
gr-wxgui is removed from gnuradio (AiS_TX.py not working at all with the workaround of Fix this by replacing the from gnuradio.gr import firdes with from gnuradio.filter import firdes) and even compilation with python 2.7 is not possible and giving this error:
cmake .. -Wno-dev -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python2.7 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python2.7 -DPYTHON_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libpython2.7.so
-- The CXX compiler identification is GNU 8.4.0
-- The C compiler identification is GNU 8.4.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Build type not specified: defaulting to release.
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.35") found components: filesystem system
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2")
-- Checking for module 'gnuradio-runtime'
-- Found gnuradio-runtime, version 3.8.1
-- Found GNURADIO_RUNTIME: /usr/lib/x86_64-linux-gnu/libgnuradio-runtime.so
-- Checking for module 'cppunit'
-- Found cppunit, version 1.15.1
-- Found CPPUNIT: /usr/lib/x86_64-linux-gnu/libcppunit.so;dl
-- Found SWIG: /usr/bin/swig4.0 (found version "4.0.1")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found version "2.7.18")
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.17") found components: doxygen dot
-- Configuring done
-- Generating done
-- Build files have been written to: /root/Desktop/ais/gr-aistx/build
┌─[root@kali]─[~/Desktop/ais/gr-aistx/build]
└──╼ #make -j4
Scanning dependencies of target pygen_swig_a705c
Scanning dependencies of target _AISTX_swig_doc_tag
Scanning dependencies of target _AISTX_swig_swig_tag
make[2]: *** No rule to make target 'swig/AISTX_swig.py', needed by 'swig/AISTX_swig.pyc'. Durdu.
make[1]: *** [CMakeFiles/Makefile2:311: swig/CMakeFiles/pygen_swig_a705c.dir/all] Error 2
make[1]: *** Bitmemiş işler için bekliyor....
Scanning dependencies of target gnuradio-AISTX
[ 4%] Building CXX object swig/CMakeFiles/_AISTX_swig_swig_tag.dir/_AISTX_swig_swig_tag.cpp.o
[ 9%] Building CXX object swig/CMakeFiles/_AISTX_swig_doc_tag.dir/_AISTX_swig_doc_tag.cpp.o
[ 14%] Building CXX object lib/CMakeFiles/gnuradio-AISTX.dir/Build_Frame_impl.cc.o
[ 19%] Building CXX object lib/CMakeFiles/gnuradio-AISTX.dir/nrz_to_nrzi_impl.cc.o
[ 23%] Linking CXX executable _AISTX_swig_swig_tag
[ 28%] Linking CXX executable _AISTX_swig_doc_tag
[ 28%] Built target _AISTX_swig_swig_tag
[ 28%] Built target _AISTX_swig_doc_tag
[ 33%] Building CXX object lib/CMakeFiles/gnuradio-AISTX.dir/DebugME_impl.cc.o
[ 38%] Linking CXX shared library libgnuradio-AISTX.so
[ 38%] Built target gnuradio-AISTX
make: *** [Makefile:141: all] Error 2
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.