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
