Changing the default window size on initial startup. The minimum
width/height are set up in main.c:create_appshell() anyway, so we can't
reduce the window small enough to cause segfaults by doing this change.
Changed one comment. No code changes.
Add information about problems with Cygwin ImageMagick. The notes in the
README.win32 refer to "recent versions" of cygwin containing ImageMagick 5.5.7,
which is very outdated. Current versions of Cygwin come with 6.0.4, and there
are real problems due to that version being linked with Display Postscript
support --- X.org stopped supporting that, and now ImageMagick doesn't work
on Cygwin unless you find a few DLLs off the net.
The paragraph I added here points the user at an article that explains the
issue and shows two workarounds (installing the DLLs or building ImageMagick
from source code instead).
Adding a diff by Tapio Sokura, which a few comment changes by me. Thanks!
This fixes the lower-case callsigns problem for internet paths.
Setting up for building RPM's for the current development version.
Setting up for the next development source version number.
Setting up to do the 1.8.4 release.
Updates by Rolf Bleher. Thanks!
Tweaks by Bruce Bennett: "I fixed some issues brought out by the latest
MySQL (5.0.x ver), added metric/english switch, rooted out some old bugs
and made some improvement on debug messages."
Fixing problems with Aloha circle units in multiple places.
Lining up the line to match the rest.
Adding another test which disables the /usr/include/magick/ directory
before attempting a compile. This disables ImageMagick.
Adding another two ifdef's so that the code will compile in the case that
we have XPM support but no ImageMagick support.
Another patch by Jesse, KF4HZU. Thanks!
Skipping any processing of lines from logfiles that begin with '#'.
A fix for numeric overlays on base-91 packets by Jesse, KF4HZU.
Some SKY bulletins came in that had "EMERGENCY" in the text. This caused
Xastir to try to process the packets twice on order to get a position first
and then pop up the emergency dialogs. Since there was no position in the
packet this caused an infinite loop as Xastir passed the packet through the
processing again and again. The fix is to NOT send a packet through the
processing again, which will make it necessary for Xastir to receive two
EMERGENCY packets if a position is not known yet for the station, but it
will at least not cause Xastir to get in an infinite loop. We also skip
storing any SKY packets now as they just take up memory and we never do
anything further with the packets.
Adding US National Grid designator to the MGRS label. If in NAD83/WGS84
they are equivalent.
A tweak by Dick Reichenbach, KC8OBZ, to split the status line into two
lines when using a 640x480 display. Thanks!
Add comments to show where it is necessary to fix data_out_ax25 so that it
isn't confused by leading white-space in commands.
No code changes. The idea was to document what I know I need to do to fix
the problem that Mike Fenske saw when the \r was added before MYCALL commands.
The quick fix was not to add the \r if sending to an AX25 port, but the clean
fix would be to make data_out_ax25 not care about leading white space.
What might be a less intrusive way of introducing that extra carriage return
into the MYCALL line.
The code for AX25 ports tries to decode the mycall line, and that decoding was
getting confused by the leading \r. This quick "fix" simply checks to see
if we're writing to an AX25 port, and if so, doesn't add the \r.
A more correct way to fix this would be to fix the decoding of MYCALLs by
data_out_ax25 so it doesn't get tripped up by the first \r. This is meant to
be a quick hack to let both things work properly until I figure out how to
desensitize data_out_ax25.
Removing carriage return I had put in before MYCALL sent to TNCs.
The original intent was to do what was supposed to be an inconsequential extra
carriage return when writing to the TNC to work around some garbled data
issues that are happening on D700s.
Unfortunately, some bit of code downstream of "output_my_aprs_data" is
seeing the extra carriage return and screwing up. Bleah.
Removing the "fix" until I figure out what is going on.
Removing double cast.
Fixing bugs in previous commit.
Added note about database.h being name used instead of db.h
Previous commit email message bounced, changes were:
1) Converted hard coded MY_TRAIL_DIFF_COLOR to user configurable
my_trail_diff_color and added to configuration ui and config file.
2) Linked station icon in station list to an onclick callback to center
the map on the station. Included alternate callback to pop up station
details window. Needs checking, as I think the callback needs to filter
mouse events.
3) Added, but haven't yet internationalized display of area in acres
when measuring distances/areas on the map. Needs to be generalised
and linked to all the places display of an area might be desired.
Three changes:
1) Converted hard coded MY_TRAIL_DIFF_COLOR to user configurable
my_trail_diff_color and added to configuration ui and config file.
2) Linked station icon in station list to an onclick callback to center
the map on the station. Included alternate callback to pop up station
details window. Needs checking, as I think the callback needs to filter
mouse events.
3) Added, but haven't yet internationalized display of area in acres
when measuring distances/areas on the map. Needs to be generalised
and linked to all the places display of an area might be desired.
Removing the '*' after our callsign when injecting packets into the
internet (our injection ID that we add).
Inexplicable fix for an equally inexplicable but very persistent problem.
My Kenwood D700 complains loudly ("EH?") almost every time Xastir tries to
set MYCALL before a posit.
This commit adds a carriage return right before MYCALL is sent. For whatever
reason, this eliminates the problem. Clearly, the d700 gets in some strange
state where the first command sent after re-entering command mode is not
recognized every time.
Since a failure of MYCALL to be set before transmit can mean the wrong
callsign (or NOCALL) being attached to a posit, this is potentially a
significant fix. I will comment more on it in a follow-up email to the
users mailing list.
A tweak by Chip, N1MIE.
Backing out the igate changes until they can be tested further. They
appear to have broken most or all igating -> RF.
Implementing command-line flags for tracking a station and for disabling
popups plus disabling Send Message dialogs on incoming messages. May need
some more tweaking to get rid of all popups, but this should be a good
start.
Attempting to igate more types of packets to RF, for the cases where it is
appropriate to do so. This should fix the directed query problem, at least
when gating _to_ RF. Will look at the other case as well (gating->INET),
which may not be broken.
Adding parsing for RDF packets, with checking to make sure they really
_are_ RDF packets this time.
Added a date/timestamp to bearing/distance popup for emergency packets.
Tweaking the processing of emergency packets (Mic_E packets and standard
packets) so that the packet gets processed twice if the first time comes up
with a 0.0 distance (which means an unknown distance). This often allows
us to match our distance check ( < 280 miles ) the first time a packet is
received, instead of having to wait for the 2nd occurrence of the packet.
Also: We now bring up a popup with the bearing and distance to the
emergency station if it passes our checks.
Added another comment in the RDF section.
Changing input focus to the first message box after sending each message.
For D700 or D7 mode to make typing messages easier.
Writing wx alerts to file in the correct format now. Storing/restoring
wx alerts from file. Fixed a bug in the weather alerts code where they
wouldn't draw right away.
Skipping NULL alert entries instead of returning when we hit the first one.
This lets us see all of the active alerts.
Logging for messages and weather alerts. Starting to add more buttons to
the Send Message->Change Path dialog.
Putting the files in correct alphabetical order.
This change implements the capability to receive messages that were sent to
our other SSID's. We don't ack them. They cause a Send Message box to pop
up like normal except there's a special note prepended to each message line
stating which SSID the message was sent to. This allows us to catch
messages sent to our other stations and respond to them if desired. We
skip displaying these messages if the message originated from our station,
as two message boxes for the same QSO is very confusing (and unnecessary).
Fixes for KISS mode when using "DIRECT PATH".
Adding context-sensitive Send Message To option to the mouse menu.
Changing to APRHH and APHH as the TOCALLS which mean a HamHUD.
Making "Mine Only" take precedence over the range in the
View->Messages dialog.
Minor fixes to the Send Message changes. Tied the select_station_type
capability into the New/Refresh Callsign button as well.
Checking for blank strings in config file, replacing with defaults where it
makes sense.
Fixing HamHUD-II detect and setting max size of messages to 20 for that
device.
Initial attempt to have the Send Message dialog automatically choose the
HamHUD/D700/D7 settings based on the remote station.
Added Send Message formatting for HamHUD 20-character display.
Adding error messages to the Send Message dialog. Fixing directed queries.
Adding D7A and D700 input modes to the Send Message dialog. Fixed a long
message bug so 67-char messages can now be sent.
Adding some warning messages for the Send Message dialog.
Changed the Capabilities display in View Incoming Data so that it shows my
own outgoing ?IGATE? packets as well.
Updated some comments. No code changes.
Implementing Station Capabilities and Mine Only options on Incoming Data
dialog. Added Mine Only and interface selection options to View Messages
dialog.
Protecting popup functions from possible bad inputs.
Implemented 120-second random delay before responding to an ?IGATE? query.
Implemented the response for an ?APRS? query, including the 120-second
random delay.
Refuse to print out the measured angle for the case where we're doing
on-screen measuring at zoom==1. Angles change at that zoom level.
Adding a comment about a future Terra/Toposerver enhancement: Crossing UTM
zone boundaries, splitting the map fetch into two fetches.
Added more debug output from map_visible()
Separating "zstr" used in UTM->lat/long calls into zstr0 and ztr1. We were
running into problems when we crossed UTM zones with a map.
Added a method to have Xastir spit out coordinates in Xastir Coordinate
System. Change a global variable at the top of main.c to a 1 to enable it.
Adding some debug statements.
Changing one comment.
Moving reload_object_item() and Restore_CAD_Objects_from_file() from main()
up into UpdateTime(). This is so that the image can be created and the
global map corner variables updates first. Points were getting rejected on
loading because these variables were not initialized yet.
Fix the Send_message_change_path_destroy_shell function so it doesn't ever
try to destroy a shell when the pointer is null.
This was causing segfaults for me whenever a messaging dialog was closed,
whether I'd accessed a change_path dialog or not.
Closing the Change Path dialog if the Send Message dialog is closed.
Setting the path and change path widgets so that they stretch properly with
the dialog.
Simplifying the Send Message dialog a bit more, taking the Reverse Path
widgets out of that dialog. They still exist in the Change Path dialog.
Minor adjustments to the widgets of the Send Message and Change Path
dialogs.
Swapping a couple of lines of widgets in the Send Message dialog. More
tweaks to lang strings for Send Message and Change path dialogs.
Creating language file entries for new Send Message and Change Path
widgets. Adding "Reverse Path:" labels to both dialogs.
Changing reverse-path calculation to get rid of Q-construct and anything
after it before reversing the path.
A better Send Message dialog. More testing to be done yet, but so far it
looks better than the old.
The beginnings of a separate dialog for changing the path from the Send
Message dialog. Mostly working as-is but not very pretty.
Added some TODO comments to Send_Message().
Cranking up max popups to 30.
A fix for bug #1474401, where an auto-answer or some other message to us
which doesn't have a message-ID ends up showing up in a Group Message
dialog. This fix makes them appear in a Send Message dialog, plus we
refuse to ack them which is correct behavior.
Changing from a 1us delay to a 2ms delay inside UpdateTime(). Adding/
changing some comments.
Moving one debug line inside the data_lock block to make sure it doesn't
get corrupted by another thread.
More correct fixes for truncation problem with new incoming data queue
code.
A fix for the circular queue pointer problem. The read pointer was not
getting advanced in the same manner around the queue as the write
pointer, giving us an off-by-one error.
A temporary fix to the new queue code problem where it truncates the last
character off the strings.
Remove commented-out ifndef of label-skipping code. It won't be needed.
Adding an #ifndef block for Tom Russo to play with. Currently commented
out. If the block is enabled it will cause Xastir to draw every label for
each polyline instead of skipping some based on zoom level.
Added some comments.
Shortening the delay at the end of UpdateTime() again to 10. Global
variables for passing data from the read threads to main have been changed
to a circular queue. This lets us queue up data from the read threads when
we're busy drawing maps and such, then process it quickly when we're freed
up.
Shortening delays so that we don't corrupt packets if we're fed them
quickly by the pipe from Xastir.
Renaming a function parameter so that it's not confused with a global
variable name.
Renaming a function parameter so that it won't be confused with a global
variable name.
Patch for RTREE functionality with the new Shapefile speed mods.
Fixing an infinite loop condition that can happen if a Shapefile has points
below -180.0 or above 180.0.
Changing from "sed --in-place" to "sed -i", perhaps more compatible across
versions?
Fixing findu.com fetch trail function for base-91 packets w/no
comment/course/speed/altitude.
Added another bit to the "remote restart" section.
Reorganization to provide speedups. This one cuts about 50% of the time
when zoomed in.
Limiting to screen size instead of +/-32767. Added a comment about another
possible optimization.
Adding an invocation line for gprof that I use so I don't need to figure it
out each time.
Removing error-text parameter from map_visible_lat_lon() as we're not using
it. Changed the order of checks in map_visible_lat_lon() to perhaps speed
things up slightly based on which lines get his most often (gprof). Changed
skip parameter for HandlePendingEvents in map_shp.c from 50 to 64, which is
a power of 2 (perhaps faster?) and roughly the switchover point (via gprof)
for lower CPU.
Added dupe-checking for screen points to draw_vector and draw_point.
Reduced the number of HandlePendingEvents calls we're doing inside the
inner loop of map_shp.c. The end result is a speedup in Shapefile drawing.
Getting rid of stub for recompute_lat_lon() function which was deleted.
Getting rid of duplicate code in the form of recompute_lat_long() and the
global variables it populated. We have duplicate functionality in the
f_NW_corner_longitude, f_SE_corner_longitude, f_SE_corner_latitude, and
f_NW_corner_latitude global variables and the code that populates them.
Took out a bit too much on one of the previous 2 or 3 revisions. Adding
computation of screen coordinates back in for trail labels.
Moving screen boundary checks into draw_nice_string() and removing them
from lots of other places.
Adding a clip2d_screen() function for line-clipping to screen boundaries.
Not used yet.
Added some sanity checking for dbfawk font_size variable.
Added some comments.
Changing to draw_point() instead of XDrawPoint for the vertice point
drawing of tracklines.
Adding protection for the parameters of the XDraw* calls, making sure they
don't go over 16 bits.
Changing the lu16 inline function to pass back the correct type and check
against the correct max number. Added a bunch of comments elsewhere.
Limiting params to X11 drawing calls to 16-bit values. This should help
prevent segfaults. We're actually limiting them more than we need to in
most cases, but this should be ok.
Added a debug line and comment. This one lets us play with/display aloha
circles on startup if uncommented.
Fix for Aloha circle not getting drawn if it doesn't fit entirely on the
screen.
A fix for a permissions problem that happens with compiledate.c every once
in a while. This fix is by Dan Brown.
Checking in a header file that didn't get checked in with the other sources
during the last commit. Dropped a couple of parameters from the
draw_symbol() function.
Fixed draw_pod_circle(), draw_bearing(), draw_phg_rng() and
draw_DF_circle() so that they draw even when the symbol is off-screen.
Fix for ambiguity box not getting disabled.
Added some comments about possible optimizations in the draw_point and
draw_point_ll functions. Commented out the check against drawing long
vectors to screen there as the clip2d* algorithms should take care of that
for us.
Moving some of the functions to a different order that makes more sense.
No real code changes.
Fix broken dbffields variables in all dbfawk files.
The dbfawk file is supposed to have semicolon-terminated statements.
Unfortunately, the parser is busted and doesn't actually handle the
case where the semicolons are omitted correctly. So, for example,
BEGIN {
dbfinfo="Blah:Diblah:Diblahdiblah";
dbffields="Blah:Diblah:Diblahdiblah"
}
winds up getting the newline-space at the end of the line added to
dbffields, and thus in the list of names to be retrieved from the dbf file.
This never matches the last field when applied to the dbf files, which have no
such extra characters in the field names.
This bug is masked by *how* the dbffields variables were actually set in
the included dbfawk files:
BEGIN {
dbfinfo="Blah:Diblah:Diblahdiblah";
dbffields="Blah:Diblah:Diblahdiblah"}
That is, since there was no newline between " and }, dbfawk didn't do the
wrong thing.
Unfortunately, many people have patterned their own dbfawk files after the
ones in the config directory, and so this missing-semicolon deal got propagated
(I am among those propagating it, as all my shape_web dbfawk files omitted
the semicolon, but also put the brace right after the "). The problem
only gets exposed when the user inserts a newline after the quote.
This commit adds the semicolon (and a newline) after the dbffields closing
quote.
The real fix is to fix the dbfawk/awk parser so it doesn't let syntax errors
like this slip through.
Renaming the window corner global variables.
Renaming the window corner global variables. Updating some new global
variables describing the SE corner in float and long format when necessary.
Renaming the window corner global variables.
Renaming the window corner global variables.
Renaming the global variables describing the corners of the map window.
Fixes for aloha circles and multipoing drawings so that they should appear
if the symbol they're attached to is off-screen.
Getting rid of unused code.
Adding clipt(), clip2d(), clipt_long(), and clip2d_long() functions. These
are implementations of the Liang/Barsky/Slater line-clipping algorithm.
Modified draw_vector() and draw_vector_ll() to use them. Changing cutoff
points for points/vectors to be consistent (+/-16000).
Changing draw_trail() to use the draw_vector() function.
Tweaking the pixel min/max cutoff numbers to make them consistent
throughout the code.
Changed one comment. No code changes.
Changed draw_point() so that if it lies outside the screen we don't call
the X11 draw routine.
A fix for dead-reckoning where the angle goes whacko at close-in zoom
levels.
Setting the precision rectangle sizes for our own station, whether transmit
is enabled or not.
Using raw.cgi instead of rawposit.cgi to fetch packets from findu. This
allows us to snag ALL packets from the station during the specified period
instead of just posits. Weather, status, etc.
Fixing the display of altnet's. Somewhere along the line we reversed it
accidentally.
Tweaking the NMEA decoding routines so that they pass back the number of
digits after the decimal point. Changing the display for NMEA so that the
number of digits changes the size of the "precision" rectangle.
Fixing convert_lat_s2l() and convert_lon_s2l() so that they can handle from
0 to 6 characters after the decimal point for lat/long conversions.
Fixing the problem where objects don't appear on the map after created.
Also fixed transmission of objects so that if they have a course/speed the
new position is sent out at the transmit interval.
The beginnings of the correct way of drawing the "precision" rectangles.
Not all of the different types of packets are correctly sized yet, but many
are.
Changing "precision" circles to rectangles, with the correct direction
offset from the symbol for the different hemispheres. They are
slightly too large at the moment, but at least of reasonable size.
The chdir() call in log_data() appears to corrupt our "file" parameter. We
don't appear to need the chdir() function call anyway, so have commented it
out. We get passed the complete root-anchored path/filename as-is.
Allowing the Station Chooser dialog to be closed without forcing the
Station Info dialog to be closed. Commenting out the restore_position
section in Station_data() as it isn't working correctly.
Changed/added some comments. No code changes.
Backing out the update of the Edit & Delete CAD Objects dialogs when
allocating the first vertice of a new CAD Object. It's a bit confusing
when the windows move on top of the drawing area when you do the first
click, so I decided not to update then.
Updating the Edit and Delete CAD Objects dialogs at more places:
*) When we create the first vertice on a new polygon
*) When we hit either the Done or Cancel buttons on the Close Polygon
dialog.
Effectively removing the rounding code that was added on 6/21/2006. The
rounding was not done properly to take into account overflow from seconds
to minutes, or from minutes to degrees.
Bumping up the min size for popup messages slightly.
A start at fixing the problem where a popup message will come up too small
on the screen and can't be resized. We now set a minimum size and don't
fix the size, so it can be resized if necessary to read the message.
Fixed double-dash option for CAD objects. Update Edit/Erase CAD object
dialogs if objects are changed. Use "<Empty Label>" names if no actual
label is selected. Commented out one message to STDERR during normal
pre-defined objects processing, fixed up another message here to use
get_user_base_dir() or get_data_base_dir() as appropriate.
Notifying the operator if emergency beacon mode is enabled but no transmits
are actually occuring, for various reasons.
Cranking up max message windows from 10 to 25.
Warning the user if ALTNET is enabled on startup (can be confusing when a
new user sets this and then sees no stations). Setting a fixed beacon
interval of 60 seconds if emergency beacon mode is enabled.
Adding more strings for popup messages throughout the code, plus language
strings for CAD Objects.
A first attempt at snagging course/speed out of the previous posit if the
last posit doesn't have it, for dead-reckoning purposes. It will only do
this if the previous posit is still within the dead-reckoning timeout
period. The goal here is to do dead-reckoning properly for stations which
alternate GPGGA/GPRMC sentences (GPGGA don't have course/speed).
Removing dead or useless code. Reorganizing some of the tests where we
determine whether to draw a particular symbol or attribute based on whether
it is in the current view.
Changing to setting flags in the station record when it's our station or
object/item, then checking flags, instead of checking the "call_sign" or
"origin" constantly throughout the code with string compares. Got rid of
the second drawing iteration where we were drawing new stations to the
screen _and_ to pixmap_final. We now draw to the screen and rely on the
next full screen-update to do the rest.
Fixing the -geometry flag so that it works for strings like:
"-geometry -0-0"
Possible fix for bug that prevents dbfawk files with a single field in the
dbffields list from working unless a colon is added to the end of the list.
This appears to be a very platform dependent bug, as I have never been able
to reproduce the problem. But the fix is still valid --- the issue is that
no null terminator is added to a field name unless a colon is found.
This fix doesn't break anything, but I'm unable to verify that it actually
fixes the problem reported, since I have never actually seen that problem
in action.
Dump a couple of messages out from map_indexer() to STDERR. This makes it
evident why Xastir is so busy when first started up in a fresh config
directory, if there are a lot of maps present on the system.
Nope, 50 was too slow, but 25 looks good so far.
Slowing down the main UpdateTime() loop again. We seem to keep up with a
2.6 kernel with nexttime=50. Previously 10.
Fixes to get rid of complete path in the config file for variables that
need to change between different configs. If a user has specified a
complete path (other than the default path), Xastir will honor it. If the
default path is there, Xastir will shorten it so that multiple configs may
use it.
Getting rid of many of the is_my_call() invocations, instead setting flag
bits in the DataRow->flag variable to specify whether it's our
callsign-SSID or whether it's an object/item owned by us. This gets rid of
literally millions of string compares.
Skip doing dead-reckoning if scale > 8000. Doing point-caching of
last-point-drawn in draw_trail() to reduce the amount of drawing we do when
it's the same screen pixel over and over (when zoomed out).
Adding a new flag definition in preparation for a rewrite of the
is_my_call() function.
Patch for bug 1522493 by Dan Brown, n8ysz: The caching "bad" files
problem. It should whack things out of the cache if, for whatever reason,
they're unusable.
More tweaks by Dan Brown, n8ysz: Cleaned up the get_user_base_dir() in
xa_config.c to be more careful about returning complete paths.
Clean up transparency code for .geo maps, removing debug output.
This now works properly for 16 and 24 bit DirectColor/TrueColor displays.
It is horribly broken for 8-bit displays, but as far as I can tell it was
horribly broken *before* I started. On 8-bit displays the WMSRadar image
doesn't even get displayed, transparent or not, before *and* after my changes.
I was unable to figure out why.
An interim commit of partial fixes to the transparency problem on .geo files.
Mostly committing this to get it to a machine that has a display that isn't
24-bit for testing.
Lots of cruft in here needs editing out after testing is complete.
Updates by Dan Brown, n8ysz.
Additions/fixes to implement alternate Xastir config directories. Patch
submitted by Dan Brown, n8ysz.
Fixing up the domain names so that they all match (for consistency).
Updating one NWS shapefile name to latest version.
Updating the text for NWS Shapefile names to match the NOAA website.
A fix for the bug where text-on-black obscure text above/below slightly due
to the black background. We now separate the text by another pixel and the
problem goes away.
Tweak transparency value. For some time now, the actual "no reflection" value
that's been coming in has been hex value 0x010101, not "0x000000". On
24-bit displays that means that the default file was displaying with an opaque
nearly-black background instead of a transparent one.
The actual no-reflection value returned by the WMS server has changed
back and forth between 0x000000 and 0x010101 often in the history of
the WMSRadar file and will probably need to be changed again some time
in the future. It has been pretty consistently 0x010101 for several weeks now.
Fixing incorrect timestamps for local station. This was causing track
points to get expired immediately so that the station didn't show a track
if being run with only a GPS interface.
Fixes for dead-reckoning 180 degree problem and for the DR arc being
slightly off.