Contact details:
- PGP Public Key
- Key ID:
3F4F317E
- Fingerprint:
E15A 44DA 2A21 F950 6D49 7D59 11DE A851 3F4F 317E
- Key ID:
- Linkedin Profile
- QRZ.com Profiles for DF1JSL and AE0YP
Multi-Purpose APRS Daemon (MPAD)
License: GNU General Public License v3.0
Contact details:
3F4F317E
E15A 44DA 2A21 F950 6D49 7D59 11DE A851 3F4F 317E
Avoid overlapping keywords. e.g. 'nite' keyword auto-sets the day to 'today' which is incorrect.
Streamline code and check if migration to https://github.com/mrJean1/PyGeodesy.git makes sense
Send APRS message to EMAIL-2.
Message content: http://aprs.fi/<users_callsign>
IGNORE message responses from EMAIL-2. We will receive (and acknowledge!) them but won't do anything else here and need to ignore them as MAPD would interpret these as commands.
Once the initial message has been sent to EMAIL-2, we will void any positive or negative responses from EMAIL-2; meaning that the ACK/NAK mail from EMAIL-2 will not trigger an additional message to the user.
Message examples:
Outgoing:
[email protected] http://aprs.fi/DF1JSL-3{19
Incoming:
Email sent to [email protected]{832
Current code cannot be reached
Example: 'hello world{0q}RB'
0q = msg id
Check if parser ignores trailing 'RB' content after msg id
Awaiting feedback from Garrett KD6KPC wrt availability of new API after the server migration has been finished.
Source: http://www.ne.jp/asahi/hamradio/je9pel/satslist.htm
Parse data, merge with TLE data and build a proper JSON object
Feedback from Hessu:
APRS message content is UTF-8 encoded Unicode and many software packages support UTF-8 unicode messaging just fine (aprs.fi, aprsdroid, aprsis32 at least). http://www.aprs.org/aprs12/utf-8.txt
Demo: https://twitter.com/aprsfi/status/1241699428903378946
https://github.com/hessu/aprsc/blob/master/doc/IGATE-HINTS.md has some more hints on character encoding and corruption issues, although it is igate-centric.
Function fails if the very first element that is to be inserted into the list has a length of exactly 67 chars. In this case, the list will contain two elements (first element = '', second is the inserted string)
Add static map image and position marker to outgoing posmsg mail
Details: see https://openweathermap.org/one-call-transfer
❗ V2.5 API gets deprecated in June 2024
Hi,
Looks like the new link is https://aviationweather.gov/cgi-bin/data/metar.php?ids=EDDL&hours=0&order=id%2C-obs&sep=true
I started up an instance on a Raspbery Pi (named mpad2 in case you see the traffic) and a buddy was helping me test it. He requested METARs and the script died. I fired it up again, and was able to replicate the issue with a different METAR request.
2024-04-09 20:34:42,236 aprs_listener -INFO- {'latitude': 32.42417, 'longitude': -97.35533, 'altitude': 0.0, 'lasttime': datetime.datetime(2024, 3, 2, 15, 33), 'comment': None, 'when': 'today', 'when_daytime': 'day', 'what': 'metar', 'units': 'imperial', 'message_callsign': 'S', 'users_callsign': 'KI7JOM-10', 'language': 'en', 'icao': None, 'human_readable_message': None, 'date_offset': 0, 'hour_offset': -1, 'satellite': None, 'repeater_band': None, 'repeater_mode': None, 'city': None, 'state': None, 'country': None, 'country_code': None, 'county': None, 'district': None, 'address': None, 'zipcode': None, 'cwop_id': None, 'street': None, 'street_number': None, 'users_latitude': 0.0, 'users_longitude': 0.0, 'number_of_results': 1, 'osm_special_phrase': None, 'dapnet_message': None, 'mail_recipient': None, 'force_outgoing_unicode_messages': False}
2024-04-09 20:34:42,236 output_generator -INFO- Running output worker generate_output_message_metar()
2024-04-09 20:34:42,848 inet -ERROR- APRS Packet: b'KI7JOM-10>APSAR,WIDE2-2,qAO,WWU::MPAD2 :metars bli{06'
Traceback (most recent call last):
File "/home/chris/mpad/src/./aprs_listener.py", line 584, in <module>
AIS.consumer(mycallback, blocking=True, immortal=True, raw=False)
File "/home/chris/.local/lib/python3.11/site-packages/aprslib/inet.py", line 185, in consumer
callback(self._parse(line))
File "/home/chris/mpad/src/./aprs_listener.py", line 306, in mycallback
success, output_message = generate_output_message(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/mpad/src/output_generator.py", line 107, in generate_output_message
success, output_list = generate_output_message_metar(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/mpad/src/output_generator.py", line 322, in generate_output_message_metar
success, metar_response = get_metar_data(
^^^^^^^^^^^^^^^
File "/home/chris/mpad/src/airport_data_modules.py", line 198, in get_metar_data
pos = meintext.find(icao_code)
^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: must be str, not NoneType
Did I break it, or was it broken when I pulled it?
Hi Joerg,
I develop another Python APRS bot backend and found your code during my development. It was very helpful to have an example to look at, and I learned a lot about APRS messaging by looking at your code.
The APRS foundation has created a discord, and on it, there's a section for APRS Software devs to collaborate. I wanted to invite you because I think we could collaborate on APRS software in the future!
The discord link is https://discord.gg/8E3ftmwP
Potential alternative: Overpass API.
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.