Amateur Radio APRS digipeater support.
The original source is available from http://digined.pe1mew.nl/
This package downloads a modified version that builds using GNU autotools.

Signed-off-by: Ken Koster <[email protected]>

---
Index: packages/net/digi_ned/files/digi_ned.ini
===================================================================
--- packages/net/digi_ned/files/digi_ned.ini    (revision 0)
+++ packages/net/digi_ned/files/digi_ned.ini    (revision 0)
@@ -0,0 +1,949 @@
+;
+;  Copyright (C) 2000-2005  Henk de Groot - PE1DNN
+;
+;  This program is free software; you can redistribute it and/or modify
+;  it under the terms of the GNU General Public License as published by
+;  the Free Software Foundation; either version 2 of the License, or
+;  (at your option) any later version.
+;
+;  This program is distributed in the hope that it will be useful,
+;  but WITHOUT ANY WARRANTY; without even the implied warranty of
+;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;  GNU General Public License for more details.
+;
+;  You should have received a copy of the GNU General Public License
+;  along with this program; if not, write to the Free Software
+;  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+;  Please note that the GPL allows you to use the driver, NOT the radio.
+;  In order to use the radio, you need a license from the communications
+;  authority of your country.
+;
+;------------------------------------------------------------------------------
+;
+;  DIGI_NED Digi - New Paradigm setup
+;
+version: 2
+;
+;------------------------------------------------------------------------------
+;
+;  Start of the rules, start with the beacons.
+;
+;  Send our position as beacon, this transmission also takes place when an
+;  "?APRS?" broadcast or query is received.
+;
+beacon: 30 all DIGI_DEST,WIDE2-2
+digibcon.ini
+;
+;  Send our station identification every 5 minutes. Note that this may be
+;  required to fulfil your license requirements. In this case I did not
+;  add any digipeaters since this is only a local identification.
+;  Upon reception of an "?APRS?" broadcast or query this beacon is not
+;  transmitted. If that is needed change the "send:" rule into a "beacon:"
+;  rule.
+;
+;  ** MOdified to combine the ID packets into the beacon string **
+send: 10 all ID
+digi_id.ini
+;
+;------------------------------------------------------------------------------
+;
+;  Serial line handling
+;
+;  Since there is no default the examples are commented out
+;  COM1 is in Linux /dev/ttyS0, COM2 is /dev/ttyS1 etc.
+;
+;  Tip: to accept all the data on the serial input leave the line following
+;       the "serial:" rule empty. In that case all the data on the serial
+;       input is accepted (if it doesn't fail the checksum). DIGI_NED will
+;       only output the most recently read complete line in that case.
+;
+;serial: 10 all com3 4800 GPSODN,WIDE2-2
+;$GPRMC $GPGGA
+;
+;------------------------------------------------------------------------------
+;
+;  Telemetry transmission. Telemetry data to send is read from a LPT port.
+;
+;  NOTE: These lines are commented out since there is no sensible default
+;  You have to adapt the beacon telemetry text and connect the hardware you
+;  want to control. Please read the TELEMETRY section in the APRS
+;  specification (to be found on "http://www.tapr.org";). If you do not
+;  understand this, please leave all the telemetry stuff commented!!!
+;
+;  In this example the data from lpt2, using address 1 on the control line
+;  outputs, is put into the analog A1 channel and in the binary channels
+;  (B1..B8) (using the default port address 5).
+;
+;telemetry: 15 all lpt2/1,off,off,off,off,lpt2_8 DIGI_DEST
+;
+;  Send telemetry specification at regular intervals
+;
+;  This information is formatted as a message to the digi itself (the
+;  digi sends a message with as destination the digi itself). These
+;  messages specify what telemetry is transmitted. Care has to be taken
+;  with the layout. Fields are limited in length. The information how
+;  to use this can be found in the APRS protocol specification in the
+;  telemetry chapter.
+;
+;  The information in "digi_tlm.ini" defines the names of all parameters,
+;  the units in which they are expressed, equations to be used on the
+;  analog values and a bit-pattern to define when a digital bit should be
+;  regarded as 'active' or 'on'. If you don't understand this please read
+;  the APRS specification. It's no use to duplicate the information here
+;  and it will not make the topic more simple.
+;
+;beacon: 30 all DIGI_DEST
+;digi_tlm.ini
+;
+;  We use the beacon file also as our own source of information to
+;  answer on 'tlm' queries. This is needed to format the responses.
+;
+;tele_info: digi_tlm.ini
+;
+;------------------------------------------------------------------------------
+;
+;  Automessage, automatically start query to DIGI_NED itself
+;
+;  Automessage automatically sends a message to DIGI_NED itself, so
+;  it can regulary do actions like posting an object, keep the tracker
+;  running for a specific satellite or, since messages can startup a program,
+;  run a program at regular intervals. In the example below DIGI_NED keeps
+;  tracking satellite NO44 (APRS satellite PCSat). Every 100 minutes the
+;  tracking is restarted so it will never expire.
+;
+;automessage: 100 all
+;?trk no44
+;
+;------------------------------------------------------------------------------
+;
+;  Commands to execute directly after the .ini file is processed. These
+;  command are sent through the message parser as if they were sent over
+;  the air. The purpose is to initialise output ports used for remote control
+;  to a certain state.
+;
+;command: !out 2 10101011
+;
+;  It can also be used to make a port read-only at startup, for example
+;  port 4:
+;
+;command: !ptt xxx0xxxx
+;
+;------------------------------------------------------------------------------
+;
+;  Digipeat frames with these digipeater calls.
+;
+;  Digipeat data to this call from any port one back out onto all ports.
+;  Don't add anything (except mycall of course).
+;
+;  XXXX XXXX = whatever comes next after this
+;
+;------------------------------------------------------------------------------
+;all ==> PE1XXX-1>APXXX PE1YYY* DIGI_CALL XXXX XXXX
+;all <== PE1XXX-1>APXXX PE1YYY DIGI_CALL* XXXX XXXX
+;
+digipeat: all DIGI_CALL all
+;
+;------------------------------------------------------------------------------
+;
+;  Intelligent digipeating rules
+;
+;  Handling of WIDEn-N
+;  -------------------
+;
+;  Under the new paradigm, WIDEn-N will work as TRACEn-N under the old
+;  paradigm. The maximum allowed hop-count for the new paradigm is 2.
+;
+;  We don't want to be blunt to drop all WIDEn-N packets with a higher
+;  hopcount than 2, instead we just convert them to a the WIDE2-N
+;  equivalent if possible. If the packet already used up more than 2 hops
+;  then it already went far enough, we drop it on the floor.
+;
+;  We don't drop any trailing calls after the WIEDE2-N. Reason for this is
+;  because we do not want to loose additions like "IGATE" or "RFONLY" at the
+;  tail of the digipeat list.
+;
+;  If dropping trailing calls is more important to you use operation "replace"
+;  instead of "swap" in the rules below.
+;
+;  General rule: calls of previous intelligent digipeaters stay in the
+;  digipeater list (note that on overflow calls are dropped!).
+;
+;  Example: packet with WIDE2-2 should progress as follows
+;
+;  -- 1st hop on WIDE2-2 --
+;  all ==> PE1XXX-1>APXXX PE1YYY* WIDE2-2 XXXX XXXX
+;  all <== PE1XXX-1>APXXX PE1YYY DIGI_CALL* WIDE2-1 XXXX XXXX
+;
+;  Rule: digipeat: all wide2-2 all swap DIGI_CALL,wide2-1
+;
+;  -- 2nd hop on WIDE2-1 by "DIGI_2" --
+;  all ==> PE1XXX-1>APXXX PE1YYY DIGI_CALL* WIDE2-1 XXXX XXXX
+;  all <== PE1XXX-1>APXXX PE1YYY DIGI_CALL DIGI_2 WIDE2* XXXX XXXX
+;
+;  Rule: digipeat: all wide2-1 all swap2 DIGI_2,wide2
+;
+;------------------------------------------------------------------------------
+;
+;  WIDE7-N handling
+;
+digipeat: all wide7-7 all swap DIGI_CALL,wide2-1
+digipeat: all wide7-6 all swap2 DIGI_CALL,wide2
+;
+;------------------------------------------------------------------------------
+;
+;  WIDE6-N handling
+;
+digipeat: all wide6-6 all swap DIGI_CALL,wide2-1
+digipeat: all wide6-5 all swap2 DIGI_CALL,wide2
+;
+;------------------------------------------------------------------------------
+;
+;  WIDE5-N handling
+;
+digipeat: all wide5-5 all swap DIGI_CALL,wide2-1
+digipeat: all wide5-4 all swap2 DIGI_CALL,wide2
+;
+;------------------------------------------------------------------------------
+;
+;  WIDE4-N handling
+;
+digipeat: all wide4-4 all swap DIGI_CALL,wide2-1
+digipeat: all wide4-3 all swap2 DIGI_CALL,wide2
+;
+;------------------------------------------------------------------------------
+;
+;  WIDE3-N handling
+;
+digipeat: all wide3-3 all swap DIGI_CALL,wide2-1
+digipeat: all wide3-2 all swap2 DIGI_CALL,wide2
+;
+;------------------------------------------------------------------------------
+;
+;  WIDE2-N handling
+;
+digipeat: all wide2-2 all swap DIGI_CALL,wide2-1
+digipeat: all wide2-1 all swap2 DIGI_CALL,wide2
+;
+;------------------------------------------------------------------------------
+;
+;  WIDE1-N handling; Special case, used as RELAY replacement
+;  Special conditions:
+;  - Only allowed if first in the path
+;  - Doesn't leave a WIDE1 behind, just does normal digipeating replacing
+;    the WIDE1-1 with the digipeater callsign
+;
+digifirst: all wide1-1 all
+;
+;------------------------------------------------------------------------------
+;
+;  Handling of SS digipeating
+;  --------------------------
+;
+;  Example SS: NL (The Netherlands), replace NL with your own state/country
+;  to cover your own Local Area.
+;
+;  SS works as WIDEn-N used to work in the past. Note that we don't limit
+;  the number of hops; it is not needed because packets with these paths stay
+;  inside the local area (state/country) anyway.
+;
+; State region handling without callsign expansion modification
+;
+;------------------------------------------------------------------------------
+;
+;  7 Hops
+;
+digifirst: 1 WA7-7 1 swap DIGI_CALL,WA7-6
+diginext: 1 WA7-7 1 swap0 WA7-6
+digipeat: 1 WA7-6 1 swap0 WA7-5
+digipeat: 1 WA7-5 1 swap0 WA7-4
+digipeat: 1 WA7-4 1 swap0 WA7-3
+digipeat: 1 WA7-3 1 swap0 WA7-2
+digipeat: 1 WA7-2 1 swap0 WA7-1
+digipeat: 1 WA7-1 1 swap WA7-1
+;
+;------------------------------------------------------------------------------
+;
+;  6 Hops
+;
+digifirst: 1 WA6-6 1 swap DIGI_CALL,WA6-5
+diginext: 1 WA6-6 1 swap0 WA6-5
+digipeat: 1 WA6-5 1 swap0 WA6-4
+digipeat: 1 WA6-4 1 swap0 WA6-3
+digipeat: 1 WA6-3 1 swap0 WA6-2
+digipeat: 1 WA6-2 1 swap0 WA6-1
+digipeat: 1 WA6-1 1 swap WA6-1
+;
+;------------------------------------------------------------------------------
+;
+;  5 Hops
+;
+digifirst: 1 WA5-5 1 swap DIGI_CALL,WA5-4
+diginext: 1 WA5-5 1 swap0 WA5-4
+digipeat: 1 WA5-4 1 swap0 WA5-3
+digipeat: 1 WA5-3 1 swap0 WA5-2
+digipeat: 1 WA5-2 1 swap0 WA5-1
+digipeat: 1 WA5-1 1 swap WA5-1
+;
+;------------------------------------------------------------------------------
+;
+;  4 Hops
+;
+digifirst: 1 WA4-4 1 swap DIGI_CALL,WA4-3
+diginext: 1 WA4-4 1 swap0 WA4-3
+digipeat: 1 WA4-3 1 swap0 WA4-2
+digipeat: 1 WA4-2 1 swap0 WA4-1
+digipeat: 1 WA4-1 1 swap WA4-1
+;
+;------------------------------------------------------------------------------
+;
+;  3 Hops
+;
+digifirst: 1 WA3-3 1 swap DIGI_CALL,WA3-2
+diginext: 1 WA3-3 1 swap0 WA3-2
+digipeat: 1 WA3-2 1 swap0 WA3-1
+digipeat: 1 WA3-1 1 swap WA3-1
+;
+;------------------------------------------------------------------------------
+;
+;  2 Hops
+;
+digifirst: 1 WA2-2 1 swap DIGI_CALL,WA2-1
+diginext: 1 WA2-2 1 swap0 WA2-1
+digipeat: 1 WA2-1 1 swap WA2-1
+;
+;------------------------------------------------------------------------------
+;
+;  1 Hop
+;
+digipeat: 1 WA1-1 1 swap DIGI_CALL,WA1-1
+;
+;------------------------------------------------------------------------------
+;
+;  Handling of destination-SSID based digipeating
+;  ----------------------------------------------
+;
+;  Digipeating on desitination call SSID doesn't seem to be supported by
+;  the new paradigm. If you want you can take the rules from the standard
+;  digi_ned.ini file; remember to edit it to limit the number of hops to
+;  a maximum of 3 hops; the new paradigm allows up to 3 hops maximum (when
+;  using the path WIDE1-1,WIDE2-2).
+;
+;------------------------------------------------------------------------------
+;
+;  Preemptive digipeating. If one of the unused digis matches the call
+;  in the "preempt:" rule, and there are other unused digipeater
+;  before this call then the digipeater will remove all unused digipeater
+;  calls up to but not including the matching call. The modified packet
+;  header will then be digipeated by applying matching "digipeat:" rules.
+;
+preempt: all DIGI_CALL
+;
+;  If WIDEn-N or SSn-N appears anyware in the path we use that. This way
+;  we will skip over RELAY in case comebody still uses it. We also want to
+;  skip over WIDE1-1 since that is the replacement for RELAY, we accept any
+;  WIDEn-N where n is greater than 2
+;
+preempt: all WIDE2*
+preempt: all WIDE3*
+preempt: all WIDE4*
+preempt: all WIDE5*
+preempt: all WIDE6*
+preempt: all WIDE7*
+preempt: all SC!*
+;
+;  Do not relocate any preempted calls.
+;
+preempt_never_keep: *
+;
+;------------------------------------------------------------------------------
+;
+;  Local ports. Digipeated packets to a local port will not have
+;  "unused" digipeaters in the path (they are stripped off); i.e.
+;  the packets will not be repeated by other digipeaters anymore
+;  (unless they have a digiend: rule that picks the packets up
+;  again). Only packets that are send directly to the digipeater
+;  (did not pass another digipeater before reception) will be sent
+;  out as a normal digipeated frame using the same digipeater path
+;  manipulations as also used for non-local ports). This feature
+;  can be used to fill-in black spots in the network without causing
+;  unneeded traffic in neighboring digipeaters.
+;
+;local: 2
+;
+;------------------------------------------------------------------------------
+;
+;  How many calls kept in the digipeater software.
+;
+;  The "size_heard_list" defines how many calls are remembered
+;  for the "mheard" and "dx" queries. If it is too small then
+;  the DX function cannot give accurate long-term reports.
+;
+size_heard_list: 150
+;
+;  The "size_heard_show" defines how many calls are shown on
+;  the "mheard <port>" query. There are 4 calls shown per line.
+;  This means that with 40 calls on the same port you get up to
+;  10 lines with responses. If not defined, "size_heard_show:"
+;  is the same as "size_heard_list".
+;
+size_heard_show: 40
+;
+;------------------------------------------------------------------------------
+;
+;  How many seconds old data transmissions are remembered to prevent loops.
+;  Use '0' to switch-off (then DIGI_NED only looks for its DIGI_CALL in the
+;  digi-list)
+;
+keep_time: 300
+;
+;  If the received data starts with a particular character then we can opt
+;  to use a shorter keep_time. The first character in UI data specifies
+;  the kind of data, with this we can give certain type of data a short
+;  time to repeat. This is especially useful for messages and acks on
+;  messages which are repeated frequently at the start. Note that you can
+;  not use <space> as data prefix. Use 0 to forget immediately.
+;
+short_keep_time: 10
+data_prefix: :?~
+;
+;------------------------------------------------------------------------------
+;
+;  This command specifies the file from which message query/answers are
+;  read. If no path is given DIGI_NED looks for the file in the same place
+;  as the executable. If a path is given DIGI_NED will look there; i.e.
+;  ".\digi_ned.mes" will direct DIGI_NED to the current directory,
+;  "\tmp\digi_ned.mes" will make DIGI_NED to look for the file in the
+;  "tmp" directory. Forward or backward slashes are interpreted correctly
+;  for the platform you run on (DOS or Linux).
+;
+message_file: ./digi_ned.mes
+;
+;  How many seconds old message receptions are remembered to prevent loops.
+;  Use '0' to switch-off (then DIGI_NED only looks for its DIGI_CALL in the
+;  digi-list)
+;
+message_keep_time: 900
+;
+;  Message path contains the digis appended to messages transmitted by
+;  DIGI_NED. This path has to be defined per port, more definitions for
+;  one port are possible. Also "message_path: 1" works, no digipeater
+;  definitions are used in that case. Messages are never transmitted
+;  on ports which do not have any matching "message_path:" definitions.
+;
+;  Message path used to be WIDE, but the new paradigm doesn't support it.
+;  We still want 1 hop but WIDE1-1 is now RELAY. So we use WIDE2-1 to get
+;  a path with one WIDE. Disadvatage: a packet is not recognized as a direct
+;  packet. You can't win them all...
+;
+;  If you know the digi, you can name it explictly here.
+;
+message_path: all WIDE2-1
+;
+;  If the number of digipeaters marked as "used" in the digipeater
+;  list exceeds the next specified value then the digipeater ignores
+;  the message from the user. Reason is that the answer will never
+;  get back anyway with the above specified "message_path:" settings.
+;  It would only cause extra QRM to attempt it.
+;
+max_msg_hops: 2
+;
+;------------------------------------------------------------------------------
+;
+;  DX function handling.
+;  ---------------------
+;
+;  Define the position of the digipeater, from this point distance and
+;  bearing calculation on directly received stations takes place.
+;  First latitude, then longitude. The format shall be the same way
+;  as used in the APRS uncompressed position format, otherwise it will
+;  not be accepted by the program.
+;
+;digi_pos: 5213.61N 00600.00E
+;
+;  The digipeater position can also be taken from the first line of a beacon
+;  file, now you only have to change the beacon file. Since this is less
+;  prone to errors it is the default now.
+;
+digi_pos_file: ./digibcon.ini
+;
+;  Define what to return on a DX query. "all" returns the best DX of
+;  all entries of a given port, "1" returns the best DX of the last hour,
+;  etc.
+;
+dx_times: all,24,1
+;
+;  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".
+;
+dx_metric: mi
+;
+;  The next command defines when we report a station as DX. The first
+;  parameter is the port for which this is true (DX on 6m a is something
+;  different then DX on 2m, and DX on 70cm is different again). All applies to
+;  all ports but a single digit or comma separated digits are also possible.
+;  The second parameter is a threshold, in this example everything below
+;  25 km is not DX. Everything above 2000 is also thrown away as distances
+;  above 2000 are highly unlikely on 2m and 70cm. This will block a majority
+;  of bogus positions (note that the position 0000.00N/S 00000.00E/W is
+;  always blocked). The last parameter it the time in hours to look
+;  back. When 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".
+;
+dx_level: all 100-2000 1
+;
+;  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 which do not have any
+;  matching "dx_path:" definition.
+;
+;  New paradigm 1 hop call is WIDE2-1. Avoid WIDE1-1 because that is the
+;  new call for RELAY
+;
+dx_path: all DX,WIDE2-1
+;
+;  DX portname contains the name of the port to be reported with the DX
+;  reports and queries. It contains the port number and the rest of the
+;  string is the name. Beware - the name is limited in size, otherwise
+;  it is truncated. Up to 8 characters appear on a TH-D7 screen and
+;  are transmitted on air. The commented examples show some alternatives
+;  to the defaults I used.
+;
+dx_portname: 1 2 mtr
+;dx_portname: 2 70 cm
+;
+;dx_portname: 1 VHF
+;dx_portname: 2 UHF
+;
+;  Its common for DX clusters to use the frequency in kHz, so use that
+;
+;dx_portname: 1 144800.0
+;
+;dx_portname: 2 430512.5
+;
+;------------------------------------------------------------------------------
+;
+;  Satellite Tracking Attributes
+;  -----------------------------
+;
+;  The following attributes are used by the satellite-tracking module of
+;  DIGI_NED. Make sure that digi_pos is defined either in the DX function
+;  handling portion of this file or below. Alternatively, you can also
+;  specify the position in the digibcon.ini file, but don't forget to
+;  include the "digi_pos_file: digibcon.ini"-rule. The latter method is
+;  preferred because then you only have to specify (and change, if
+;  necessary) the position of the digi only once. This position information
+;  together with the other attributes are needed for satellite tracking
+;  calculations.
+;
+;  (commented out, already present above)
+;  Position of the digi...
+;digi_pos: 3256.84N 08001.92W (KG4ECV-10)
+;  ...or specify as:
+;digi_pos_file: digibcon.ini
+;
+;  Altitude of the digi in meters (1 meter is approx. 3.28 feet, not critical).
+digi_altitude: 10
+;
+;  Use local time (1) or UTC for the display of AOS time in objects.
+digi_use_local: 1
+;
+;  UTC offset for the digi (EST = -5). Make sure to correct this for
+;  daylight savings.
+;
+;  This value is only used when there is no timezone information in the
+;  system for DOS. Linux will either use by Linux's zoneinfo or by
+;  interpreting the TZ environment variable. In DOS the TZ variable can
+;  also be used. You can create one in DOS using the format:
+;
+;  set TZ=EST+5EDT
+;
+;  Where in this case UTC is 5 hours ahead of EST (watch the sign!) and
+;  Daylight saving is used. Note that in Europe the Daylight saving rules
+;  are different than the USA so it may not work. In that case just use
+;  TZ=EST+5 or when in Daylight saving TZ=EST+4.
+;
+;  When in a DOS environment the TZ  is not set then the next value will
+;  be used. Internally a TZ string will be used in the form:
+;  TZ=UTC-<digi_utc_offsert>, in my case TZ=UTC-2 during the summer. For
+;  the EST example the digi_utc_offset should be -5 and the internally
+;  generated TZ string will be UTC+5.
+;
+digi_utc_offset: -7
+;
+;  Time (in minutes) between transmission of satellite objects when satellite.
+;  is in range.
+sat_in_range_interval: 1
+;
+;  Time (in minutes) between transmission of satellite objects when satellite
+;  is out of range.
+sat_out_of_range_interval: 10
+;
+;  Duration time (in minutes) of tracking.
+track_duration: 105
+;
+;  Name of the satellite information database.
+satellite_file: ./digi_ned.sat
+;
+;  Name of the TLE file to update the satellite information database from.
+update_tle_file: ./digi_ned.tle
+;
+;  Sat Object format, Satellites can be transmitted the following way
+;
+;  The number specifies the format of the sat-object:
+;  0) Show plain as "AO40    E" (where E is for the Elevation column)
+;
+;  1) Show plain as "AO40 126E" (where 123 is the epoch of the used kepler
+;                                data and E is for the Elevation column)
+;  2) Show plain as "AO40 0805" (where 0805 is the ddmm date of the used
+;                                kepler data)
+;  3) Show plain as "AO40 0508" (where 0508 is the mmdd date of the used
+;                                kepler data)
+;  Default is 0.
+;
+sat_obj_format: 2
+;
+;------------------------------------------------------------------------------
+;
+;  WX support (and other applications you may think off..)
+;  -------------------------------------------------------
+;
+;  Example configuration for a WX station using many sensors connected
+;  to a multiplexing interface on the LPT port. For more information
+;  about interfacing to the LPT port look at the DIGI_NED web-site which
+;  can be reached via http://www.qsl.net/digi_ned. Also look at the links
+;  on this site. There are projects by other hams which can now be supported
+;  through this interface. Sole purpose is to stimulate home made equipment.
+;  Building a weather station and connect it to APRS is very rewarding!
+;
+;  Note: don't take a too narrow view! This functionality can also be
+;  used to transmit information from direction finders, formatted
+;  telemetry data etc, it doesn't have to be WX at all!
+;
+;  Having said this, here is the example!
+;
+;  Assume a telemtry module on LPT1 with 8 multiplexed ports
+;
+;  lpt1 port 0:
+;  lpt1 port 1: temperature in centigrade
+;  lpt1 port 2: course in steps of 30 degrees (0 = 0, 1 = 30, 2 = 60 etc)
+;  lpt1 port 3: encounting rainfall value in mm
+;  lpt1 port 4: humidity in steps of 10%
+;  lpt1 port 5: barometric pressure, in hPa offset 900 (100 = 1000 hPa)
+;  lpt1 port 6:
+;  lpt1 port 7: wind speed in beaufort
+;
+;  course from lpt1 port 2, multiply by 30 to get degrees
+;wx_var: c,val,lpt1_8/2,0,30.0,0
+;
+;  speed from lpt1 port 7, average over last min, convert from beaufort to mph
+;  aproximation beaufort to knots: 0.3*(x*x)+2.2*x+0
+;  multiply with 0.8689762 to get from knots to mph
+;  final formula beaufort to mph: 0.2607*(x*x)+1.9117*x+0
+; wx_var: s,avg1,lpt1_8/7,0.2607,1.9117,0
+;
+;  gust from lpt1 port 7, maximum over 5 min, convert from beaufort to mph
+;wx_var: g,max5,lpt1_8/7,0.2607,1.9117,0
+;
+;  temperature from lpt1 port 1, convert from centigrade to fahrenheit
+;wx_var: t,val,lpt1_8/1,0,1.8,32
+;
+;  rainfall last hour from lpt1 port 3, convert from mm to 1/100 of inch
+;wx_var: r,sum60,lpt1_8/3,0,3.937,0
+;
+;  rainfall last 24 hours from lpt1 port 3, convert from mm to 1/100 of inch
+;wx_var: p,sum1440,lpt1_8/3,0,3.937,0
+;
+;  rainfall since midnight from lpt1 port 3, convert from mm to 1/100 of inch
+;wx_var: P,sum,lpt1_8/3,0,3.937,0
+;
+;  humidity from lpt1 port 4, multiply by 10 to get percentage
+;wx_var: h,val,lpt1_8/4,0,10.0,0
+;
+;  barometric pressure from lpt1 port 5, 10ths of hPA: multiply by 10 add 9000
+;wx_var: b,val,lpt1_8/5,0,10.0,9000
+;
+;  raw rain counter, convert mm to 1/100 of inch
+;wx_var: #,val,lpt1_8/3,0,3.937,0
+;
+;  time variable type MDHM in zulu time
+;wx_var: D,mdhm,zulu
+;
+;  Positionless WX string, use in conjunction with a normal position beacon
+;
+;wx: 5 all APRS,WIDE2-2
+;_%08Dc%03cs%03sg%03gt%03tr%03rp%03pP%03Ph%02hb%05b#%03#xDned
+;
+;  Example complete WX string (if you use this, shut down the normal beacon,
+;  this WX packet will replace that function!):
+;
+;  time variable type DHM in zulu time
+;wx_var: T,dhm,zulu
+;
+;wx: 5 all APRS,WIDE2-2
+;@%06Tz5213.61N/00600.00E_%03c/%03sg%03gt%03tr%03rp%03pP%03Ph%02hb%05b#%03#xDned
+;
+;  Time formats example
+;
+;  Supported formats DHM, HMS, YMD, YDM, DMY, MDY, MDH, MDHM zulu or local time
+;
+;  A number of variables in Zulu time
+;
+;wx_var: T,dhm,zulu
+;wx_var: S,hms,zulu
+;wx_var: Y,ymd,zulu
+;wx_var: W,ydm,zulu
+;wx_var: F,dmy,zulu
+;wx_var: M,mdy,zulu
+;wx_var: O,mdh,zulu
+;wx_var: D,mdhm,zulu
+;
+;  A number of variables in Local time
+;
+;wx_var: U,dhm,local
+;wx_var: R,hms,local
+;wx_var: Z,ymd,local
+;wx_var: X,ydm,local
+;wx_var: E,dmy,local
+;wx_var: N,mdy,local
+;wx_var: Q,mdh,local
+;wx_var: G,mdhm,local
+;
+;wx: 5 all WX,WIDE2-2
+;>time: %06Tz (DHM) %06Sz (HMS) %06Yz (YMD) %06Wz (YDM)
+;wx: 5 all WX,WIDE2-2
+;>time: %06Fz (DMY) %06Mz (MDY) %06Oz (MDH) %08Dz (MDHM)
+;
+;wx: 5 all WX,WIDE2-2
+;>time: %06Ul (DHM) %06Rl (HMS) %06Zl (YMD) %06Xl (YDM)
+;wx: 5 all WX,WIDE2-2
+;>time: %06El (DMY) %06Nl (MDY) %06Qz (MDH) %08Gl (MDHM)
+;
+;  By using combinations and restricting the output of a variable other
+;  strings can be build... Example:
+;wx: 5 all WX,WIDE2-2
+;>date: %02Y-%02W-20%02F time: %02O:%02T:%02S zulu
+;
+;------------------------------------------------------------------------------
+;
+;  Calls we don't want to repeat. These are also not kept in the MHeard list
+;  and no DX messages are generated for these calls. Optionally you can
+;  specify a port number, only packets from those ports with the specified
+;  calls are blocked. (e.g. block: 1 CALL). When no port is specified then
+;  "all" is assumed to be backwards compatible.
+;
+block: all N0CALL,NOCALL,MYCALL
+;
+;  Here we can block calls that already went through a specific digi,
+;  for example to block mass-distribution of IGate traffic through the
+;  digi. "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. It
+;  considers all calls in the 3rd party header including originator
+;  and destination calls. Optionally you can specify a port number, packets
+;  from those ports with the specified calls are blocked and no packets
+;  with the specified call will be send to that port. For example:
+;
+;  via_block: 1 TCPIP
+;
+;  The digipeater doesn't accept packes with TCPIP from port 1 and will not
+;  send any packets with TCPIP to port 1. Port 1 could be a HF port for
+;  example. When no port is specified then "all" is assumed to be backwards
+;  compatible with older versions.
+;
+;via_block: all TCPIP,IGATE
+;
+;  Add usage restrictions for a port, allow_to: and allow_from:. These can
+;  be used if you want to create special setups with cross-band where you
+;  only want to pick up specific packets from one band to another. If not
+;  defined (default) all "from" and "to" calls are allowed (if not blocked).
+;
+;  If allow_to: is defined only calls with a specific destination address
+;  are accepted on this port. This can be use if you only want to pick up
+;  certain packets from a port. For example on port 2 you only want to pick
+;  up packets to MAIL and FBB put out by an FBB BBS. On all other port
+;  there are no restrictions. (Note this line is commented out, it's
+;  just an example.)
+;
+;allow_to: 2 MAIL*,FBB*
+;
+;  If allow_from: is defined only packets from a specific station are
+;  accepted. For example only allow only Dutch stations on port 1 and 2,
+;  on port 1 do not allow non-novice stations (PDxxxx). On all other ports
+;  there are no restrictions. (Note these lines are commented out, it's just
+;  an example.)
+;
+;allow_from: 1,2 PE*,PA*,PI*
+;allow_from: 2 PD*
+;
+;  Calls that are not allowed to query the digipeater. Optionally you can
+;  specify a port number, only queries from those ports with the specified
+;  calls are blocked. (e.g. msg_block: 1 CALL). When no port is specified
+;  then "all" is assumed to be backwards compatible.
+;
+msg_block: all N0CALL,NOCALL,MYCALL
+;
+;------------------------------------------------------------------------------
+;
+;  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 built-in TNC.
+;
+;  SOURCE>ID,PATH,PATH*,PATH:Hey look at me, this is my long ID<CR>
+;  <--------------------- 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 an 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 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.
+;
+kenwood_mode: 1
+;
+;------------------------------------------------------------------------------
+;
+;  There is a new APRS like protocol called Opentrac. It uses PID=77.
+;  DIGI_NED will digipeat those, unless you disable it here. Opentrac
+;  packets are also digipeated when "kenwood_mode:" is other than zero.
+;  The opentrac packets will not be truncated since that would damage the
+;  packet. Set opentrack_enable: to 0 if you do not want to digipeat
+;  opentrac packets (for example because you have another application doing
+;  that) or when opentrac packets causes problems for kenwoods.
+;
+;  There is currently no other specific opentrac support, only rule-based
+;  digipeating. Opentrack envisions new and better ways of digipeating.
+;  Look at http://www.opentrac.org/ to find out more about this project.
+;
+opentrac_enable: 1
+;
+;------------------------------------------------------------------------------
+;
+;  DIGI_OWNER is the owner of the digi, used in the ?owner command and for
+;  the ?exit command on the digi. You can supply multiple calls, separated
+;  by commas. The first defined call is that call which will be reported
+;  as owner when the digi is interrogated. The idea is that the call of
+;  the owner is the call of the person or group that owns the license for
+;  the digipeater so that the responsible person can be contacted in case
+;  there is a problem with the digi. At least one call specification is
+;  mandatory.
+;
+;  You can use this to supply your other calls with SSID or to assign
+;  co-maintainers with the same right to stop the digi to allow remote
+;  maintenance.
+;
+digi_owner: N0CALL 
+;
+;------------------------------------------------------------------------------
+;
+;  The enable-exit option permits stopping DIGI_NED remotely.
+;  DIGI_NED will exit with exit-code 2, and with a .bat file this can be
+;  used to restart the digipeater.
+;  The following checking is done:
+;  * The originator shall be the owner-call (SSID is significant!)
+;  * The target address is the DIGI_CALL.
+;  * There shall be no digipeaters (only direct access)
+;  * This feature has to be set to enabled to work
+;
+;  Use 1 to enable, 0 to disable this feature.
+;
+enable_exit: 1
+;
+;------------------------------------------------------------------------------
+;
+;  The digi knows a few remote command that the owner can send to the digi
+;  These are the !ptt command to enable or disable transmission on a port and
+;  the !out command to change signals on the LPT port of the digipeater. With
+;  the following two commands you can disable these features, by default they
+;  are enabled. When enabled the following checking is done before accepting
+;  a command:
+;  * The originator shall be the owner-call (SSID is significant!)
+;  * This feature has to be set to enabled to work
+;
+enable_ptt_command: 0 
+enable_out_command: 0 
+;
+;------------------------------------------------------------------------------
+;
+;  To be able to check the output of the program, the output can be logged to
+;  a file. All the output will be put into the file. Be careful not to
+;  use this when running normally, the file will grow until the filesystem
+;  is full. It is meant for testing only! When no name is specified nothing
+;  is logged. At the start of the program an existing log is overwritten.
+;
+;  When no path is specified then the logfile will be created in the same
+;  directory as where the program itself is stored.
+;
+;logfile: digi_ned.log
+;
+;  In the tnclogfile recieved and transmitted messages are written in the
+;  TNC format, which is also used by many, many other programs.
+;
+;tnclogfile: digi_ned.tnc
+;
+;------------------------------------------------------------------------------
+;
+;  DIGI_CALL of the digi and the destination to which the DIGI_NED digi
+;  can send beacons.
+;
+digi_call: MYDIGI 
+;
+;  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 alphanumeric 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
+;
+;  037 038 039 040 041 042 043 044 043 046 047 048 049 050 051 052 053 054
+;   11  12  13  14  15  16  17  18  19  1A  1B  1C  1D  1E  1F  1G  1H  1I
+;
+digi_dest: APND0X
+;
Index: packages/net/digi_ned/files/digined.init
===================================================================
--- packages/net/digi_ned/files/digined.init    (revision 0)
+++ packages/net/digi_ned/files/digined.init    (revision 0)
@@ -0,0 +1,31 @@
+#!/bin/sh /etc/rc.common
+#
+#      Updates the ID and Beacon files, patches the digi_ned.ini file
+#      with the callsign and owner then starts digi_ned if it's enabled
+#  
+START=91
+
+start() {
+. /etc/ax25/digi_ned/digi_ned.conf
+       echo "Starting digi_ned"
+
+       # Update .ini files 
+       echo $AX_DIGINED_DIGI_ID > /etc/ax25/digi_ned/digi_id.ini
+       echo $AX_DIGINED_DIGIBCON > /etc/ax25/digi_ned/digibcon.ini
+       sed -i "s/\(digi_call:\)\(.*\)/\1 $AX_DIGINED_DIGICALL/" 
/etc/ax25/digi_ned/digi_ned.ini  
+       sed -i "s/\(digi_owner:\)\(.*\)/\1 $AX_DIGINED_DIGIOWNER/" 
/etc/ax25/digi_ned/digi_ned.ini 
+       #  start digi_ned if enabled
+       eval digined=\$AX_DIGINED
+       if [ "$digined" = "TRUE" ]; then
+               cd /etc/ax25/digi_ned; /usr/bin/digi_ned -p $AX_DIGINED_PORT 
/etc/ax25/digi_ned/digi_ned.ini  > /dev/null 2>&1 &
+       fi
+}
+
+stop() {
+       killall -q digi_ned
+}
+
+restart() {
+       killall -q digi_ned
+       /etc/init.d/digined start
+}

Property changes on: packages/net/digi_ned/files/digined.init
___________________________________________________________________
Added: svn:executable
   + *

Index: packages/net/digi_ned/files/digi_ned.conf
===================================================================
--- packages/net/digi_ned/files/digi_ned.conf   (revision 0)
+++ packages/net/digi_ned/files/digi_ned.conf   (revision 0)
@@ -0,0 +1,6 @@
+AX_DIGINED="FALSE"
+AX_DIGINED_PORT="aprs"
+AX_DIGINED_DIGICALL="MYDIGI"
+AX_DIGINED_DIGIOWNER="N0CALL"
+AX_DIGINED_DIGI_ID=">DIGI_NED: N0CALL - Somewhere over the rainbow"
+AX_DIGINED_DIGIBCON="=0000.00NS00000.00W#PHG5470/OpenWRT digined - 
[email protected]"

Property changes on: packages/net/digi_ned/files/digi_ned.conf
___________________________________________________________________
Added: svn:executable
   + *

Index: packages/net/digi_ned/Makefile
===================================================================
--- packages/net/digi_ned/Makefile      (revision 0)
+++ packages/net/digi_ned/Makefile      (revision 0)
@@ -0,0 +1,48 @@
+# Copyright (C) 2009 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=digi_ned
+PKG_VERSION:=n7ipb.0.3.9
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
+PKG_SOURCE_URL:=http://downloads.wetnet.net/openwrt/sources/
+PKG_MD5SUM:=d54a5b8c4a31da40a99252281884f9c7
+PKG_CAT:=zcat
+PKG_BUILD_DEPENDS:=libax25
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/digi-ned
+  SECTION:=net
+  CATEGORY:=Amateur Radio
+  TITLE:=APRS digipeater
+  URL:=http://downloads.wetnet.net/openwrt/sources
+  DEPENDS:=libax25 ax25-tools
+endef
+
+define Package/digi-ned/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_BUILD_DIR)/digi_ned $(1)/usr/bin/ ; 
+       $(INSTALL_DIR) $(1)/etc/ax25/digi_ned
+       list='digi_ned.ini digi_ned.mes digi_ned.sat digi_ned.tle digi_id.ini 
digibcon.ini'; \
+       for p in $$$$list; do \
+       if test -f $(PKG_BUILD_DIR)/$$$$p \
+               ; then \
+               $(CP) $(PKG_BUILD_DIR)/$$$$p $(1)/etc/ax25/digi_ned/ || exit 1; 
\
+       else :; fi; \
+       done
+# Overwrite the old digi_ned.ini file with the one used locally
+       $(CP) ./files/digi_ned.ini $(1)/etc/ax25/digi_ned/
+
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/digined.init $(1)/etc/init.d/digined
+       $(INSTALL_DATA) ./files/digi_ned.conf 
$(1)/etc/ax25/digi_ned/digi_ned.conf
+endef
+
+$(eval $(call BuildPackage,digi-ned))
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to