Major features in APRSISCE6P110502.zip and APRSIS32110502.zip
About version is 2011/05/02 20:54
Application identifier incremeented to APWW08 (Windows Desktop) and APWM08 (Windows Mobile)
New Enables / Logging / File Enabled will direct all Enabled Trace Logs to the APRSISCE/32*.LOG files.
Windows Mobile now supports Shapefiles to highlight NWS alert areas. In addition, a Quality setting is supported to reduce the point count and improve rendering performance. Even 0% is reasonably close.
Support configurable alternate tile sources via Configure / Maps / Tile Sets. See also http://aprsisce.wikidot.com/tile-sets
Optimized screen repaint time as well as initial startup time.
Many different menu options show additional information about what they affect. This is especially interesting in the View menu options.
Show additional "Receive-Only" and/or "Disabled" status in transmitted IGate Capabilities.
If you think your scrolling stations pane is wider than necessary, use the new Clear / Accumulated / Max Width Station option to reset it.
MultiTracked MultiLine objects (NWS alerts) automatically zoom to show the whole area.
APRSISCE/32 now honors NOGATE and/or RFONLY to suppress gating RF-received packets to APRS-IS.
Many new popup and notification filter options in Configure / NWS.
Support Nicknames for stations that provide an alternate label (possibly blank) as well as an optional symbol and comment override. See Screen / Labels / Nicknames. You can even re-defined "ME" and/or Me's symbol with this feature.
ME's station popup now shows the local sunrise and set times.
There's a new Configure / Overlays menu that allows you to load and enable/disable UI-View-style .POS overlay files. Enabled files are remembered and re-loaded across client restarts as well. Status Lines must appear after the position line to ensure overlay station creation. Overlay stations are protected from the normal age-based station purger.
PHG/RNG circles are now optionally displayed via Screen / Range Circles.
Both DFS and /BRG/NRQ direction finding objects are fully supported for both display and object transmissions.
Area objects (chapter 11 in aprs101.pdf) are now supported for both display and object transmissions.
Various on-screen area overlay colors now support individual Opacity settings.
Right click via tap-and-hold is now support on Windows Mobile platforms.
Read below (well below) in the detailed release notes for a description of various direct-coordinate access functions now accessible via the right-click menu.
Objects are now groupable for eventual group manipulations (like enable/disable).
QRU server and queries are now supported. Wiki page will be coming soon. QRU groups are object groups whose name starts with a question mark (?).
?APRSH now defaults to responding with the hourly traffic counts for the requesting station.
?APRSO now supports an optional specific object specification to trigger the transmission of that one object.
Support a new ?DX to return the furtherest directly heard station on each RF port in the most recent clock hour. DX information can also be transmitted in a Status Report packet automatically.
Details for APRSISCE6P110502.zip and APRSIS32110502.zip
About version is 2011/05/02 20:54
Fix a minor issue where a popup menu started with a separator if you were centered on Me and had no preferred view set.
Move all non-enabled/non-visible Trace Logs to a sub-menu on the right click popup. There's getting to be too many of them!
Add better PaintCircle() timer diagnostics tracking down NWS weather shape drawing performance. 1.3 SECONDS to draw a 50% lit up USA is way too long!
Corrected shape drawing optimization that was inadvertently disabled by another chunk of code. Normal shape drawing performance should be better. Optimizations are re-calculated when a window is panned or sized, but only for one paint interval.
Corrected height of packet display window when GPS Satellites are visible. It was stretching gray down over the left edge of the satellites.
Split Enables / Logging / General+File into 3 options, General, File Enabled, and All At Start.
Corrected parser bust for NWS messages that weren't flagged as NWS if they ended with <cr><lf>.
Added Shapefile support (outline only, no fill) to APRSISCE for Windows Mobile. Expect this to be SLOW when new objects are received! ShowMe is also painfully slow (15-60 seconds) as every enabled shapefile is scanned to determine if the center coordinates are inside any particular shape..
Updated Configure / NWS Shapes / ShowMe to mark test objects as expiring in 1 minute instead of immediately to allow them to be zoomed on WinMo.
Support configurable tile sets. See Configure / Maps / Tile Servers / New Tile Server and Screen / Tile Server / <whatever>. Be aware that WinMo has issues getting directories created for the new tile set and it's really, really NOT a good idea to put two sets into a single directory.
MultiTracks can use Screen / Tile Server / <whatever> to view with a different tile set. This is NOT remembered.
Whatever tile set was last configured (or is checked) under Configure / Maps / Tile Servers is the set that will be used for all windows after a restart. Screen / Tile Server / <whatever> is not remembered.
Configure / Maps / Tile Servers / <whatever> offers a Flush button to delete all disk-cached tiles for that set. As soon as you zoom or move any window using that set, tiles will be re-fetched.
Optimized startup time (slightly) by eliminating several redundant things being done with the XML configuration file (which is growing rather large recently).
Changed the compressed packet formatter to avoid trailing spaces if no csT is warranted. It now emits <space>sT (literally) instead of <space><space><space> because some IGates/TNCs strip trailing blanks invalidating that packet. (Julian G4ILO)
Found an issue with CWOP connections that were only receiving the Add Filter instead of the full automatic one. This is why CWOP seemed to only work with a full feed! It should now receive the range filter and everything else that the APRS-IS server(s) receive. (Kevin W7BOZ)
Sometimes right after the client starts, the wrong TraceLog will open when one is selected. This should no longer occur. (New logs were being added and sorted into the list while the indexed menu was being displayed)
Only draw areas for Object Type of Polygon (0) from http://www.aprs-is.net/WX/MultilineProtocol.aspx and ensure that the area is actually closed (last point == first point). (I'm building up support for some internal non-polygon but Line Segment MultiLine objects).
Increase performance timing around NWS shape objects to hopefully make it more efficient.
Add a shape object cache to improve response (twice as fast as shapes are actually hit twice per event). More indexing changes to come.
Double-clicking empty map space will now show your current Tile Set (new name for Tile Server) and zoom level along with the x and y for the tile at the CENTER of the screen. If Internet and Tile Fetch are both enabled, the tile's /status URL is retrieved and added to the popup as well. (Colin 2E0XSD)
Support Config / NWS Shapes / Quality… as a percentage. 100% is full quality, 0% is worst quality (but highest performance).
Configure / Screen / Speed Font Size… sets the font size multiplier for GPS speed. 5 is the default. 0 disables the speed display.
New Clear / Clear NWS Messages especially for those running *ALL* with Configure / NWS / Messages checked! ()
Screen / Preferred / Save now sets Preferred at the bottom of the screen even before the next refresh. (Greg KO6TH)
Clear menu items now show the count of item under that topic (except for Clear Tracks which takes a lot to calculate). They also now disable themselves if their number is zero.
Right-Click menu's Preferred option should now work under Linux/WINE. Apparently, their menu logic doesn't like negative menu item IDs. (Greg KO6TH)
Fixed Clear menu counters under Windows Mobile. They weren't working in the initial incarnation. (Lynn KJ4ERJ)
If you have Close Confirmations enabled (<View.ConfirmOnClose> in the XML), you now get an option to Restart. (Anyone got a suggestion on where to put a "Restart" menu option? - Respond even if you don't, this is a test to see how many people actually READ these!)
Improve performance of coordinate->screen optimizer for area shapes. Almost acceptible zoom/pan performance with lots of (0% quality) areas on WinMo w/*ALL* enabled.
Rework determination of IGateEnabled internal status to better suppress IGate trace log messages and/or IGate Capabilities transmissions.
Trigger IGate Capabilities transmissions when anything actually changes instead of waiting for the next normal interval. This includes "Receive-Only" as well as "Disabled" in the event that you muck with individual RF Port settings.
Only report RF ports in response to ?IGATE query and then, only if IGateEnabled is true. Also include protocol of the port.
Don't RFtoIS IGate received 3rd party packets per spec.
Add a separator to Enables / RF Ports menu between global options and the individual port names. (Rick KD4DRA) (James VE6SRV)
Disable all individual ports under Enables / RF Ports if the global All is not checked. (James VE6SRV)
Clear menu has moved some lesser-used options to cascading menus of "Accumulated" (AltNets, Bulletins, Telemetry) and "Configured" (Auto-Repliles, Beacon Comments, Status Reports, Symbols).
The FilterTest and IS-Server Trace logs now include details about which filter term hit or nix'd the packet. Note that 'nix's won't show up in FilterTest because it only shows the packets that PASSED the filter! (Yes, I went crazy trying to debug that…) Oh, and they also don't show up in the IS-Server port log except for messages and unless you're using port 6360 (my debug instance's port). This is because a full feed's filter misses are rather huge!
Fixed an issue with the IS-Server implementation that would not allow downstream clients to send messages to or receive acks from the IS-Server itself. It now also cross-connects messages for downstream clients with a common base callsign (sans-SSID). I still need to implement automatically forwarding messages destined for stations received by downstream clients.
Fixed Message / Send Message to properly bring the most recent selection to the top of the list. Also, selecting Message from a station popup menu now remembers the station for the Send Message drop-down.
New Clear / Accumulated / Max Width Station to shrink the width of the scrolling station log if it seems like it is running wider than necessary. This width "learns" based on the width of new station IDs, so the scroller may truncate some wider known stations as it "re-learns" the required width. The menu option also displays the current widest station callsign.
Centering on a MultiLine now auto-zooms the current window so that the MultiLine is completely visible. If it is already zoomed out sufficiently to see the whole object, no zoom change occurs (In other words, it will only zoom out, not in). This also applies if you MultiTrack a MultiLine object.
Found out that the CWOP ports were STILL not transmitting filters because they're implicitly Receive-Only ports. I believe I have it fixed for sure this time!
Index shape files the first time they are referenced. This DRAMATICALLY improves subsequent shape-file-based object creation on WinMo with no additional time required on the first one beyond what the original code was taking. Of course, there IS a memory trade-off! But at least the pregnant pauses when shape objects arrive is now gone. I may even be able to throw out (or at least time-purge) the shape-file object cache previously implemented.
Change Tile Server to Tile Set in menus and dialogs. XML is locked in, unfortunately, but eventually no-one will ever need to go there.
Add /status checkbox to Tile Set configuration dialog. CloudMade doesn't seem to support /status URLs. MapQuests's Aerial view seems to field it, but returns an empty response. You can test the /status of your Tile Set by double-clicking an empty space to get the OSM Map Tiles popup. If the second line has "Tile is …" in it, then /status works. If not, you might want to uncheck the /status.
Add local tile file date/time information to OSM Map Tiles popup. This is working towards the "Refresh" and "Auto-Refresh" features for Map Tile Sets.
OSM Map Tiles popup now includes tile counts and disk usage information for each Tile Set separately.
Added new IGateEnabled trace log to assist in tracking down IGate issues. I suspect a startup race condition, but I sure hope it's not!
Added numbers to the View menu elements to show how many stations will match that particular station. This does not apply to the View / Symbols cascade as those are more intensive to match and count.
Support View / Objects as a filter criteria to see only owned objects and not real stations.
Disable RFtoIS IGating packets that have NOGATE or RFONLY in their path, regardless of before or after used components.
Fixed an oversight that would create multiple NWS objects for a single alert if received multiple times and interleaved with other alerts. (Adjacent duplications were working correctly).
Slam any NWS-CANCL or NWS_CANCL expiration times to the current times so as to expire the objects immediately.
Support "Signpost" objects/items (aprs101.pdf page 61 (71 in Acrobat)). See MARCVE for an example. Signposts are a symbol of \m and display the value between {} from the comment instead of the object ID as a label. (Pete AE5PL)
Standardize View menu handling between Main windows and Trackers (but only main can do EchoLinks and GeoCaches). This should put the counters on the MultiTrack's View menu options. (Brian KC2KJQ)
Flush all shape and shapefile caches if Configure / NWS Shapes / Enabled is unchecked. This frees up memory which is particularly precious on WinMo.
APRS-IS OK's double-click popup (Port Status) now includes lots of internal information about memory allocations until I determine if there's a leak or not.
IS-Server ports now display the active/maximum inbound connections. (Max is a hard-coded 16 until I find reason to change this)
Copy the course and speed (if valid) from each GPS packet into the ME station info block so that ME's labels will display speed/course if so specified in Screen / Labels / Speed / Beaconed. Me's altitude is also now updated with every GPS update instead of only when a beacon is generated. (Adrian VK2BAC)
Only cache NWS shape objects for 30 minutes as they take copious amounts of RAM (precious on WinMo) compared to how long they (now) take to re-construct (thanks to the Shape Indexes).
FilterTest (Control-G) trace log now includes the port over which the filter-matching packet was heard. (*INT*) is an internally generated APRS packet.
Fix the NWS MultiTrack popup trigger to honor the enabled NWS Offices. As it was, if you received any MultiLine NWS-looking object, it would pop up, regardless of what Offices you had enabled. This mean that when an alert met Pete's criteria, popups happened. This has been fixed. (Steve KF6WAX)
Station memory has been added to the APRS-IS OK window double-click popup (Port Status) as well as the Close Stations popup.
Memory utilization information only appears when running the Devleopment version (preparing for a general release without such flack).
New Configure / NWS / Show Offices which works similar to ShowMe, but pops up a MultiTrack showing a composite object of all of the zones for which your configured NWS Offices are responsible.
New Configure / NWS / Popup MultiTrack / MultiTrack Prefer Specific which will prefer a MultiLine object over an internally generated Shapefile Area object for the purposes of a popping a MultiTrack for a specific alert. Note that depending on the arrival of the NWS messages vs the MultiLine object, an area object might appear for up to 30 seconds and be replaced by a subsequently arriving MultiLine object.
Improved error messages around Configure / NWS / Show Offices. You MUST have at least one enabled office other than *ALL* for this to be useful and it now tells you so. (Rick KD4DRA)
Configure / NWS / Show Offices now gives a popup per office as well as the total coverage of all enabled offices. Of course, you need to have enough available MultiTracks to show them all!
Trying to figure out why non-printables are showing up in WinMo's APRSISCE*.LOG files when a KISS port is enabled. Win32's APRSIS32*.LOG files correctly hexify the KISS transmitted packet.
Split "Show Individual" apart from "Show Coverage" under Configure / NWS / Show Offices. The menu items disable themselves if no shapefiles or offices are configured or if there may not be enough available MultiTracks to satisfy the request. (Randy WF5X)
Fixed a minor issue in the naming of the internal NWS shape-based zone objects that would cause one out of every 62 to not be constructed properly. (Did you know sizeof(char[]) isn't the same as strlen(char[])? Stupid trailing \0 inside a constant quoted string…)
Reduce the length of the automatic filter by combining compatible terms (b/, o/, and p/). There IS a max length that is easy to hit if you have too many Await() MultiTracks at startup!
Reduce the ANSRVR D-escribe Groups response to only send one line per described group and lump non-described groups on "Also:" line(s).
Require a group name on CQ or Join command (no more blank groups).
Fixed a bug in Config / NWS / Show Offices that was causing the county shape files to not light up. TAE no longer has any holes!
Now handle a duplicate zone entry in a shapefile by picking up the largest shape by area. I'm hoping to merge the multiple shapes together eventually.
And now it merges multiple instances of a single zone from a single file into a single object for display. This fixes those few objects that are actually defined mulitple times in the shapefiles (probably less than 50 out of over 3000).
If an NWS messages doesn't get picked up as an active office, but Eavesdropping is enabled, flag the message as NWS anyway for Clearing purposes. (Kevin W7BOZ)
Improve performance of queueing map prefetches by locking the queue once instead of repeatedly for each tile.
Limit one thread to fetch ONLY display-demanded tiles. Limit prefetch tiles to a single thread. Other threads will do display and/or area fills.
Disable Configure / Map / Prefetch if more than 10,000 tiles are in the queue to be nice to the servers and have a chance of actually completing the queue.
Configure / Map / Prefetch now shows the number of tiles currently in the queue. This is so you can see if it has dropped below 10,000 to queue more!
Don't display AVRS on popup menu unless station appears to support APRS Messaging
Support Nicknames for stations that provide an alternate label (possibly blank) as well as an optional symbol and comment override. See Screen / Labels / Nicknames. You can even re-defined "ME" and/or Me's symbol with this feature. (LotsOfPeople!)
Add a Nickname option to the station popup menu to directly configure that station's Nickname.
Default Nicknames to ON (Screen / Labels / Nicknames / Use Nicknames) and ensure that there's a "Me" Nickname for the instance callsign-SSID at startup. If you delete it, it will come back!
Don't allow spaces in Announcement Group names. (Steve G6UIM)
Remove leading and trailing blanks from Nickname fields to ensure visibility.
Scrolling station log now display Nickname's Label if it is non-blank. It also now uses the Nickname symbol if overriden. (Daniel KB3MUN)
Corrected "d" in Enabled in Nickname configuration. (Daniel KB3MUN)
Added "Click to Change" to Configure / General to highlight how to change the symbol.
Added "BY" to recognized custom overlayed symbols per http://www.aprs.org/symbols/symbols-new.txt
Correct sort of Screen / Labels / Nicknames to be by Label and within Label by Callsign, not the other way 'round. Note that ME's nickname (the configured station's callsign-SSID) will always be at the top.
New View / Nicknamed will include stations for which there is a defined and enabled Nickname (receiving-end AltNet!) (Daniel KB3MUN)
Remove redundant "MultiTrack" words from NWS / Popup MultiTrack cascading menu
Support Configure / NWS / Popup MultiTrack / Me, Range, and Moving to reduce the popups to imminent (Me and/or Range) or interesting (Moving) NWS Objects.
Only transmit (Reset)Odometer and (Close)Odometer if Configure / Beacon / Why is checked as this modifies the comment viewed at various APRS-IS sites. (Rick KD4DRA)
Track Stretch time component of Build time to attempt to explain some slow-performing map compositions that are being logged to KJ4ERJ-DB (Debug support instance).
Include configured range on "Range" popup menu option and suppress option if configured range is zero.
Increase limit on single filter component piece count from 16 to 32 (for complex b/ filters)
Make individual checkboxes for Override Label, Override Symbol (existed), and Override Comment (removed blank…) for Nicknames. Note: You may have to visit and/or re-configure your Nicknames to have them do what you want. (Paul) (James VE6SRV)
If you change the Station ID for an existing Nickname Label, the previous Station ID's nickname will be automatically disabled so that the label only refers to a single enabled Station. (The previous station used to be deleted!)
Call me stupid, call me blind, but I finally saw the polygon fill routine on Windows Mobile. APRSISCE now fills areas on both platforms. Note that you probably want to crank Configure / NWS Shapes / Quality down to 0 or shape drawing performance is abysmal. On the small screen size, the shapes actually come out looking pretty good anyway!
If an NWS object is issued in the future, it is drawn in outline only. It will fill in once the issue time is reached and remain that way until it expires. The station popup says "Forecast:" instead of "Issued:" until the issue time is reached.
Screen / Follow / Find (Control-F) adds enabled Nickname labels to the dropdown and honors them if entered.
Message / Send Message adds enabled Nickname labels to the dropdown and honors them if entered.
If a window is following a Nickname labeled station, the Track() in the title and bottom center will be the Nickname label.
If Configure / Screen / Date/Time is displaying anything, then the background will be a pair of green-to-red bars indicating how much CPU time is being consumed by APRSISCE/32. The top bar is instantaneous and the bottom is cumulative since the process started. Full red is 100% consumption which you might not ever see on a multi-processor machine, especially 4 or 8 cores.
A new Configure / Screen / Date/Time / Performance option will replace the date or time with various performance numbers that I'm working with. Current it shows N/M*S where N is the number of circle repaints that executed over M seconds with an average paint time of S milliseconds. This is VERY revealing on Windows Mobile and I'm working to reduce it.
Found some HUGE inefficiencies and redundancies in the adjacent tile fetch logic that were causing the maps to be slow to load when you looked at a new area. All adjacent tile queuing (out 2 levels, in one level, +/- one tile at current level) is now only done on the OSM fetcher threads when a specific tile was successfully retrieved. User interaction response should be MUCH improved when new areas are viewed for the first time.
Optimized station coordinate calculation by caching the screen point and only recalculating if a) the screen moved or zoomed, b) tile set was changed, c) the station moved, d) a non-message or bulletin was received from the station (can change view category), or e) the View options were changed.
Given the recent discussion about objects and distance/bearing, I've updated the behavior of the Object configuration's GoTo button. If you bring up the object configuration dialog and click GoTo, the object is formatted and parsed locally only and the main map window is centered on the Objects's lat/lon. If you do that and don't see the object, check your View settings and/or make sure you don't have the KILL flag set! (voice of experience here). Note that any changes you make to the object must be Accepted and then go back in to the object to use the GoTo option.
Also, I picked up a few more toCall recognizers from http://www.aprs.org/aprs11/tocalls.txt (Thanks to Steve G6UIM for pointing out the already obsolete APAND1).
Fixed track and altitude visiblity for a centered station even if that station is panned off the screen. This is required for viewing balloon tracks trying to find the max altitude beaconed. (Steve G6UIM)
New Configure / Screen / Label / GeoCache / Max Labels which governs the maximum number of GeoCache labels that will be on the screen REGARDLESS of the font size.
New Configure / Screen / Label / Allow Overlap. If you check this, APRSISCE/32 doesn't try to keep labels from overlapping but simply puts them to the right of the symbol. This saves CPU time, but looks really bad when you're used to the smarter way. Altitude labels on the centered station tracks will still avoid overlapping for readability.
Look for the new Sun: Rise: hh:mm Set: hh:mm in ME's station popup. Let me know if the values look correct for the local time at your ME station!
Fixed the parser to eat the sT following a blank c for compressed packets. (Randy WF5X)
Fixed View / Geocaches… to properly close the file after loading it.
The station popup now only shows Nickname information for the station if Screen / Labels / Nicknames / Use Nicknames is checked. (Julian G4ILO)
There's a new Configure / Overlays menu that allows you to load and enable/disable UI-View-style .POS overlay files. Enabled files are remembered and re-loaded across client restarts as well. Status Lines must appear after the position line to ensure overlay station creation. Overlay stations are protected from the normal age-based station purger. (Randy WF5X)
New Configure / NWS / Messages Not All that suppresses NWS messages from lighting up the green message pane if they didn't come from a specific NWS Office, but came from *ALL*. The area objects will still be created, but the NWS messages will not be queued for reading.
Found and fixed yet another lurking isxxxx() that didn't strip off the sign extension. The following packet would kill APRSISCE/32 (note the accented O in APÕ25N). It doesn't now. I'll get all of these fixed eventually!
KA4REY>APU25N,WC4PEM-15*,WC4PEM-14*,WIDE2*:}WX4JAX>APÕ25N,TCPIP,KA4REY*:=3029.04N/08142.10WW- WELCOME TO WX4JAX
Given the "disappearing comm port" feature of the USB-connected D72s, and my own BT experience, I hopefully am fielding the "status -1 …. cprtns.c" errors so they won't loop so fast. The port reader should now close the port and go into the "Delay" loop at a much slower pace. At least the port shouldn't keep saying "OK" (and beeps should get obnoxious) so we might be reminded to disable the disconnected port.
Check out the new View / Symbols complete with counts and percentages sorted by most popular at the top.
Parses RNGnnnn from packets and shows in station popup as Range:
Optionally (Screen / Range Circles…) displays 1/2 (Half:red) or full (Full:green) size PHG/Range circles. Directional PHG is displayed as a caradoid thanks to Hessu of aprs.fi. Note: If the station isn't visible on the map, the range circle will disappear also. It really only works at higher (further out) zoom levels. Range circles area also suppressed based on the Visible Label Count, if you can't see labels, you won't see circles. Use the View options to reduce the station count, particularly View / Transport if interested in APRS infrastructure (digis and Igates).
Range circles now have a bolder border so you can see the overlaps more clearly. (Steve G6UIM)
DFSshgd (page 29-30 of aprs101.pdf) are now parsed and displayed in the station popup. I'll render these when/if someone can define how to calculate the size of a circle/cardoid based on an S-unit value ("inversly proportional to signal strength" per http://www.aprs.org/dfing.html).
/BRG/NRQ (page 30 of aprs101.pdf) are now parsed and displayed in the station popup but ONLY for DF (primary table / symbol) stations (page 34 of aprs101.pdf: Note: The BRG/NRQ parameters are only meaningful when the report contains the DF symbol (i.e. the Symbol Table ID is / and the Symbol Code is \). I'm considering displaying these as a pie-slice wedge sized for the specified range, centered on the bearing and going +/- Quality degrees/2 (bottom of page 30 in aprs101.pdf).
Fixed a bust when double-clicking empty map space if the center tile was not present in the cache. This would cause a lock to not be released causing the tile fetcher to slow WAY down (like to one tile per second, max). Note: If you have a LocFails.log file in root of your mobile device or in the current directory on Win32, you can delete it safely at any time.
Added parsing and display support for Omni-DF Signal Strength (DFS) and /BRG/NRQ DF Reports.
Added Object configuration options for Omni-DF Signal Strength (DFS) and /BRG/NRQ DF Reports.
Support Power/Height/Gain (PHG) configuration on both Configure / General and Configure / Status, both of which add the PHG to the beginning of the comment.
DFS circles are now scaled according to the equations at: http://www.aprs.net/vm/DOS/DF.HTM (Randy WF5X)
Enabled objects that are configured for neither -IS nor RF transmission will now be parsed and displayed locally as a station. This will give DF and DFS (and other) objects a way to be locally displayed without the GoTo Two-Step. These objects should appear within a minute or so of client restart, at the same time that other objects are polled for transmission. (Note: If the Interval is zero, the objects will be refreshed at the Stations.MinAge rate to keep them from aging out. You can see this via Enables / View Logs / Packets(Internal)).
Internally "heard" stations/objects should no longer be flagged as "RemRF" on their station information popup.
DF objects not de-selected by the View menu options will be drawn even if the base object is off-screen. (James VE6SRV)
There's now a PHG button on the Object configuration dialog. (Julian G4ILO)
Generated beacons are now processed internally to allow comment-based things like PHG circles to show up for ME. Let me know if ME's station popup starts displaying strange data. This will also mean one more instance of your own callsign-SSID scrolling by in the scrolling stations log as that shows EVERY packet processed. Your beacons will now also show up in Enables / View Logs / Packets(Internal).
Fixed Screen / Range Circles / Half/Full toggle behavior (Half wasn't working right).
Use …/… as prefix course and speed for DFS's /BRG/NRQ so as not to display 0 N on all of the DFS objects.
Don't count …/… or " / " as valid course and speed for displaying as labels. They're still stored as 0 and 0, but not marked valid.
Parse and flag Area Objects (\l alternate table, lowercase L) as not being course/speed but Tyy/Cxx per page 60 in chapter 11 of aprs101.pdf.
Display Chapter 11 area objects except for Ellipses. See also http://www.aprs.org/aprs11/areaobjects.txt
Describe RH symbol as "Radiation Detector" per http://aprs.org/symbols/symbols-new.txt
Parse 'X' radiation measurement from weather data per http://aprs.org/aprs12/weather-new.txt. This is not display-optimized, but will show on the station popup dialog for any station that includes X in the weather.
Parse 'V' battery volts from weather data packets. This apparently comes from water guages per http://aprs.org/aprs12/weather-new.txt. This is displayed on any station that includes it in the weather data.
Parse and display upcoming new |ss1122334455bb| telemetry data from comment strings. This is base-91 encoded sequence, up to 5 channels of analog, and 8 bits of digital data. The minimum is |ss11| and can include additional channels as desired. This should come at the END of the comment, possibly before the !DAO! however. (Byon of Byonics/TT4 fame, transmitting as N6BG-2)
Improved spec compliance by supporting abbreviated telemetry parameter definition messages. APRSISCE/32 used to require all channels to be defined. (Byon N6BG-2)
Parse weather-formatted data from all Hazard (H symbols in any table and/or overlay) if present. (Bob WB4APR)
Fixed a bug whereby if the first packet from an Awaiting station had no position, the MultiTrack would jump to 0,0. However, when a position WAS finally received, it would not center to there. Fixed. (Marta KJ4OVQ-9)
Added missing View / Symbols / None & enumeration to MultiTrack menu.
Changed Screen / Range Circles to Screen / PHG Range Circles to make it more clear where they come from.
Support Screen / Direction Finding / Enabled & Opacity to control separate from Range Circle Opacity.
Overlap Direction Finding objects (both DF wedges and DFS circles) to provide better highlights.
Changed description of /\ symbol from "Triangle" to "DF Triangle".
View / Symbols will now place the center station's symbol at the top of the list. This makes it easier to filter for all DF Triangles after centering on one.
Removed temporary OSMTiles location retries as it didn't fix Colin's slow SDHC card anyway.
Fix the middle (APRS-IS quiet time) progress bar in the APRS-IS OK to count up to the Quiet time. Unfortunately, it doesn't reset on keepalives from the APRS-IS server (yet), but only when real packets are received. (Steve KF6WAX)
Support right click on Windows Mobile by tap-and-hold the stylus on the screen. This enables right click popup menus.
Add the Lat/Lon of the tapped screen position to the bottom of the right click popup menu. Use your imagination to see what's going to cascade off of this one!
Don't learn new NWS Entry Servers without q-Construct or if qAR (Received From Radio) (KG4NVN-13 gated a corrupted duplicate…)
2011-03-27 01:40:15 UTC: MEGSVR>APRS,qAO,AE5PL-WX:;MEGSVR1AA*270200z3405.40N\08949.20WT084/040 SVR_STORM }d0]MOOOPHMHMO{R1AAA
2011-03-27 01:40:19 UTC: MEGSVR>APRS,TCPIV,WF4Q-1,KA4BNI-5,WIDE2-1*,qAR,KG4NVN-13::NWS-WARN :270215z,SVR_STORM,MSC057-081-117-141{R1VAA [Duplicate message ID]
Corrected GMT/UCT to GMT/UTC in Configure / Screen / Date/Time menu option. (Steve G6UIM) Note that all beacon timestamps are still in local time. These will be changing to Age: +d hh:mm:ss at some point in the future.
Object definitions now allow the specification of a "Group". Configure / Objects puts Groups as cascading menus. Nothing else affects groups (yet). (James VE6SRV)
Object manipulation just got easier with the following Left/Right click options: (James VE6SRV)
Left click on a SINGLE station (not a stack of stations)
If the station is a locally-owned Object, "Configure Object" will be offered
Further, if the locally-owned object is an area object, Change Shape and Change Color are offered
Right click anywhere BUT on a single station (Right click on single station centers)
A new cascading menu is offered showing the coordinates of the right click, this menu can:
"Move ME HERE" - Pretty obvious, w/confirmation
"Create Object HERE" - Also pretty obvious
"Create Shape HERE" - Cascading menu with allowed shapes, size will be 1/2 of scale
"New DF @ Center" - Creates new DF object at center pointing North at circle scale
"New DF HERE" - Ditto but HERE, Both will bring up Object Configuration with DF button for tuning quality and range
IF you are centered on a locally-owned object, with a right click you can:
"Move xxxxx HERE" - Moves the object to the clicked position
IF you are centered on a DF object when you right click elsewhere, you can also:
"Point xxxxx HERE" - Rotates the DF bearing to center cone through click
IF you are centered on an area object when you right click NW of the anchor:
"Stretch xxxxx HERE" - Moves the "other" point of the area to the click
(Note for Line Down/Left objects, you must right click NE of the anchor)
You may wonder why the strangeness about the area object quadrants? Well, there are two points that define an area object, the actual object location (red X, Alternate Table, lowercase l (L - el)) and the "other" point. This other point is used to determine the size of the object and is specified as a lat/lon offset in 2 digits where squares and 1500 enter into the equation. The bottom line is that they are positive offsets that go North and West per spec, except for the "Down/Left" line which goes North and East. (Note: if you read Chapter 11 of aprs101.pdf this sounds backwards, but we're stuck with what APRSdos DOES, not what the SPEC says. See also: http://www.aprs.org/aprs11/areaobjects.txt).
But, the strangest thing is exactly what that other point defines for the shape. Here's the scoop:
Box - Coord is lower right, Other is upper left
Circle - Coord is center, Other defines radius (I average the two)
Triangle - Coord is lower right, Other is apex of Isosceles of double-width
Ellipse - Completely undefined, I treat as box for now
Line - Coord is lower point, Other is upper point (left/right depends on which line)
Change \l description from "Area Locns" to "Area Objs"
Added "Kill Object" with indicative checkmark on Left click popup menu for locally-owned objects. Remember, if you Kill an object that is not currently centered, it will DISAPPEAR from your map! If you center it first, you'll be able to see it go gray and possibly UnKill it more easily.
Added Enable, Via -IS, and Via RF to the Left click popup menu for locally-owned objects.
New DF @ Center points to right click bearing and New DF HERE points to center. This saves a separate "Point Xxxx HERE" step.
Added Quality cascade to New DF @ Center to allow streamlined DF object creation when running with a GPS keeping you centered. You don't even need to go into the DF dialog, but simply Accept the new Object.
Show Enabled but Killed owned objects on startup for about 30 seconds, also freshly killed objects will stay visible for a bit, until purged.
Don't allow a new object to duplicate the name of an existing object. (James VE6SRV)
Fix screen repaint optimizer to actually remove time-aged and deleted stations within a reasonable time.
If you Delete an Enabled, but not Killed object, it is marked Killed and transmitted once on any/all configured Vias. At least it gets deleted from your local screen!
Now support {miles} specifications on line area objects to define a "corridor" as described on page 61 of aprs101.pdf. The specified distance is extended to EACH side of the line and filled in as a large tilted rectangle with a line down the center.
If you configure objects in a group that starts with a ?, and at least one of those objects is enabled and via either -IS or RF (or both), then that group name will be included in the "Usage" help message if someone sends you an un-recognized ?query. In addition, if they send that group's name as a query, all suitably enabled objects in that group will be transmitted, even if their interval is zero. Eventually, I'd like this to be port-sensitive and also be able to send Item-As-Message, but this is a start. (James VE6SRV)
Support Left Click on a Line object to Set Width in miles.
Don't transmit objects in a group that starts with ? unless explicitly requested via ?<group> APRS message query. (James VE6SRV)
Fixed the area display optimizer so that areas whose base station location is off-screen, but the area extends on-screen, are now drawn. This means if there's an NWS alert that covers your area, but the center of the alert is not visible, your map will still be colored. This also applies to Area objects (lines, circles, triangles, and squares). (Kevin W7BOZ)
Fixed the object interpreter so that Killed objects are removed from the screen sooner after receiving the kill packet.
Fixed the station purger to (attempt to, this is hard to test) force a screen refresh to have the no-longer-visible stations cleared from the screen. This is particularly important for RF stations that are no longer "recent". Visibility changes are rough to detect!
Fixed the display optimizer to properly (and instantly) display new RF stations when View / RF / All is the only thing checked. I'll get this right yet! It's just a matter of hooking the code wherever a state changes that can affect visibility of a station in any active MultiTrack window.
Limit the number of Kills transmitted for an object. Automatically disable the object and send an internal message to inform the user. (James VE6SRV)
Fix ME's DR to use last beaconed speed/heading rather than the current GPS speed/heading. (James VE6SRV + Adam KC2ANT)
Support Ellipses in either the vertical or horizontal orientations. Basically, an ellipse is drawn inside a box of the same dimensions. A circle just averages the vertical and horizontal to make a round(er) object. (Kim VK2ASY)
Change Configure / NWS / Message Not All to "Message Not *ALL*". Checking this option will allow you to light up shapes from *ALL* offices, but only have to field messages from additional specifically configured (hopefully local) NWS Offices. (Kevin W7BOZ)
Corrected station purger to retain NWS objects until their expiration time. Apparently I recently borked this, but it's fixed now. (Kevin W7BOZ)
If multiple objects are in a single ?Group, ensure that the group appears only once in the ?Usage response. (James VE6SRV)
Disabling an object (not just -IS or RF which just makes it local) should now remove it from the screen. It may show as disabled for up to 30 seconds and it must not be centered anywhere, but it should disappear. This is true when disabling vie the left click popup menu or the Configure Object dialog. (James VE6SRV)
If an object is renamed via Configure Object, the old name object will be killed and should disappear from your screen within 30 seconds, provided it is not centered anywhere. (James VE6SRV)
Suppress redundant notifications of duplicate NWS messages. This is much needed with the 5 minute re-transmissions of NWS-WARN/NWS_WARN objects for a single alert. If you leave your machine unattended, it should reduce the number of notifications that are queued and displayed when you return.
Corrected "Painted Whole World" OSM performance trace logS to show actual msec timers. (Ron N9SZV)
Correct Residual character (partial packet) flush logic for COMM ports (Ron N9SZV)
Default Object precision to the current Beacon precision when the object is created. (Fred N7FMH)
See new Configure / Objects / QRU Enable, Interval and Range. Interval is not used yet, Range is only used as an advisory. Objects are not transmitted yet, but a response is sent if the station is known showing where the station is relative to the QRU server. At least one ?group and Enabled plus Via -IS or RF object must exist for this to fire.
See new Configure / Objects / Max Group Objects and QRU / Max Objects configuration settings.
Found 2 places in the KISS/AX.25 interpreter where length checks were not being done possibly causing uninitialized space to be read possibly leading to a spontaneous termination of the program. This can affect both KISS ports and AGW ports as they actually deliver AX.25-formatted binary data. Thanks to Alan, N6VUD, for providing independently captured raw KISS output from his KPC-3+. Note: No specific packet was found to have crashed the program, but invalid AX.25 packets led me to find these two oversights. (Alan N6VUD)
QRU queries now trigger a maximum of Configure / Object / QRU / Max Objects. If more the maximum objects are in range of the requester, the closest objects are triggered. In addition, objects are transmitted in order from closest to furtherest. No pacing is done (yet) nor is any course/speed of the requester used to modify the range, it's simply an expanding circle from the requester's last known position.
QRU<callsign> object is now transmitted every Configure / Objects / QRU / Interval, but only if QRU is enabled and some suitably enabled ?group objects are configured. This object is an InfoKiosk Symbol (non-configurable) and includes a Range spec. See http://aprs.fi/?call=QRUKJ4ERJ for an example. If you want to see all QRU objects, add o/QRU* (I think) to your Configure / General / Add Filter. This object is transmitted on both RF and -IS ports, provided that Object packets are enabled on said ports.
QRU ?group <range> is now supported to override the server's configured range. The Max Objects CANNOT be overridden, however. So, if you really, really want to see which of my ?POST objects is closest to you, send QRU ?POST 20000 if you think there's one within 20,000 miles (or km if I were running Configure / Metric / Distance).
?APRSO <Object> will now trigger the transmission of just <Object> rather than all enabled, non-?group objects. <Object> must be enabled, but can be in any group. <Object> is also case-senstivie. This ONLY works when addressed to a specific station, not generically to QRU. (Julian G4ILO)
Fixed crash problem if a direct station query ?group contains more than Configure / Objects / Max Group Objects. (Steve G6UIM)
ME will no longer display course/speed or altitude labels as this information is available in dedicted screen fields instead of cluttering the center of the map. (Steve G6UIM)
QRU's ?INFO now supports an option <range> specification just like ?group. So, if you send ?INFO 20000, you should hear about any ?groups with objects within 20000 mi/km of you from any QRU server that hears your request. (Thanks to Gerard VK2JNG for testing this!)
Weather objects are not allowed to change groups. If anyone is foolish enough to put one in a ?group via the XML file, they deserve what they get.
QRU-queried objects are now returned in a requester-sensitive way - This is the COOLEST THING!
1) APRSISCE/32 requesters are known to support Item-In-Message, so that's how QRU-requested objects are sent.
2) RemRF stations without detected -IS capabilities are sent a humanly-readable interpretation of QRU ?group objects (dist brng COMMENT NAME)
3) All other station types will trigger a normal object transmission for QRU-requested objects just as it has been.
If APRSIS32 receives an Item-In-Message addressed directly to it, it will open a MultiTrack window tracking that object with View/None pre-selected. Talk about getting your attention!
Added "Max X@Dun de CALLSIGN" to both ?INFO and ?group QRU queries where X is Configure / Objects / QRU / Max Objects and Dun is the applicable range (un=mi/km, query-specified or Configure / Objects / QRU / Range). CALLSIGN, of course, is the QRU server's actual callsign-SSID so you can (finally) tell who is acting as QRU for your query.
RF Ports now track the most distant, directly heard (no path components used), position beacon per clock hour and report it as DX in <IGATE updates as well as in ?IGATE and ?APRSS query responses. You'll also see the DX along with timestamp for the past 8 hours per port if you double-click the "APRS OK" pane.
In all cases, the format of the information is DX=n*station(Dmi@B° (e.g. "DX=1*WX4MLB-3(8mi@2°)") where n=# of direct packets, Dmi=distance in miles (Yes, I know I should use Configure/Metric/Distance), B°=bearing from receiver (aprs.fi's raw packets doesn't show the ° properly).
Support ?DX to return the DX station for each enabled RF Port along with the hourly packets received from that station (similar to a ?APRSH response).
?APRSH by itself will now return the requesting station's hourly packet counts by type. ?APRSH call-SSID will return the same for the specified call-SSID (if known and with up-casing if necessary). ?APRSH * will return a list of ALL stations heard on RF (which used to be returned from the blank query).
All DX responses now use the Configure / Metric / Distance setting to return "mi"les (unchecked) or "k"ilo"m"eters (checked). Please see if I did the conversion correctly, if you can tell!
The WinMo version seems to have an issue with one or more of the NWS Shapefiles. I've had it fill the storage memory with a single .LOG file (50+MB) complaining about recursing APRSLogPacket and Not freeing a shape that has a non-zero reference count. I've added some additional diagnostics and am waiting for it to happen again.
Receiving an Item-In-Message like )PO-32910!2800.01N/08038.05W]Interchange Square Post Office doesn't get acked. It does now!
When an Item-In-Message is received, the Item ID is now shown along with the item's description in the chat window. Eventually I hope to add recognition that it's an object and support "ShowMe" to automatically center on the received object.
I now support a full 512 character comment length which is well beyond the aprs101.pdf spec limit, but is the maximum packet length allowed on APRS-IS. This should accommodate a full-length Item-In-Message if transmitted over -IS. I suspect RF transmissions are still limited to a shorter length.
Support Configure / Messages / MultiTrack New Items to allow disabling automatic popup of directly-addressed Item-In-Message objects. Also made it only popup if the received item is NEW!
Support Configure / Objects / QRU / Retry Messages to set the ack requested flag on transmitted message (Item-As-Message to APRSISCE/32 and Humanly-readable messages to RF remotes). This should help ensure delivery, but may cause Pending Messages to end up stuck in QRU servers for unreachable QRU requesters (eg those beyond a receive-only IGate). Should I automatically delete these Pending Messages after the first retry set? After an exhausted (FINAL) retriggered retry set?
Correct DX metric distance calculation (helps to multiply KMperMile instead of divide!) (Kim VK2ASY)
LclRF now shows the used hop count.
QRU queries will now transmit normal objects if the requester is considered "recently" "local" (currently 30 minutes and 2 hops) and the object in question is Via RF enabled. (Julian G4ILO)
Limit ANSRVR group names to 15 characters. (indirectly Steve G6UIM)
Support Configure / Status Report / DX toggle to insert DX: information into a status report transmission. The information is the same hourly DX as it stands when the Configure / Status / Interval expires for transmission.
Correction, each time a new DX is detected, the status report is transmitted. Note that for multi-RF-port instances, this can be a bit redundant as the status report only carries the maximum DX across all ports. You can also expect a few extra status reports to be transmitted immediately at the start of each new clock hour.
Corrected a windows resource leak of 1 GDI object for each Message Box displayed. There still may be more…
New XML configuration file elements
<Enables.DebugFile> <Enables.DebugStartup>
<TileServer.*> - Holds TileServer definitions, copied into <OSM.*> when selected
<Screen.SpeedSize> - Speed font multiplier (5 is default)
<NWS.Quality> - Quality of NWS shapefile interpretations
<Nickname.*> - Holds Nickname definitions
<View.Range.*> - Range Circle configuration options
More that I neglected to document…
<Objects.DefaultInterval> - Default Interval for new Objects (Minutes)
<Objects.MaxObjectKillXmits> - # of Kills to transmit before auto-disabling an object (Default 6)
Performance enhancements
Config / NWS Shapes / Qualilty especially for WinMo
ShapeFile indexing DRAMATICALLY improves shape object building after the first time.
Shape Object caching makes re-using specific areas much quicker after the first time.
Circle painting caches the painting bitmap for quick delivery back to the screen.
Reduced the TCP polling interval to improve WinMo CPU usage.
More completed ToDos in this and previous releases
For MultiLine storm objects that specify a course and speed, DR them based on publication time vs current time, but keep the area intact.
Add Trace Log memory consumption to double-click popup of APRS-IS OK pane. (I'm trying to get a handle on memory consumption under Windows Mobile).
Don't read a 0 for omitted parameters from an NMEA data string. This will instead mark the component as unavailable giving a — speed instead of 0 if a GPS drops out the speed element. If the GPS gives a ",0," then I'll still mark a valid 0.
Add "Speed" Trace log to diagnose some people's speed dropping intermittently to zero. It will show every change in speed as well as every transition from valid to invalid, but only if you Enable it. (I recommend checking Enables / Logging / File Enabled as well to look at this later).
Display "Me" with a different symbol than is beaconed (allows for red dot) (Fred N7FMH)
Limit the queue size and disable the Prefetch option if the queue is "too large" to be nicer to the servers. (Daniel KB3MUN)
Throttle map prefetch (vs on demand fetch) to a single thread to be nicer to the servers (Daniel KB3MUN)
Set aside a "priority" fetcher thread that only gets "high priority" (needed for display) entries. All threads will still get them, but this thread will do nothing but. (Daniel KB3MUN)