Changes.txt 02-02-2002 version 0.3.2 - ?WX? broadcast did not work, code checked for 6 characters instead of 4 (reason: copied code from ?APRS? broadcast which is 6 characters...). - New variable possible in message, %x. This is replaced by the full packet containing the query. Note that the originator call has been replaced by the real-originator when there is a 3rd party header. This variable can be used when you start a program with a query and you want to retrieve specific information, like the sender of the query for example. In the packet the control-characters are replaced by a "." (except those used in MIC-E). Single quotes are also replaced by a "." so for execution from a query the whole %x variable can be enclosed in single quotes to avoid problems with redirect characters in the received packet query and more such problems. - For variable "%q" in messages also single quotes are removed so the variable can be enclosed with single quotes to avoid unwanted redirecton when the ">" character is used in a query. - Extenstion to "via_block:" by popular demand. Now "via_block:" also considers calls in the third-party header. It only considders the most recent 3rd party header, not recursive when the embedded packet contains another 3rd party header. - The default answer of a query ("?" tag in digi_ned.mes) could only return one line. Now multiple lines are allowed like all other responses. - Delay for reading out values van a multiplexed telemetry port changed from 1 ms to 4 ms. - The Makefile now defaults to the new ax25 library. Put a "#" in front of "DEFS = -DNEW_AX25" if you use the old library. - When a WX variable is used in "wx:" but is not defined with "wx_var:" the program now issues a warning (at runtime). - Formatting of DX message slightly changed, now better compatibility with usual DX cluster output and still readable as raw packet. - New command "!ptt". The digi-owner can send a message with the command "!ptt 111011x1". The commands disables or enables transmission on a port. The left most digit is for port 1, then port 2 up to port 8. Binary "0" means disabled, binary "1" means enabled. In the example transmission on port 4 is disabled. Values "x" and "/" are used as "don't change". With the previous example port 7 doesn't change value, if it was "0" it will stay "0", if it was "1' it will stay "1". If you only need to provide the number of digits for the ports you have or want to change. For example to change only port 2 to "1" you may want to use "!ptt x1"; the not mentioned ports will not change. P.S. note that if you shut-off the PTT bit for the port you are using to send this command also an ack will not be send back! You can still send messages however because the receiver is still active! Since the reciever is active it will still digipeat received data to other ports if the rules define this. Tip: with the "command:" rule you can make a port read-only immediately at startup. - New kind for "wx_var:", "avg". "avg" provides a pseudo avarage value. It is pseudo avarage to enable the possibility of a sliding timeframe without wasting too much storage. It is calculated from up to 100 samples within the wanted time. A single sample is calculated by taking the old value for the sample, adding the new value read from the telemetry port and dividing the result by 2. This value is stored back into the sample - which means that the last value for the sample has 50% impact, the previous 25% and so on. All 100 samples are build up this way for their 1/100st of the total sample time. From these up to 100 samples the avarage is calculated when requested. - Sergio Matias, CT2HMN, discovered that some of the digipeaters in his area seem to handle intelligent digipeater calls like WIDE12-12. Since the detection for intelligent calls in DIGI_NED only handled up to a hopcount of 7, digipeater calls like WIDE12-2 were seen as 'direct' packets - resulting in bogus DX messages. Detection of intelligent digipeater calls now works up to 15 - the maximum SSID value. Of course I did not add rules to the default digi_ned.ini file to digipeat on such calls, detection only avoids bogus DX messages. As a bonus the code also became a bit simpler to read. 01-10-2001 version 0.3.1 - Added the OWNER manual in HTML. This will become the new documentation for DIGI_NED. File is named "dnown101.zip". +----------------------------------------------------------------+ | | | Send comments for enhancments to PE1MEW, see adress on the web | | via the http://www.qsl.net/digi_ned/ web portal. | | | +----------------------------------------------------------------+ During the phase-over I will maintain the old documentation, after that this will become THE manual for DIGI_NED. +-----------------------------------------------------+ | CONSULT THE README FILE FOR UNPACKING INSTRUCTIONS. | +-----------------------------------------------------+ - Added nice picture to the directory displaying which files are needed in a DIGI_NED repeater installation. Look at dn_files.png! Thanks to F5SMZ for the initial picture and PE1MEW for updating it. - Found a bug in distance.c, some corrupted packets could slip through the syntax checking. Now checking is more strict. - When the response is read from a file in a query then it is now possible to also have an object in that file. Previouly the data was always send as a message. The following definition in digi_ned.mes will send an object when using Linux: ?xyz !echo ";OBJECT1 *010000z5213.61N/00600.00E0Dynamic Object" > tmpxyz >tmpxyz !rm tmpxyz - An execute response with two !! for SYSOP only did not work. I mananged to make 2 mistakes with this in part of code. I feel ashamed... - Made a change to AX25_MAC, new version 0.05. Now the PC timer is re- programmed to the correct rate if the TSR needs this and another program messed with this timer. This is for example needed when starting qbasic from the a query if you have a BayCom modem. Qbasic.exe re-programs the internal PC timer to the original rate, but AX25_MAC needs this at a much higher rate to handle BayCom modems. AX25_MAC will now detect if the PC timer is reset to the original rate and re-programs it to keep the PC timer at the higher rate needed to work with the BayCom modem. (note that the versions inbetween were internal test versions to test out different methods and to avoid breaking something) - New rule, "beacon:". This rule is just like "send:". From now on the beacons defined with the "beacon:" rule are transmitted at regular intervals and when an "?APRS?" broadcast or query is received, the beacons defined with "send:" are only transmitted a regular intervals and not affected by an "?APRS?" broadcast or query. An interval of "0" is allowed to make beacons that shall only be transmitted when an "?APRS?" broadcast or query has been received. - Alternative message format for "ack" messages accepted now. "ack" messages may be send without a starting column. This appeared in PocketAPRS. It looks like a bug, but since both the TH-D7 and WinAPRS seem to accept it, DIGI_NED now does so too. Thanks to Remko, PE1MEW, for reporting this. - When a 3rd party message addressed to DIGI_NED arrived via an IGATE that had a direct path then DIGI_NED thought the originator of the message was direct instead of the originator of the packet (i.e. the IGATE). This is fixed now. Thanks to Remko, PE1MEW, for reporting this. - New rules "wx_var:" and "wx:" With these 2 rules it is possible to create WX information beacons from the telemetry data. A number of variables can be created which are associated with a LPT telemetry port (inculding multiplexing). These variables can accumulate data to calculate "minimum" and "maximum" values of telemetry data or to sum-up differences when a counter is connected on the telemetry input. Of course also the raw value can be read. A formula a(x*x)+b(x)+c is used to scale the input value to the wanted metric, for example input in km/h and output in mph or knots. Also variables can be defined which reflect the current date and time, both in local or zulu time. Using "wx:" a data string can be transmitted which is build up with the created variables using a formatting specification. This formatting is straigt forward by inserting the variable values at the wanted place. Formatting is availabe to have fixed or variable side, right or left allignment and optional zero padding. The purpose of all this is to be able to connect home-brew WX hardware to DIGI_NED using a interface connected to the LPT port. For more information consult the DIGI_NED web page at http://www.qsl.net/digi_ned and the links from the TechWeb page at the DIGI_NED site. The setup is universal and most certainly not restricted to WX use only, you can send any telemetry data in a nice self-chosen format, for example RDF data. - Changed run.bat, now it starts with a BayCom connected to COM1, it used to be COM2. COM1 is more convienent for me because the system on which I test with DOS has only 1 COM port... - DIGI_NED responds to the ?WX? broadcast and ?WX? query by sending all the strings defined with the "wx:" rule. - The default "digi_ned.sat" file now contains entries for the new PCsat and STARSHINE low-orbit APRS mini satellites. 03-06-2001 version 0.3.0 - Skipped version 0.2.9, this was a special intermediate update for the APRS digi at KootwijkRadio, see http://go.to/pi1apk. Also used for other special versions, for example a test version for the telemetry interface work. - Some of the 3 bit address used to multiplex the telemetry ports are inverted by the LPT port hardware. These are the "Auto Linefeed" and the "Select Printer" lines. Now these lines are inverted by hardware so address 0 appears as binary 000 on the output. - Changed the Mheard and DX function a bit. Now calls are kept per port. For DX it is assumed that the same call is also at the same location. For MH a response is given for every port where the call is heard. The effect of this is change is not visible if you have a single port station, but it is more or less essential to make the DX and MH function work on a cross-band digipeater. Individual stations appear normally only direct on one QRG, but neighbor cross-band digis will appear on more ports. Up to now the digi kept the call only once, so you could only see the last reception. - New rule: "via_block:" to block packets that went via a specific digipeater. This can be used to block TCPIP or IGATE traffic. Added on request by a user. - Size of the "mheard_list:" extended, a size of 100 direct stations is not sufficient for a wide digi. Each entry costs appoximately 4 + 10 + 4 + 2 + 4 + 2 + overhead (8 bytes?) = 34 bytes. So 100 entries is about 3400 bytes. Changed to 150 entries, 5100 bytes. Now we also have some room for double calls that arrive through multiple calls. Of course you can adjust this to your own needs, I just changed the default and checked if it does not consume to much under DOS. Note that still only the last 40 calls are shown due to the "mheard_show:" rule. 25-05-2001 version 0.2.9 - When digi_pos: or digi_pos_file: is specified, but the satellite stuff is not then DIGI_NED still complained about the missing satellite database -> small error in my satellite switch-on detection logic, fixed. - Added defines in the Makefile and Turbo-C++ project file. This makes it easier to leave out parts of DIGI_NED when you want to build the executable yourself from the source. This also makes it easier to port the software to other platforms. - Now you can execute the "?exit" query via the keyboard, this was requested to make debugging of startup .bat files simpler. Different exit codes can be used to select what to start next after DIGI_NED terminated (an example can be found in the sample "run.bat" file). This was already possible on-air (when enabled) but new is the ability to do the same from the keyboard. - When usign the "exit" query in Linux the terminal could be left in an undesired state. Fixed. - An interval of 0 on the telemetry command (used to be able to query telemetry but never transmit its data automatically) did not work since value 0 was not accepted as input. Fixed. - The destination call on "telemetry:" is optional, however leaving it out gave a memory violation. Fixed. - There were still some debugging messages in serial.c, removed now. 19-05-2001 version 0.2.8 - Doppelshift was added for the uplink instead of subtracted, changed now. Thanks to Alex, KG4ECV for reporting this - A few output messages were missing a , resulting in wrong output of the activity on the digi_ned screen in DOS. - When the digi_ned.tle file was empty a segmentation fault occurred. Fixed. - Added new rule, "serial:". This enables you to connect a GPS, Ultimeter or other serial device to DIGI_NED. You can sent multiple sentences if you want. The format for the setting reads as follows: serial: 10 all com3 4800 GPSODN,WIDE,WIDE3-3 $GPRMC $GPGGA If the wanted type of sentence is not specified (empty line following the "serial:" rule) all the data on the serial input is accepted (if it doesn't fail the checksum). Note that DIGI_NED will only output the most recently read complete line in this case. In the example serial data is send with an interval of 10 minutes to all ports. The data is read from COM3 (under Linux /dev/ttyS2) at 4800 baud in this case. Supported baudrates are 1200, 2400, 4800 and 9600 baud. The serial line uses hardware-flowcontrol on send an receive. In DOS COM1 to COM4 can be used with the following mapping: COM1 = IOA=0x3f8, IRQ=3 COM2 = IOA=0x2f8, IRQ=4 COM3 = IOA=0x3e8, IRQ=3 COM4 = IOA=0x2e8, IRQ=4 As usual the DOS restriction not to have active traffic on 2 COM ports using the same IRQ applies. The IOA and IRQ are fixed. I might add it if there is demand to have this configurable. In DOS only 1 serial port can be assigned at a time due to limitations in the used driver code. In Linux COM1 to COM9 can be used with the following mapping: COM1 uses /dev/ttyS0 COM2 uses /dev/ttyS1 COM3 uses /dev/ttyS2 COM4 uses /dev/ttyS3 ... COM9 uses /dev/ttyS8 If a checksum is present in the DATA, DIGI_NED will validate the sentence and ignore corrupted sentences. When no checksum is present data is used as is. The data is transmitted with the call DIGI_CALL (that's the call of this DIGI_NED) to the first call in the path given in the serial command. The next calls in the path of the serial command are the digis, in this case WIDE, WIDE3-3. The next line in the .ini file specifies the sentences to be picked up from the serial line for transmission. Multiple sentence types can be specified. All sentences are transmitted at the same time. DIGI_CALL>GPSODN,WIDE,WIDE3-3:$GPRMC DIGI_CALL>GPSODN,WIDE,WIDE3-3:$GPGGA - The DX function now also decodes frames from dumb-trackers. Recognized GPS sentences are $GPRMC, $GPGGA and $GPGLL. - Fixed some typo's in "digi_ned.ini", thanks to Rolf, DK7IN, for reporting this. - When not specifying the "message_file:" in digi_ned.ini a query causes a hangup or crash. I overlooked something in the code when the run time variable "%q" was added to the message file handling. Thanks to Rolf, DK7IN, for reporting this. - The "d_relay.ini" file has now an accompaning "d_relay.mes" file with the bare basic subset of queries. - A problem was found with bogus DX messages. These are caused by Kantronics digipeaters which leave a the end of WIDEn-N digipeating a WIDEn in the path without a "*" (H_FLAG) indication. If someone used a path like PE1DNN>APRS,WIDE3-3 the final packet looked like PE1DNN>APRS,WIDE3. Since no "*" is present DIGI_NED thought this was direct. Fixed now. It is however recommended to use a path like PE1DNN>APRS,WIDE,WIDE2-2 anyway since then the first station which picks up the packet will be identified. - Sattracker enhancements. The Satellite object can now shows the date or the epoch (daynumber) of the used kepler-sets. A new rule to control that is introduced, "sat_obj_format:". The number in this rule specifies the format of the sat-object: 0) Show as "AO40 E" (where E is for the Elevation column) 1) Show as "AO40 126E" (where 123 is the epoch of the used kepler data and E is for the Elevation column) 2) Show as "AO40 0805" (where 0805 is the ddmm date of the used kepler data) 3) Show as "AO40 0508" (where 0508 is the mmdd date of the used kepler data) Default is 0, the standard digi_ned.ini file has value 2. - Cleaning up parts of the Predict code, but that doesn't have functional impact. There could have been a potential problem for non-English language Linux users. I'm only running an English version here so I can't verify. Anyway, if that was the case then it has been eliminated now. - The DX function now also decodes maidenhead grid-squares if this appears at the start of the data, enclosed in "[]". - Relaxed time on multiplexing input. There is now at least 1ms time between changing the strobe output and actually reading the input. - For telemetry the association of port numbers put on the 3 bit address lines of the control port can be overruled. For example to completely reverse the numbers, so the first value is read from address 5, the next from 4 etc, you can specify: telemetry: 20 all lpt2_8/5,lpt2_8/4,lpt2_8/3,lpt2_8/2,lpt2_8/1,lpt2_8/0... (path truncated to be able to fit the example on 1 line...) The 3 bit address on the control port can take values 0..7. - Added 2 sections to the FAQ in digi_ned.txt: - How to let digi_ned behave as Kantronics TNC - How to update the kepler data in the sattracker (note that this, and more, is also described in the sattracker documentation). 16-04-2001 version 0.2.7 - You woun't believe it (I did not anyway), but there is another problem with timezone stuff. This time the value for nextaos was used wrongly in combination with in the timer functions. In DOS satellites were transmitted like crazy when tracking, depending on how far AOS for the satellite is. Solved now hopefully. - Read the latest TLE data from the Packet network. 14-04-2001 version 0.2.6 - Nasty bug in the "trk" and "sat" query, specifying more than one satellite caused a crash in the DOS version. Most Linux systems survived this out of array-bounds abuse. Now the logic is fixed and even enhanced! You can now supply more than 1 satellite on the "sat" and "trk" command, when using a 3 letter sat like ISS the digi will add the trailing "_" for you! Thanks to Boris, OK1RQ, for reporting this bug. Keep reporting bugs and ideas for enhancements! There is no guarantee that it will get implemented (but you can always do it yourself too) but without this input it will for sure not be implemented! - The UTC time-difference setting in digi_ned.ini did not work on DOS systems. On DOS either the environment variable TZ is used or if not available the setting in digi_ned.ini. The latter failed because even when TZ is not specified the Borland-library still provided a UTC time offset! As a result the reported satellites were ahead of time. Now it works. The value "digi_utc_offset:" is only used when no timezone information is provided by the system. Added information about this and about setting the TZ environment variable in the digi_ned.ini file. This one caused me a real headacke so it better be working now... - Keplersets updated up to the newewst 2 line elements received on the KEPLER@AMSAT packet area on the Dutch packet network. - Modification when a second station wants to track a satellite that is already being tracked. The previous version ignored this, now tracking is restarted. This way an object will appear soon and the tracking stops "track_duration:" minutes after the last received request (was after the first received request). Solves the problem that it sometimes looks that the digipeater does not respond to the "trk" command (it was already tracking but the next object deposit could take a while). 04-04-2001 version 0.2.5 - Found an error in the pattern matching routine. Also use of pattern matching caused commands like "!out 1 10010001" to return an error message instead of "command accepted" 04-04-2001 version 0.2.4 - Apparently one of the types I created "timer_t" now is also included in GCC. This caused compilation errors on systems with a new GCC version. I renamed my type to "digi_timer_t". - Removed object from the message-file, the shop for which it was is gone. - DigiTo: and DigiSsid: changed back in the default digi_ned.ini. Now they only there is an explicit test for UIview messages to avoid SSID substitution on those. The patch from the previous version was no good since it also did not allow MIC-E packets anymore. The rule used to solve this is ssid_ignore_prefix: which now has the "~" character to block UIview messages for SSID digipeating. - Keyboard commands now also work in Linux. The handling is a little bit restricted in the sense that it uses the 0x08 character as backspace, disregarding any terminal settings. Commands can be entered with ESC flowed by the command character. On my RH5.2 installation this also works with ALT- since that just outputs the character with an ESC prefix character. YMMV but at least for some users these keyboard commands will work. For Linux I did not add the ALT-D (or ESC+D) command, starting a shell from DIGI_NED is useless for Linux. Since you don't want DIGI_NED to mess with the keyboard when you want to run it in background, keyboard support has to be switched on by supplying a '-k' flag at the commandline. - Implemented ALT-H which gives keyboard-help. Now you don't have to memorize al the ALT- commands anymore, just ALT-H! - From the message file you can now start a program. You can also read the query response from a file. Response strings starting with '!' are executed. Response strings starting with '>' will read the data from a file named in the text. When starting a string with '!!' execution is restricted to the digi owner. - In a message text you can use %q which will be replaced runtime with the complete query string from the user (converted to lowercase). - You can now use wildcards in queries to match the rest of the query. This works the same way as wildcards in the the call-matching used with the rules. The wildcards are: * Matches any 0 or more character(s). ? Matches any 1 character. @ Matches any alpha character. ! Matches any digit. This can be used to simplify the alternatives for a query, I had the need for this to implement the ?whois example. - Added Satellite tracker, donated by Alex Krist, KG4ECV. Read Sattrack.txt and Sattrack.doc for details. Thank you very much, it is a very nice addition to DIGI_NED! You can send "sats" or "sat list" to get a list of available satellites. All satellites are identified with a 4 character AMSAT identifier. When a satellite has only 3 characters append underscores to make it 4 (e.g. ISS becomes ISS_). You can have DIGI_NED plot the location of a satellite for you. Send 'sat ao40' for example to get an AO40 satellite object on the map. The satellite will have comment text that specifies when it will come above the horizon in your area. You can also track a satellite. Send 'trk uo22' to track the uo22 satellite. When not in range every 10 minutes an update for the uo22 is plot on your map. The satellite comments shows when it will rise above the horizon. When in range the satellite will plot an update every minute. The satellitte comment shows you bearing and azimuth to the satellite but also the up dan downlink frequency including the current dopler shift for you. Besides that the mode op operation is visible. For more extensive information read Sattrack.txt and Sattrack.doc, provided by Alex, KG4ECV. - As usual moved some code to enhance the program structure. - Started using APNDxx as destination code instead of APZxxx. - New format destination addess: DIGI_NED now uses destination address APNDxx. The prefix APN can be shared with other intelligent digipeaters. The prefix APND is reserved for DIGI_NED now in coordination with the APRS protocol workgroup. The DIGI_NED version number is now compressed in 2 alfanumeric bytes. For this count base 36 is used to have enough numbers to identifiy DIGI_NED versions, I.e counting goes: 01,02,...,09,0A,0B,...,0Z,10,11,..,1Z,20,...,etc where 01 is version 0.0.1, 0Z is version 0.3.5 and 10 is version 0.3.6 etc. It is not as clear as the old numbering, but this leaves space for other applications using the APN prefix. Table (for versions 001 to 036 with corresponding base 36 numbers): 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0G 0H 0I 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 0J 0K 0L 0M 0N 0O 0P 0Q 0R 0S 0T 0U 0V 0W 0X 0Y 0Z 10 The destination for this version is APND0O (P.S. Suggestions to use different destination addresses have been declined in coordination with the APRS protocol workgroup members. The version identification is an part of the APRS standard, the type of message can be identified with the whole frame anyway). - DIGI_NED now contains support for multiplexing via the lpt port. When reading the port the port number (which is 0 based and runs from 0 to 5) is put on bits 1, 2 and 3 of the control port. These bits correspond with the "Auto Linefeed", "Initialize Printer" and "Select Printer" outputs of the LPT port. - Removed French documentation, added a pointer to the Moselle APRS Packet Group (MAPG) in France to the digi_ned documentation. Use this to get French support for DIGI_NED. The address is: http://mapg.ifrance.com/mapg/index.htm or via the DIGI_NED portal at http://www.qsl.net/digi_ned/ 05-01-2001 version 0.2.3 - +----------------------------------------------------------------------+ | IMPORTANT: Changed the operations "replace" and "new", they will not | | put in the own digi_call automatically!! Because this change is not | | compatible with older versions the .ini SHALL now contain a version | | number. This is done by a "version:" rule. The current version is 2 | | DIGI_NED will refuse to run with non compatible versions. The | | default digi_ned.ini and d_relay.ini files did not use "new" and | | "replace". You only need to add the version number if you want to | | reuse the existing rules file. | +----------------------------------------------------------------------+ The "replace" and "new" operation do not automatically add DIGI_CALL anymore, reason for this is increased flexibility, the DIGI_CALL can always be specified in the replacement or new digipeater string anyway. For the "add" operation the automatic replacement is still done. - The handling of "?TLM B" was put in a little bit too fast. First of all, all bits were reversed ('0' where it should have been '1' and '1' where it should have been '0'). Also the order was flipped. B1 was B8 and B8 was B1... Sorry for the inconvienience it may have caused. - In "linux.c" removed "#include " since this is already handled by . This gave compilation errors on a lot of systems. (except mine...). Realy removed this time, I already said I removed it last time but to my surprise the line was still in! - Ultimeter stations use a string that starts with "!!" and cannot be distinguised from a compressed position. String that start with "!!" are not regarded as position anymore, sorry if your compressed location starts with "!!". A whole range of compressed locations cannot be used compressed because of this. DIGI_NED will not use these compressed positions for its DX functions anymore to prevent bogus positions due to these Ultimeter string transmissions. - Cleanup of code. I was decoding strings with port numbers at many places, now I made a support function for this. This meant that I had to change code in many of the source files to untilize this new function. - DigiTo: and DigiSsid: changed in the default digi_ned.ini. Now they only work if the destination call starts with "AP". The old setup caused SSID changes on the desitination call when a local packet from a UIview message exchange was recieved. - Added rules "allow_to:" and "allow_from:" to restrict packets to be accepted for digipeating on a specific port. This is used for advanced cross-band digipeating where you only want to pick up very specific packets. - On the monitor output the dump of the digi_ssid: rule did not show the replacement SSID, fixed. - On the monitor output the dump of the DX transmission showed the wrong port number, fixed. - Telemetry headacke hopefully solved. When using the 8 bit LPT port input (lpt2_8 for example) somehow the data register is reset to 0, so all set output bits vanish. This behaviour differes per LPT port implementation, some do it and some don't. DIGI_NED was verifying the data written to the LPT's control register by reading it back. It seems that this reading caused a reset later. I don't read the values anymore and now it seems to work. - On the !out command you can now specify a 'P' in the string. This will toggle the indicated bit for 1 second. Can be used as 'reset' pulse or something similar (we had a need for it). - New command for the .ini file: "command:". The text after this command is fed to DIGI_NED's messsage mechanism (like the keyboard commands used by the DOS version users). This can be used to send "!out" commands at startup to get the LPT port in a defined state. - Cleanup of the AX25_MAC directory. It contained some files for the YAM modem which I used for testing. I planned to remove these files but forgot over and over (I hardly ever look in the ax25_mac directory, the MAC driver is running stable since the very first beginning...). - The digipeater position can now be read from the first line of the beacon-file with "digi_pos_file:" so that the icon position and the originating position for DX messages is the same. This can only be done when the beacon is in uncompressed or compressed format, not MIC-E. If you want to use MIC-E the position can also still be explicitly specified using "digi_pos:". - Added timestamp to command responses so they are uniq and it is visible what the most recent response was. - Added keyboard command ALT-A for DOS users to toggle activity logging on and off. - Removed the French documentation, its outdated. There is better documentation on the web in French! Brouwse to the MAPG site at: http://mapg.ifrance.com/mapg/index.html or reach this site through our portal at http://www.qsl.net/digi_ned/ (also for all other pages). 15-11-2000 version 0.2.2 - Added "tnclogfile:" rule to digined.ini. With this you can log the received and transmitted frames in the TNC format, also used by other programs. For example you can import such a file in Xastir, or analyse the messages against the APRS standard using Ian Wade's "aprsdec" program (can be found on http://www.netro.co.uk/aprs.htm). - Made the default messages_path: and dx_path: in the sample digi_ned.ini "WIDE" (was "TRACE,WIDE"). Now that more stations have tiny web pages and DX support we do not need a wide circle for distribution anymore, a closer circle will do. - Changed default path on the "send:" command, does not use TRACE6-6 anymore but WIDE3-3. This cuts down some unwanted traffic. - In "linux.c" removed "#include " since this is already handled by . This gave compilation errors on a lot of systems. (except mine...). - Removed the "}" from the "data_prefix:" rule, loops via internet seem possible. Sorry for the messages ariving through third-party, but I don't expect many much messages as third party anyway. - Changed LPT port code, now DIGI_NED forces the port to uni-directional SPP mode. Some PC's like the HP OmniBook 600C set the LPT port data port to some "input" mode instead of output. Telemetry and LPT output failed for that reason. Thanks to Remko, PE1MEW, for reporting it. - Found a bug in telemetry.c, when a port cannot be read sometimes the wrong portname was displayed on the console. - With ?TLM you can now specify a "B" without a number, which returns all 8 bits from an telemetry input port. It does regard the "BITS." pattern in the telemetry data so '1' means active and '0' means not active. A '1' will be set if the bit value read from the port corresponds with the corresponding value in the "BITS." pattern (See APRS specification on www.tapr.org). Default logical '1' is active and '0' is inactive if a bit is not specified with the "BITS." pattern. - New digipeat operation "shift". Shift shifts out all "used" digis except the last one and then adds a new path. This operation was requested for builing a HF gate. It does not add the DIGI_CALL by default. Example: digipeat: 2 * 1 shift2 DIGI_CALL,HFGATE,WIDE4-4 Input on HF like this: W0ABC>APRS,W0QRZ,W0HF*,TRACE4-3 Will be repeated like: W0ABC>APRS,W0HF,PE1DNN,HFGATE*,WIDE4-4 So it keeps the digipeater from which we received the packet and adds on the new digipeaters we specified. The "2" on the "shift" operation means that we want to use up two digipeaters (default is one) on the path (this works on all operations, even if it does not make sense like "erase3"). This operation was suggested by Gerard, F5VAG/DL4MW. - One user crashed his floppy based system when requesting "?tlm a1", both form the keyboard and from RF when running from floppy. I found a problem in the output when the flag "-a" was used to display activity. On my system it did not crash but it showed strange characters instead of the name of the telemetry source. I repaired the problem in the source, hopefully this will also fix the experienced reset of the system. My guess it that this reset could have been caused by anti-virus software triggering on DIGI_NED's (read) access to memory that does't belong to it. But that is just a guess since I could not reproduce this resetting behaviour. - Got 2 strange bug reports up to now that could not be reproduced. - One user gets a system crash when he enables the DX messages. - Another user had a strange thing that the position programmed in digi_ned.ini was read wrong by DIGI_NED. By removing 2 environment variables from AUTOEXEC.BAT it was fixed (?) (but adding the two in my own configuration did no harm whatsoever...). In all cases I could not reproduce the behaviour on my system, it works fine here. So these failures are depending on the equipment and configuration and may be caused by bugs in DIGI_NED, conflicts and bugs in other programs or not 100% functional hardware. If you encounter a situation like this, please be sure there are no other TSR's and drivers loaded that could interfer with DIGI_NED function. I try to find out whats wrong, but I can't reproduce such errors. Please first try you configuration on an empty system. If that works, add all your usual stuff if needed. Do it one by one to find the conflicting setting or TSR. If it can be reproduced, make contact with me so I can help others with your findings or repair the bug if it is caused by DIGI_NED. It is supicious that this all happens with DOS but not with Linux systems... - New feature in the message file. Now you can make a query that returns a message to somebody else or make it return a bulletin. If the response starts with ':' then a correctly formatted message including the destination addess is expected. This message is send as-is. A regular response starting with a ':' can be made by escaping the first character with a '\'. Suggested by Thierry, F4AIE, thanks! 22-10-2000 version 0.2.1 - Error in DX message generation, DX messages are send with the destination adress as originator adres. That's wrong obviously! - Update in sample digi_ned.mes file: PI4APD should be PI2APD for the 70cm repeater in Apeldoorn... - Update in sample digi_ned.mes file: club station net of PI4APD starts at 20:15 now. 19-10-2000 version 0.2.0 - Made a revision step since we now introduced telemetry! In the digi_ned.ini file (or another file if supplied on the command-line) you can specify a 'telemetry:' rule. On this command 6 telemetry sources can be specified; 5 analog channels and 1 digital channel. In this first attempt only the parallel port (lpt), an 8 bit input via parallel port (lpt_8) and a dummy device 'off' are supported. The 'telemetry:' rule will cause regular telemetry transmissions. Note that the telemetry stuff is commented out in digi_ned.ini by default. Using it requires additional hardware and configuration, also described below. - In the APRS Specification (to be found at www.tapr.org) there are a number of messages the digipeater can address to itself which describes the name and interpretation of the APRS telemetry. In digi_tlm.ini you will find sample beacons to transmit. For the exact syntax and allowed field widths (they do not have all the same length!!) see the APRS Specification. Without reading that you will most likely not guess what everything means or guess wrong. If you do it right you can also do some math on the analog value. A telemetry- aware APRS client will do the same. - With "tele_info:" you can supply the beacon information to DIGI_NED, this info will be used when querying DIGI_NED with the TLM command. Without this info DIGI_NED will just report with generic names, but when you can have it return things like "lamp is on" or "lamp not on" for example for a digital value. Or "Battery 12.5 Volt" for an analog value. - With a ?TLM query you can retrieve telemetry values manually. The TLM query needs an argument specifying what you want. This can be A1..A5 for the analog channels or B1..B8 for the binary bits. These names correspond with the names used in the APRS Specification. - Sending a message like !OUT 2 01001001 you can change bits D0..D7 of an LPT port. '2' will mean LPT2 or "/dev/lp1" in Linux (Linux starts counting at '0'). Using the 'x' or '/' character ('/' is located just below the '0' which makes entry of digits on a THD7 easy...) you can leave bits in there original state. The first digit affects bit '0' on the LPT port, the next one bit '1' etc. up to bit '7'. Extra characters after these 8 bits are ignored. - Queries were optionally prefixed with a '?'. From now on all non alphanumeric ASCII characters can be used, except '!', '/' and '\'. This way you can do more queries without DIGI_NED blocking repetitions. DIGI_NED blocks 100% equal request to avoid Ping-Pong problems with auto-answer stations. The '!' prefix has been reserved for remote control. The prefix '/' and '\' are reserved to allow you to make 'filesystem' like queries. You can use any other prefix in front of '!', '/' and '\', so you can send for example the same remote control command within a short period, for example "?!OUT 2 1" works just like "!OUT 2 1". "#!OUT 2 1", "$!OUT 2 1", "%!OUT 2 1" etc. are all the same but will not be regarded as "duplicate" so you don't have to wait unit DIGI_NED accepts your command again, just change the prefix every next time. - The "block:" list now also works for "mheard" and "DX" so you can keep bogus calls or calls that send beacons that are misinterpreted as a position (as happened to a VK station which had an DX of 17529.8 km!) out of the lists. Reported by VK5ZTY, thanks! - On compressed and uncompressed position packets I now check that the destination address starts with "AP". If not, the position is ignored. (For MIC-E this check obviously does not work...). - Now "^C" can also be used to normally exit the DOS version. I added this because I kept interrupting the program this way since I use Linux most of the time. So now a break signal can be used in addition to ALT-X. - Added "dx_portname:" rule so you can give you port a name for the DX messages. Default portname, if nothing is specified, is "Portx" where 'x' is the port number. Addition suggested by WA7NWP. - Changed default "dx_level:" in sample digined.ini file to 25 km (was 100 km but there were not many DX messages in our flat country this way). The idea is to be informed about what the maximum distance is at regular intervals and to be alarmed when it goes up due to more frequent messages. But of course you can configure this differently if you want. Even setting to 0 may be interesting since it will report the best DX over the last hour anyway. Since there are most likely stations beyond 25 km al the time this setting only avoids ridiculous reports of nearby stations during startup and restart of the digipeater. This also ensures regular updates to be transmitted so you can watch the DX conditions change. - Found a bug in call matching. Matching "PE1DNN" with "*-0" in the "block:" list worked but matching "PE1DNN" with "PE1DNN-0" failed. Reported by VK5ZTY, thanks! - Error in DX bulletin transmission, it only went out through the first port due to a bad positioning of the duplicate transmission check. Reported by VK5ZTY. There was also a potential memory-leak, fixed also. - "Dx_Level:" now also has a maximum range to filter-out obviously bogus reports. - The owner can now remotely clear the MHeard list with the "!CLEAR" message. "!CLEAR" clears all MHeard entries, "!CLEAR 1" clears all MHeard entries for Port 1, "!CLEAR PE1DNN-2" clears the call PE1DNN-2. - Ran spelling checker on all documents. 20-09-2000 version 0.1.8 - Added '-a' command line flag, contributed by Alex, KG4ECV. With this flag you can see which queries enter the system, which ones are accepted and which ones are rejected. When you use this flag without '-v' then you have good overview what happens without suffering from information- overload. - Not a new feature, but forgot to tell with 0.1.7. Now a beacon file can have more than 1 line. Each line is send as separate beacon. I build it in when I was experimenting with telemetry. For telemetry some messages need to be send which tells what the telemetry data means. It was neat to keep it in one file so it is transmitted as one block. The telemetry code itself didn't last, but the feature to have more lines in a beacon file was kept. - Buglet in handling 3rd party headers. I patched the source call of the packet with the real call which is found in the 3rd party header. This was needed for the query functions so the answer would be send back to the correct station. Unfortunately it also damaged packets which were not directed to DIGI_NED at all or were not even messages. This caused all 3rd party packets to get send with as originator call the call of the real originator from the 3rd party header and not with the call of the originator as it was received. Thanks to Alex, KG4ECV, for noticing and reporting it. - MH now accepts port '0', which means 'all ports'. - New rule called "digi_pos:". With "digi_pos" the position of the digipeater is defined, needed for the functioning of the DX functions below. Example: digi_pos: 5213.61N 00600.00E - DIGI_NED has a DX function build in. First of all you can get distance information through queries. This works with the command ?DX. It works like ?MH - with port number or call. It uses the entries in the MHEARD list, so when the MHEARD list is small the DX will also not give much. DX with port number 1 returns for example the next 3 messages: DX-P1 of all 263.3 km D0BRP DO4BH-1 DX-P1 of 24h 161,4 km DO4BH-1 PD0JBR-1 DX P1 of 1h 123.9 km PA3ESK-2 PE1ABT-15 The first is the best DX for all entries available in the MHEARD list. It shows the distance to best DX station, the call of the best DX station and second-best DX station. The second and third lines are almost the same, but the second is for the stations received in the last 24 hours and the last for stations received in the last hour. If there is no second best DX station then only one call is shown. Tip: ports are numbered 1 to 8, number 0 can be used to mean "all ports". This also works for the MHEARD command by the way We can zoom in on a station with "DX " for example "DX PD0JBR-1" This returns: PD0JBR-1 138.1 km bearing 026 degrees (If you want to know when the station was received, use "MH PD0JBR-1") It shows distances and bearing from the digipeater to this station. Distance uses a great-circle calculation, bearing is based on a flat earth model. Bearing "0" is True North. The DX not only works on calls returned by DX command but on all calls in the mheard list. Like MH also port 0 is accepted to mean 'any port'. If there is no distance and bearing information the returned message will say so. - New rule "size_heard_show:" defines how many calls are shown on a "mheard " command. This used to be "size_heard_list:" but the size of the heard list may need to be bigger now that it is also used for the 'dx' function. Still we may want to display only a limited number of stations from the heard list. If "size_heard_show:" is not defined then it is the same as "size_heard_list:". - Query "MH STAT" returns now the number of calls in the list and the date of the oldest entry. - Changed implementation of timer.c Was much too complicated for its task (I reused this from existing code where it served a purpose..) - New rule "dx_times:" defines the period of time for which the best DX is shown. - New rule "dx_metric:". Dx metric defines the presentation of distances and the threshold for distances in the dx_level: rule. Options are "km" for kilometers, "mi" for statue miles and "nm" for nautical miles. Default is "km". - New rule "dx_level:". The DX level command defines when we report a station as DX. It contains a parameter for the port for which this rule is valid (DX on 6m a is something different then DX on 2m, and DX on 70cm is different again), a parameter for a threshold, for example everything below 100 km is never regarded as DX, and a parameter defining the time in hours to look back. When for example a station is received which is the "best DX" for the last hour (1) and is further away then the threshold (100 km) then it is reported. The unit of distance is determined by "dx_metric:", default is "km". - New rule "dx_path:". DX path contains the destination call and digis to be appended to DX messages transmitted by DIGI_NED. This path has to be defined per port, more definitions for one port are possible. Also "dx_path: 1 DX" works, no digipeater definitions are used in that case. DX messages are never transmitted on ports with do not have any matching "dx_path:" definition. - Added '-d' command line flag to trace the DX function of the digipeater. - The query "mheard " now shows how many calls are send. 01-09-2000 version 0.1.7 - Many thanks to Jean-Philippe Aumaitre, F5SMZ. He translated the DIGI_NED documents to French! The files are in FR_docu.zip - New rule: "digissid:". This rule behaves like "digito:" but now on frames that has digipeaters in the path. All these digipeaters shall be "unused", when one of them is "used" the "digissid:" rule will not be evaluated. Just like "digito:" the "digissid:" rule is only evaluated for UI type packets with PID set to F0 (normal AX.25). The "digissid:" rule was needed to correctly implement SSID digipeating. The old method had some problems because you could not see if a frame was already digipeated and it was not possible to determine if a station was local. - New operation "keep". With "keep" the digipeater path is not changed, but you can manipulate the "digipeated" bit. For example "keep0" will leave the digipeater path unchanged, "keep" will use up the next digipeater in the path without changing the call. This was needed to correctly implement the new SSID digipeating rules. - +---------------------------------------------------+ | CHANGED THE "DIGIPEAT ON DESTINATION SSID" RULES. | +---------------------------------------------------+ You are encouraged to adopt these new rules and discard the old ones (search for "digito:" and you will find the rules in digi_ned.ini). The new method was verified with the APRS SIG at "http://www.tapr.org". - Using the new SSID rules detection of "Local" stations is enhanced. This will avoid Ping-Pong effects and misinterpretation of "local" calls. - Checking a call with "*-0" to test if a call does NOT have a SSID also works. - You could send ?APRS? directed to digi_ned to ask for its beacons. It turns out ?APRSP was designated for this, so that is now also supported. - The "list" in the sample digi_ned.mes was incomplete, forgot the the build-in queries. Added them, including the new ?APRSP command - Changed the number of kept stations in the sample d_relay.ini file from 6 to 16. 6 is a bit small even for a simple Relay. 16 means max. 5 data-lines for a MH query. - Changed "digi_id.ini" into a status message by adding a ">" prefix - Added a "Kenwood mode" It appears that at least the TH-D7E can not handle formatted packets with a total length of more than 195 octets. The formatting used internally seems to be the same as the monitor format used by the build-in TNC. SOURCE>ID,PATH,PATH*,PATH:Hey look at me, this is my long ID <--------------------- Max 195 characters ---------------------> This problem applies to at least to UI packets with PID=F0 (normal packet unproto frames). I've seen on a normal link that the TH-D7E's APRS function also stops on other packets, but I could not determine which packet types. Maybe all packets with lengths above what the TH-D7E can take cause problems. I have no information if other Kenwood models behave the same way as the TH-D7E v2.0 does. Long UI packets are legal to appear on the air. These are for example FBB unproto packets, ID packets with a long length, APRS packets with a long third party header or one of the few APRS packets that do not have a length limit. There are 3 kenwood_mode settings that have effect on UI packets with PID=F0 (normal AX.25 UI frames): 0 = switch off, allow UI frames with size 256 1 = switch on, too long frames are truncated before transmission 2 = switch on, too long frames are not transmitted at all Default is 1. In almost all cases it is just comment that is too long, truncating that is no problem. But you can change it if you disagree. When you choose anything else then 0, then only UI packets with PID=F0 are digipeated (normal AX.25 UI frames) and no other packets like I, RR, REJ, SABM etc. are digipeated. Also no UI packets for NetRom, IP and ARP are not digipeated when using this "kenwood_mode". This is done because these packets are usually long and truncating or not transmitting these packets causes corruption of data. 18-08-2000 version 0.1.6 - Segmentation Fault in Linux. I just knew this would happen someday.. I had moved some code in "message.c" from one place to another. Unfortunately the code following this on the old location assumed certain values to be set. But this was not longer the case. Result was this Segmentation Fault in Linux when you were lucky, or data corruption. Thanks to Bill, WA7NWP for reporting and helping out to pinpoint the location (I could not reproduce but due to Open Source Bill had the source too to allow debugging!). Another ham, Ron, also reported the problem. - Added "Bugs.txt" to the distribution. How to report bugs and how to help to track them down in Linux. - DIGI_NED.TXT has a reference to the originator of the idea to have queries for text and Objects in APRS. It was not clear so somebody could miss-interpreted as my idea. 12-08-2000 version 0.1.5 - Found a bug in digipeating on SSID. It should check if a frame is a UI frame but due to a bug it checked that the frame is NOT an UI frame. This made the function useless. Found by a user, thanks for the report! - Added checking if received Originator, Destination and Digipeater calls are valid. I saw some funny calls like "ERROR!" and "PPP___" on the air (VHF), the first seemed to originated from TinyTrak devices (saw that one multiple times from different operators)... Frames with such invalid calls are not processed by DIGI_NED anymore. - DIGI_NED did not reliably detect local stations. Up to now a local station was a station where none of the digipeaters carried a 'digipeated' bit. Because WIDEn-N does not set the digipeated bit also when it is actually digipeated the determination of a station was flawed or incomplete.. This caused Ping-Pong packets if the first digi-call is of a station is WIDEn-N. The determination of a local station is now changed, a local station has: - no digipeaters (this was okay the way it was) - or on the first digipeater: - no 'digipeated' bit (H-Bit) is set and the SSID is 0 or bigger than 7 or - no 'digipeated' bit (H-Bit) is set and the digipeater call does not finish with a digit between 1 and 7 or - no 'digipeated' bit (H-Bit) is set and the final digit of the digipeater call is not bigger than the SSID In all other cases the station is not local. Stations using WIDEn-N as first digi-call are now handled correctly and will not be detected as 'local' after they are digipeated. This bug was found by a user, thanks for the report! - Made the default distribution area for messages in the sample DIGI_NED.INI a bit bigger. Messages are local but I got the impression they are now a bit too-local now during tails in the field. - Sample extended; when sending an object in the sample digi_ned.mes file I now also send a confirmation messages. It was not always clear that the response was an object. - When a query has multiple responses then they are separated by 10 seconds now - this was 5. This works better when mixing objects and messages (objects are also separated by 10 seconds). Also gives more reading time on reception. - On a multi-line response the second and subsequent lines took to long to retransmit. The time to separate message transmissions should not be doubled by the decay algorithm. The decay algorithm shall re-transmit after 10, then 20, then 40 etc. up with a maximum of 10 attempts. - New rule "max_msg_hops:". If the number of digipeaters marked as "used" in the digipeater list exceeds this value the digipeater ignores the message form the user. Reason is that the answer will never get back anyway with the paths specified with the "message_path:" settings. When not specified the "max_msg_hops:" setting is 8, which means there are no limits (paths with 9 hops do not exist within the AX.25 protocol specification). This code is contributed by KG4ECV, thanks Alex! - Block-list now split in 2 parts. The normal (old) block-list is used to block calls for digipeating. A second list, "msg_block:" is used to block calls for issuing queries towards the digi. This code is contributed by KG4ECV (I merged the new code however with the original block-code), thanks Alex! - Added descriptions to the documentation and sample-ini files. - The "owner:" rule can now take more calls. The first defined call will be reported as owner with messages using the %o parameter. The other calls are allowed to use the ?exit command to start remote maintenance. These other calls can be your own call with appended SSID or the call of a co-maintainer. - Changed the code: block.c and block.h is now call.c and call.h. Functions in call.c are used to keep lists of calls. This is currently used for owner, block and msg_block and will be used for any future call-lists that may be needed. - When somebody else that an owner queries the digi with "?exit" then no answer came back. Now it is processed like any other message (you can put ?exit in digi_ned.mes if you like). Only owners will end up in the shutdown procedure if "enable_exit:" in digi_ned.ini allows it. - When an answer of a query started with one of the '%' variables, like %o, the code misbehaved. - New build-in query 'date', returns date and time of the digipeater - In DOS you can now stop and restart logging with ALT-L. Logging starts at startup but with ALT-L you can stop it. The logfile will be closed so you can shell to DOS to rename or remove the logfile. With ALT-L logging can be restarted when stopped, new date will be appended to the existing logfile if present. - Queries do not need to be in lowercase but now mixed case can be used. This is only for makeup of the file, queries are case independent. I use uppercase to annotate short cuts now in the sample message file. 04-07-2000 version 0.1.4 - Changed some info in the manual, using DosAPRS as example in conjunction with KISS was a bad choice, DosAPRS appears not to support KISS. Changed the description to refer to an anonymous APRS program. - "preempt_keep:" now accepts wildcards. Should have been in the previous release but I made an error and did not implement it correctly. - New rule "preempt_never_keep:", calls that should never be kept, even when it matches with "preempt_keep:" "preempt_never_keep:" can also accept wildcards. 02-07-2000 version 0.1.3 - Added %1 to 'digi_ned -v' in run.bat so you can now give an alternative .ini file on the command-line - Removed some non-functional code in digipeat.c - Removed some "dump" residue from output.h and read_ini.c, the function was long gone but the #ifdef was still present... - Added preemptive digipeating function. New rule in the .ini file: "preempt:". With "preempt:" you can take packets before it is your turn to take them according to the digipeater via-list. Description in digi_ned.ini. Unused digipeater are taken out of the via list. - Added rule "preempt_keep:". Calls in this list are retained when preempting. Normally unused digis before the call on which preempt reacts are removed; if the call happens to be in the "preempt_keep:" list the call is inserted again in the via-list on the right-hand side of the call on which preempt reacted. Sound difficult here, look at the examples in digi_ned.ini. - Objects returned on a query are now transmitted twice. The spacing between Object's first transmissions is now 10 sec, this gives the user more time to look at the deposit. The second deposit is scheduled 60 seconds after the first one. - Sample objects do not have speed and heading indicators that do not make sense. Unfortunately this is not 100% according to the APRS spec but this done because Items do not work on popular equipment (THD7). - Added 2 sections to the FAQ, how to setup a KISS network with DIGI_NED and how you can setup a ZIP-lan. - Third party messages can be recursive. This is handled now to find the originator of a message. 18-06-2000 version 0.1.2 - Message system changes, most message query/answers are now read from a file, so the user can expand it with their own commands! I've put some examples in the file to give an impression what you can do. The basic idea is from one of the DIGI_NED users so more brilliant ideas are welcome (I still have some in store still waiting for the right moment for me). - New commands added, existing commands reformatted for display on a TH-D7 12 char/line display. - Besides message 'ack' also 'rej' is recognized. On 'rej' the messages are not retransmitted, the receiver of the messages is most likely overloaded with data. - On multi-line responses spread the transmissions each 5 sec instead of all at once. This avoids continuous transmission and also makes it more easy for the receiver to handle the data. - When querying "?mheard " you now get 4 calls per line instead of 6. The calls now fit on a 4x 12 character display (where the 4th line cannot be completely used) of a TH-D7 - Default "size_heard_list:" in digi_ned.ini changed from 100 to 40. This will give 10 responses when the port is queried and the list is full. The TH-D7 can hold 16 lines so we have some of the previous messages retained. When making the list more than 60 the response will not be completely captured by the TH-D7. - When sending queries to the digi the starting '?' is now optional - "mh" is now short for "mheard", both are recognized. - Switched to "large" memory model for DOS - ALT-D now gives a DOS shell in DOS - ALT-V toggles verbose mode in DOS - For DOS the queries can now also be done on the console keyboard - Message path in digi_ned.ini and d_relay.ini limited to one wide, only the local area needs to be served... - General tidy-up of verbose messages 01-06-2000 version 0.1.1 - DigiTo: rules should only be executed on UI frames with PID F0, changing the SSID of destination calls on connection-oriented links gives a huge mess. - When a message was send to DIGI_NED via a TCP/IP tunnel then DIGI_NED used the call of the sender of the AX.25 frame, in this case the gate, as return address. The real sender is in the path that is send with the data. DIGI_NED now uses the real sender to direct the data to. - Added FAQ section to the documentation, which may be helpful to understand what the software is doing. - Ran a spelling checker on the documentation. 21-05-2000 version 0.1.0 - Now you can make even smarter rules. The operations can now have an optional number to specify how many digipeater calls shall be marked as used by the DIGI_NED. Default is 1, but you can specify a number from 0 to 8. With 0 no digipeater call is used up (used for WIDEn-N digipeating), with 8 all digipeater calls are used up. The value 2 is used for the last hop on TRACEn-N digipeating, both the own call and the remaining TRACEn shall be marked as used on this last hop. - Bug in "digito:" rule, the first new digipeater should be marked as "used" normally. With the first change mentioned above the default is now okay and when adding a number to the operation this can be set any way you like. - Revised the default DIGI_NED.INI. After discussions on the APRS Special Interest Group mailing-list (see http://www.tapr.org) it was settled how WIDEn-N and TRACEn-N digipeating is supposed to work. For WIDEn-N the own digipeater call is not put in anymore. This behavior is now consistent with Kantronics KPC3+ TNC's. Also WIDEn calls are not supposed to be picked up, even if they are not "used" yet. Some TNC's seem to leave WIDEn on the last hop without the H-bit, which indicates that this call was already used for digipeating, being set. - A rule for plain and simple 'trace' was missing! I added this omission now. - Problems with queries when using DosAPRS, apparently spaces are added to messages and DIGI_NED could not recognize them anymore. Appended spaces and tabs are now ignored. - Added the 'bind' command in the source, which I removed in version 0.0.7. Omitting this 'bind' leads to additional "NET" error messages in the system log. - On transmit socket changed PF_AX25 to ETH_P_AX25, I hope this helps against the "protocol 0000 buggy, dev ax0" messages in the syslog, reports will be appreciated (this is a LINUX issue only). I cannot very well verify this since I'm using a 2.0.36 kernel and this only occurs in the 2.2 or newer kernels (I tried to modify the 2.0.36 to report the same message but the condition does not occur). - Add text in digi_ned.txt on how to use DIGI_NED with IGATE software under Linux - The Command/Response flag was set the wrong way around on DIGI_NED's own beacon and message transmissions ("UI^" should have been "UIv") The APRS specification does not define what is correct, "UIv" is what the TH-D7E and TH-D700E seem to transmit. XAstir does "UI^". WinAPRS is "UIv" most of the time but frames from WinAPRS and UIView users are not consistent. My guess is that AGWPE does not actively set or reset the C-Flag bits in the source and destination fields. Some of the frames even have "UI" only, I think that is the old AX.25 v 1.0 format. It seems to be a real mess. I follow the TH-D7E and TH-D700E now. - Added timestamp on verbose tracing - Added d_relay.ini sample DIGI_NED rules file for stations that should only be a RELAY and not a WIDE. - Removed BEACON and ID from the "digi_to:" rule in DIGI_NED.INI, these should be kept in the local area. 07-05-2000 version 0.0.9 - Changed distribution names of files DNEXExxx.ZIP - DOS exe file plus additional files DNSRCxxx.ZIP - DOS source wrapper, contains source .TGZ file, wrapped because brain-dead MSDOS does not understand long filenames digi_ned-x.x.x.tgz - Source file for LINUX (contained in DNSRCxxx.ZIP) - Documented "erase" operation in digi_ned.txt document - With "logfile:" and no argument still an attempt is made to write a log. This was noticeable when running from floppy. Fixed now. - Changed rules digi_ned.ini for wide7, wide6, ..., wide0, does command substitution now instead of leaving anonymous wide[0-7] call. - Changed auto-reply system. A specific command from a user is only accepted once in "message_keep_time:" seconds, default: 900 seconds. When a user sends the same command within this time again then DIGI_NED will not respond, only acknowledge the message. This means for example that a user cannot send two "?info" commands to DIGI_NED within this time, on the second command DIGI_NED will not respond and only acknowledge the message. If the user tries the "?info" command again after 900 seconds then the user will get a normal response on the "?info" command. After sending an "?info" command a user can send another command without any problems, for example "?up" will work normally. A second "?up" command will not yield a response however. The reason for this behavior is to avoid problems when two auto-responding systems are starting to respond to each other, this will go on infinitely if nothing is done about it. With this measure a message will Ping-Pong only once and then it will be silent again. If a quarter of an hour is not sufficient in your case then increase the "message_keep_time:" value. - Changed "send:" command, the first call in the path is the destination call, use of DIGI_DEST call is allowed too. Changed the description in the documentation and .ini file too. - The code ensures now that the beacon text is terminated by a , if the beacon file does not contain a line terminator than DIGI_NED will add a at the end of the beacon text itself. - Added the "send:" command to "digi_ned.ini" to send a station identification, this "send:" command uses "digi_id.ini". - When taking a closer look a the response of the ?APRST command in the latest specification I found that DIGI_NED was missing a colon at the end of the message, added now. - The new APRS specification now also specifies the format for ?PING?, DIGI_NED now uses the specified format instead of the WinAPRS format. 29-04-2000 version 0.0.8 - Always print a startup message, also in non-verbose mode, to avoid confusion that the program is hanging. - Old data check now also looks at the originator, this prevents mishaps if another station happens to send data with an equal CRC - "Echo:" rule is gone and replaced by "DigiTo:". "DigiTo:" differs in 2 ways from echo. First if all it does not automatically add the DIGI_CALL. Secondly it does SSID replacement on the destination address. This is used for intelligent digipeating on the destination SSID. Added rules for this to digi_ned.ini. - Wildcard matching of calls changed. When '*' is used and additional characters follow after the '*' then characters in the callsign to check will be skipped until a match is found again, from that point checking will proceed. Example: Using W*E will match WIDE but not W0EXT; after the '*' the code will look for an 'E' and proceed checking from there. In case of matching with WIDE the '*' will skip the 'I' and 'D' characters and proceed comparison at the 'E'. In case of matching with W0EXT the '*' skip over the '0' character and also proceed comparison at the 'E'. Since 'E' is not equal to 'EXT' the match will fail for W0EXT. Typical use for this, and the prime reason why this is implemented, is to enable checking on SSIDs. You can use '*-4' to match any call with 'SSID' '4'. This is for digipeating on destination-call SSIDs - Changed documentation to English due to more and more international interest. - digi_ned -h did not give correct output, fixed. - response to ?ping? and ?APRST slightly changed, does now match with WinAPRS except indication of transmitting DIGI with a * symbol - ?APRST differs from ?ping?, it doesn't have a "PATH= " prefix. - Added more exit-code usage examples to "run.bat" to make it more useful to use as template - Added syntax of commands in .ini file to digi_ned.txt - Relaxed checking for ?APRS? query a bit 16-04-2000 version 0.0.7 - Changed startup message for port initialization when running LINUX - Method for handling ?exit completely changed. Now ?exit is accepted from everywhere, a shutdown announcement is transmitted in the local area (no digipeaters, transmitted at most 3 times) and when that message is acknowledged the digi will exit. If not acknowledged the digipeater will proceed normally. - Interface towards AX.25 in the Linux kernel could be simplified, 'bind' is not needed. - Error in interpretation of the ports in "local:", I used the wrong variable to test against... I hope it works now as advertised - Dump of output now shows the frame as it will be transmitted through the local port instead of only a message (due to the previous bug I guess nobody has seen this output anyway :-) ). - Startup changes: Now DIGI_NED is silent at startup (unless you make an error in the parameters). To get verbose output use the '-v' flag. For help use the '-h' flag. For LINUX the ports are specified with the '-p' flag, the "digi_lnx.ini" file is gone (was a hack anyway). Verbose output will always appear in a logfile, even when the '-v' option is not used. - Known bug: "protocol 0000 buggy, dev bc0" type messages in the system log. Could not find a solution yet. I'm using old AX.25 tools with 2.0.36 kernel; this combination does not report this problem. I don't know if the latest kernel/tools still report this problem. - The default directory for "digi_ned.ini", the beacon file(s) and the logfile is now the directory containing the digi_ned executable. To force reading from the current directory use "./" or ".\" in front of the filename or supply a full-path. - Added '?' to the "data_prefix:" so the "?APRS?" query will also be remembered only a short time (10 seconds in the default digi_ned.ini file). 09-04-2000 version 0.0.6 - Ease check on ?exit a little; don't check on To: call anymore, now WinAPRS can be used which has a fixed To: address. - Left "logfile" on in sample digi_ned.ini, now switched off - Included sample script "digi_ned.sh" to start digi_ned in background on Linux (sample build on request for a Ham, supplied here because I had already build anyway :-) ) 02-04-2000 version 0.0.5 - assignment of "local" ports, usable for covering black-spots. - ?exit command can now have an optional number e.g. ?exit 15 the number is used as exit-code (in this example 15) - INCLUDE in makefile not longer dependent on old AX25 tools - commands without sequence numbers also accepted now - TCPIP tunneled messages now handled correctly - ?APRST accepted as substitute for ?ping? - ?APRSM will resent unacked messages to the requester - Call-comparison in message fixed (didn't check full length) - Changes to the default digi_ned.ini: handling of WIDE-N, paths changed from WIDE,WIDE,TRACE5-5 to WIDE,TRACE6-6 - Now message_path definition per port, multiple definitions for one port possible - Removed not needed variable, added parameter -Wall to gcc for debugging in Makefile Version 0.0.4 and earlier - First source code release. - Support for Linux - Fixed bug in "mheard " APRS[tm] is a Trademark of Bob Bruninga, his home page is at "http://web.usna.navy.mil/~bruninga/aprs.html"