Filewatcher File Search
FTP Search
  
Directory 
  
Content Search 
   
pkg://dxc-4.4-608.src.rpm:37385/dxc-4.4.tar.gz  info  downloads

dxc-4.4/ 40755      0      0           0  7025024061  10115 5ustar  rootrootdxc-4.4/Makefile100644      0      0        1043  7020055701  11650 0ustar  rootrootall: dxc

CC = gcc
LD = gcc
CFLAGS = -Wall -Wstrict-prototypes -O2 
LDFLAGS =  
# -lncurses
LIBS = -lax25

.c.o:
	$(CC) $(CFLAGS) -c $<

clean:
	rm -f *.o *~ *.bak

DXC_OBJS = dxc.o mycolori.o myalarm.o myconfig.o mystring.o

dxc:	$(DXC_OBJS)
	$(LD) $(LDFLAGS) -o dxc $(DXC_OBJS) $(LIBS)

install: dxc
	install -s -m755 dxc /usr/bin	
	install -m755 dxcalarma /usr/bin
	install -m755 dxcalarmb /usr/bin
	install -m755 dxcalarmc /usr/bin
	install -s -m755 dxctestcolor /usr/bin
	install -m644 dxc.1 /usr/man/man1
	install -m644 dxcrc /etc/ax25
	
  
dxc-4.4/dxc100755      0      0       43316  7020055714  10751 0ustar  rootrootELF434 (444ԀԀm-m-p-pp/ܿܿ/lib/ld-linux.so.2%:	
1%+."0)'
&85 3*/9($6-#,42!7 ܿ#491?hE܊W>^̋c"tP("p$ |>\0""L|","l""L"
'#xP/܉$6(>(E,(L<{S<\"Z,c܋j̊q
xT"lT@"\.!̉F"C"|C"!
dd__gmon_start__libc.so.6_DYNAMIC_GLOBAL_OFFSET_TABLE__fini_init__libc_init_firstatexitexit__errno_location_IO_stderr_fprintffflush__ctype_b__ctype_tolower__ctype_toupperstrcmpstrchrmallocfreegetenvfopenfgetsfclosesignal__strtol_internalsystemstrcatstrcpystrncpy_IO_stdout_printfsprintffscanfsscanfperrorstrdupstrerrorstrspnstrstrstrtokstrcasecmpsleepcloseoptarggetopthtons_environioctlsocketrecvfrom__environenviron_start_etext_edata__bss_start_endؿp
x
, 3$@D0HL%PTX!\`#dhl*p2t1x|')("$- .	Ŀȿ&̿п+ԿUS[ë5tbv]]58%<%@h%Dh%Hh%Lh%Ph %Th(%Xh0%\h8p%`h@`%dhHP%hhP@%lhX0%ph` %thh%xhp%|hx%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %h%h%h%h%Ŀh%ȿh%̿h%пh %Կh(1tRtX^DPPRV:hLX:PpUS0=0tЃ;u]ÍvUÐUWVS1DžDžhDj.hDj"vhuu|ǃGƃ<w$v(ЌЌЌЌ0ЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌЌL\ЌЌЌЌЌЌЌhhh1vhɥhhmvtu5uxh#U5?+xhB#vj<uhRht/S9uShvhj%Pj
jZǃuh>PPjh$SW
ƃuhtPuƅ$IƄ.%FDwhSljKPhhhhx9[^_ÐUShh1ۃvjP‰@C~߃=tt=hæhŦuhۦj2hŦh1]UWVS}1j1ƃ4@WC~Wxt9=W4@=~
5HWh|j,GPVF,VtA=tt8Vh5}hj5VHe[^_USj
EP]SEjj
jS9|)9|!5jt9(9| 59C9(9| 5	9(9| 5ĽȽ9̽(9н| 5Խؽܽ9(9| 5y9$9|5IV9$9|5*909 |(5$(,~90$94|58<@F9D$9H|5LPT5`qdh]ÍvUVS]j.SVtVFhVshV]hVGhV1hVuxhV	ufh#VuTh)VuBh1Vu0h;VuhAVuV1
Ve[^ÉUj
2hGj!=tt5jLUE$ؕ ,8DP\hthPhXh`hhhphxhhhhhhvhjh^hRhȨFUEtt
ÃtÐhШhڨhvU WVSjtEjjEj`EjVhxEh}uhuE$u5uhhhEuhu 1҉uuuEPEPhuUUE|E111luUUupGt111uUoUuGtƋuuuuuue[^_UWVS10ҋ}щH9w0]$UECF}0щH9vՍe[^_ÐUWVS10ҋ}щH9w0] UECF}0щH9vՍe[^_ÐUVSu]SuVS^
%e[^ÐUVSuuVsotu1e[^ÐUUttRt	t@UVSut VsuCvu1e[^ÐUuYt@UuEt@UWVS}hWk	u0C*vt!uVsVW<	tًu1e[^_ÐUut@Uut@Uut@Uut@UPWVS]Džh
uh
Rh
Rh
R h
Rh
Rt(ttt
tuShv5t@vR
ǃvRǃ6ujj
jR}
Shjj
jRShbjj
jRSh6>RPDžPhUR}0PhxvvRS޿1ttaShURnKt>Sh'URK<fuPRu0 auRhϫvj oƃuhh1R$FRFRFjj
jRFjj
jRFjj
jRFRF=uL5KShA.Sh{&0,Ph0Phh105[^_ÐUWVSDž1hh	uhh]Vjj.}!hBh2PPhSƒtUj
S5ƒt1t'#tSPPƒtF두P\Pt1[^_ÐUWVS1ɉMuv -t,t(ӡpPtVۋ}9FA~	}9@A~>tJFEPhVuE|~&}Whv}WhcvE$}G1e[^_ÐUWVS1u1EuMQuMM>tpDB tF>u>t*pDB uC;tDB t;tCu*hӬVothլV]u2MQVvƃLGuMME	>KMQ	OMyf<e[^_UWVS1}UEtkvu$hӬSt4hլSt"WStAFu
}MUtAM뛍vNMqf<e[^_ÍvUWVSu1th٬hV
th
.1ۍ~MAE3ˆA9M}1e[^_ÉUS]1( tA@~-AC	~1A0A(]ÐUUBPBPBPBPPh2h33USM]%9usQC%9u\QC%9uEQC%9u.QC%9uQC%9t
vQC$8u1]ÉUS]M1Ҋ
8t	B~1]ÍvUSM1U@~EhGEPt1]ÉUS]tـ;t A9u؋]ÐUS]tـ;t$A9u؋]ÐUS$=$tЃ;u]ÍvUÐUS[Û]]lpm:vDXC v.4.4 by IZ4AKO
dxc: option -p needs a port name
Usage: dxc [-p port] [-m hf:vushf:all] [-v] [-l]
vushf
VHF - UHF - SHF Filter on
hf
HF Filter on 
dxc: no AX.25 port data configured
dxc: invalid port name - %s
socketrecvDX de CTRL-C to EXIT ! 
a/var/dxc/Qsl_info.txtError : 
open %s

%s
Cannot write on : qslvia box -> mg  mgr  man bureau callbook  cba buro 

  IZ4AKO Op. Pierluigi ( Louis ) QTH Vigarano M.da Ferrara ITALY 

  packet e-mail : IZ4AKO@IW4CRL.#FE.IEMR.ITA.EU                       

  internet      : http://ing49.unife.it/~iz4ako                       


  PLEASE SEND MY YOUR QSL IF YOU ENJOY WITH DXC


dxcalarmadxcalarmbdxcalarmcLCIANOLMAGENTALBLUELYELLOWLGREENLREDLWHITELBLACKCIANOMAGENTABLUEYELLOWGREENREDWHITEBLACKALARM_CALARM_BALARM_AALARM_OFFHOME/.dxcrcr
%s not found : opening /etc/ax25/dxcrc 
/etc/ax25/dxcrc
/etc/ax25/dxcrc not found : assuming default 
%ld %ld %s %s %sPRINT* 	axconfig: unable to parse line %d of axports file
axconfig: duplicate port name in line %d of axports file
axconfig: duplicate callsign in line %d of axports file
axconfig: invalid baud rate setting in line %d of axports file
axconfig: invalid packet size setting in line %d of axports file
axconfig: invalid window size setting in line %d of axports file
axconfig: SIOCGIFCONF: %s
loaxconfig: SIOCGIFFLAGS: %s
axconfig: SIOCGIFHWADDR: %s
axconfig: port %s not active
axconfig: out of memory!
r/etc/ax25/axportsaxconfig: unable to open axports file
axconfig: unable to open socket
axutils: invalid symbol in callsign %s
%daxutils: SSID must follow '-' and be numeric in the range 0-15 - %s
VVIAaxutils: invalid rose address length
0123456789axutils: invalid characters in address
%02X%02X%02X%02X%02X0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 4
X
t'~'68PF8JRS`a`mtP`
2P:PJF@94,&	

nf^V@@@@@@ܿ‰҉"2BRbrŠҊ"2BRbr‹ҋ
l
40H@GCC: (GNU) 2.7.2.3GCC: (GNU) 2.7.2.3GCC: (GNU) 2.7.2.3GCC: (GNU) 2.7.2.3GCC: (GNU) 2.7.2.3GCC: (GNU) 2.7.2.3GCC: (GNU) 2.7.2.3GCC: (GNU) egcs-2.90.29 980515 (egcs-1.0.3 release)GCC: (GNU) egcs-2.90.29 980515 (egcs-1.0.3 release)GCC: (GNU) 2.7.2.3GCC: (GNU) 2.7.2.301.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.interp.hash.dynsym.dynstr.rel.got.rel.bss.rel.plt.init.plt.text.fini.rodata.data.ctors.dtors.got.dynamic.bss.comment.noteԀ#)ll19	B	8K	HH0	T	,Z	p_le%k%spp-y$$/,,/44/ܿ/pp0p01j26`
?	4AԀlH	
p
$,4ܿp`
X
&X
<(I
T$
b0
`
o`
,
Tt
$


ؖ

L


L/
|7

2<
<(C3J'Q̑a
`DO
g̉F"m܉$t
@P(/
ؖ
ȣ
,,
-
ܿpxP(&,",d1P=<{DL"K\0"RlTX_|C"h 
pC"w"~! h)
((


̊@
܊)"0ܙ;
E
W_T"j{
,(<\"L|"d\.
|
t
l"|>p 

x

1Ģ~
%̚
:(B>I$
R[
[D<
d
o0
|
d4l
"̋[
/
܋4
@c
$
p
,
AF
N$^@"d<
w
" initfini.cgcc2_compiled.crtstuff.c__do_global_ctors_aux__CTOR_END__init_dummyforce_to_data__DTOR_END____do_global_dtors_aux__DTOR_LIST__fini_dummy__CTOR_LIST__dxc.cmycolori.cmyalarm.cmyconfig.cmystring.caxconfig.cax25_portsax25_port_tailax25_hw_cmpax25_port_ptrax25_config_init_portaxutils.cbuf.34buf.37strcpydeterminabandaax2ascioctlprintfax25_config_get_addrspot_arraystrlwrmyconfigax25cmpstrerrorax25_config_get_devax25_config_load_ports_DYNAMIC__ctype_bgetenv_etext__strtol_internal_IO_stdout_fscanffgetsspot_IO_stderr_perrorsystemmallocsleepoptargrecvfromallarmisocketfflush_environ__ctype_toupper__environ_initrosecmpfprintfstrcatalarm_flagax25_config_get_nextax25_config_get_paclenqslinfofile_startstrstrmyalarm__libc_init_firstsignalax25_config_get_namenull_ax25_addressstrncpystrcasecmpspot_array_indexstrtoksscanfprint_flagstrdupfopen__bss_startgetoptmainconfig_arraylog_writefclosestrcmpdata_startax25_config_get_windowmode_view_finiconvert_rose_addressax25_config_get_baudsprintfatexitinit_dxcmystrlwrexit_dxcprint_spotfind_qslinfoconvert_call_arglist_edata_GLOBAL_OFFSET_TABLE__endhtonscolori__errno_locationexitmystruprstruprstrspnrose2ascax25_config_get_portstrchrconvert_call__data_startax25_config_get_descax25validate__ctype_tolowercloseconvert_call_entrytextcolorpuntfree__gmon_start__dxc-4.4/dxc.c100644      0      0       24041  7016070566  11170 0ustar  rootroot/* DXC - DX Cluster watcher @ IZ4AKO */
/* this software is under GNU        */

#include <sys/types.h>
#include <sys/socket.h>

#include <netinet/in.h>

#include <netinet/if_ether.h>

#include <sys/ioctl.h>
#include <signal.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <linux/ax25.h>
#include <ax25/axconfig.h>


#include "mycolori.h"
#include "myalarm.h"
#include "mystring.h"
#include "version.h"
#include "myconfig.h"

#define QSLINFOFILENAME "/var/dxc/Qsl_info.txt"
FILE *qslinfofile;
int log_write=0;           /* di default non esegue il log */

#define SPOT_SIZE 80       /* lunghezza di uno spot in caratteri */
#define SPOT_ARRAY_SIZE 20 /* dimensione dell'array di spot in unita' di SPOT_SIZE caratteri */
#define NOTE_OFFSET 26     /* posizione nella stringa dello spot in cui inizia il campo delle note */
#define NOTE_LENGHT 44     /* lunghezza campo note */
#define FREQ_OFFSET 15     /* posizione in cui inizia la stringa contenente la frequenza */
#define FREQ_LENGHT 10     /* lunghezza del campo frequenza */

#define ALLBAND 1
#define VUSHF   2
#define HF 3
int mode_view=ALLBAND;     /* di default mostra tutti gli spot */

char *punt;     
char spot[100];            /* buffer temporaneo per lo spot ricevuto */
char *spot_array[SPOT_ARRAY_SIZE]; /* array degli spot ascoltati */
int spot_array_index;      /* posizione corrente nel buffer degli spot ascoltati */

int alarm_flag;            /* flag per abilitazione dell'allarme */
int print_flag;            /* flag per abilitazione della stampa di uno spot */


/* dichiarazione delle funzioni usate */

void init_dxc(void);       /* inizializza lo scermo, i vettori e i file */
void print_spot(char *spot);
int  determinabanda(char *spot);
int find_qslinfo(char *spot);
void exit_dxc(int sig);


/**************************************************************/


int main(int argc, char **argv)
{
	unsigned char buffer[1500];	
	int size;
	int s;
	char *port = NULL, *dev = NULL;
	struct sockaddr sa;
	int asize = sizeof(sa);
	int proto = ETH_P_AX25;

        
	signal(SIGINT,exit_dxc);
        signal(SIGTERM,exit_dxc);


        while ((s = getopt(argc, argv, "lpm:v")) != -1) {
		switch (s) {
			case 'p':
				port = optarg;
				break;
			case 'v':
				printf("DXC ");
				printf(VERSION);
				printf(" by IZ4AKO\n");
				return 0;
			case ':':
				fprintf(stderr, "dxc: option -p needs a port name\n");
				return 1;
			case '?':
				fprintf(stderr, "Usage: dxc [-p port] [-m hf:vushf:all] [-v] [-l]\n");
				return 1;
			case 'l':
				log_write=1;
				break;
			case 'm':
				if ( !strcmp(optarg,"vushf") ) 
				  {	mode_view=VUSHF;
                                        printf("\nVHF - UHF - SHF Filter on\n");
                                   }   
				 if (!strcmp(optarg,"hf") )
                                  {  mode_view=HF;
                                      printf("\nHF Filter on \n");
                                  }
				break;
			
		}
	}

sleep(5);
	if (ax25_config_load_ports() == 0)
		fprintf(stderr, "dxc: no AX.25 port data configured\n");

	if (port != NULL) {
		if ((dev = ax25_config_get_dev(port)) == NULL) {
			
			fprintf(stderr, "dxc: invalid port name - %s\n", port);
			
			return 1;
			}
		}

	if ((s = socket(AF_INET, SOCK_PACKET, htons(proto))) == -1) {
		perror("socket");
		return 1;
	}

	init_dxc();
        myconfig();
        

	for (;;) {
		if ((size = recvfrom(s, buffer, sizeof(buffer), 0, &sa, &asize)) == -1) {
			perror("recv");
			return 1;
		}
		
		if (dev != NULL && strcmp(dev, sa.sa_data) != 0)
			continue;
		/* i dati ricevuti sono comprensivi dell'header ax25 che
                   inizia con un bel carattere \0. Questo fa credere a 
		   tutte le funzioni di manipolazione di stringhe che
		   che buffer sia lunga zero
		   il problema si risolve mettendo un carattere diverso 
		   \0 come primo elemento di buffer
	           per maggiore sicurezza metto \0 come ultimo carattere 		

                */
		buffer[0]='I';
		buffer[size+1]='\0';
		
		if ( ( size > 80 ) && ( size < 150 ))
		{  /* se c'e' un pachetto consistenete ma non troppo
		      lungo  */
		
		if ( (punt=strstr(buffer,"DX de ")) != NULL ) 
		   { strncpy(spot,punt,75);		
		     mystrupr(spot);
		     print_spot(spot);
		     
		     fflush(stdout);
		     
                   }
		}
		
	} 
}

/* DEFINIZIONE delle FUNZIONI usate */

void init_dxc(void) {

int i;

printf("\33[2J\33[H");  /* codice ansi per cancellazione schermo */
printf("CTRL-C to EXIT ! \n");
i=0;
while ( i < SPOT_ARRAY_SIZE )
   { spot_array[i]=malloc(SPOT_SIZE);
     strcpy(spot_array[i],"\0");
	i++;
   }
if (log_write) {
 if ((qslinfofile=fopen(QSLINFOFILENAME,"a"))==NULL)
   { perror("Error : ");
     exit(-1);
   }  

 printf("\nopen %s\n",QSLINFOFILENAME);
 }
} /* fine init_dxc */

/*********************************************************************************************/

void print_spot(char *spot) {

int x , nuovo, spotsband ;
/* spotsband puo' valere HF ALLBAND VUSHF secondo il modo operativo
scelto */


/* la variabile spot_array_index ha visibilita' globale perche' funziona
come indice del buffer degli spot. 
*/

char *note;


x=0;
note=malloc(NOTE_LENGHT+5);

/* non ho ottimizzato la ricerca degli spot doppi, tanto oggi hanno tutti
un pentium... e poi non ne avevo voglia.
*/

while (( x < SPOT_ARRAY_SIZE ) && ( nuovo=strcmp(spot,spot_array[x])) )
	++x;

if (nuovo) /* lo spot catturato  nuovo */

  { spotsband=determinabanda(spot);
    if (mode_view!=ALLBAND)
      if (spotsband!=mode_view)  return;

    if (print_flag) 
      { /* mette lo spot nel buffer degli spot gia' ricevuti 
           suona l'eventuale allarme
           stampa lo spot 
        */
        strcpy(spot_array[spot_array_index++],spot);
        if ( spot_array_index >= SPOT_ARRAY_SIZE ) spot_array_index=0;
        myalarm(alarm_flag);
        printf(spot);
    	printf("\n"); 
       
        strncpy(note,&spot[NOTE_OFFSET],NOTE_LENGHT); /* crea la stringa delle note */
        note[NOTE_LENGHT]='\0';
        
        if ( find_qslinfo( note ) && log_write ) 
          {
            if (fprintf(qslinfofile,"%s\n",note)<0)
              { perror("Cannot write on : ");
                exit(-1);
              }
            fflush(qslinfofile);     
          }
                
      }

  }

free(note);

} /* fine print_spot */

int determinabanda(char *spot) {

char freq_str[FREQ_LENGHT+5];
long frequenza;


strncpy(freq_str,&spot[FREQ_OFFSET],FREQ_LENGHT);
freq_str[FREQ_LENGHT]='\0';

frequenza=atol(freq_str);

if ((frequenza>=config_array[0])&&(frequenza<=config_array[1]))     {
textcolor(config_array[2]); 
alarm_flag=config_array[3] ; 
print_flag=config_array[4];
return HF; }
if ((frequenza>=config_array[5])&&(frequenza<=config_array[6]))     {
textcolor(config_array[7]); 
alarm_flag=config_array[8] ; 
print_flag=config_array[9];
return HF; }
if ((frequenza>=config_array[10])&&(frequenza<=config_array[11]))     {
textcolor(config_array[12]); 
alarm_flag=config_array[13];
print_flag=config_array[14];
return HF; }
if ((frequenza>=config_array[15])&&(frequenza<=config_array[16]))     {
textcolor(config_array[17]); 
alarm_flag=config_array[18];
print_flag=config_array[19];
return HF; }
if ((frequenza>=config_array[20])&&(frequenza<=config_array[21]))     {
textcolor(config_array[22]); 
alarm_flag=config_array[23];
print_flag=config_array[24];
return HF; }
if ((frequenza>=config_array[25])&&(frequenza<=config_array[26]))     {
textcolor(config_array[27]); 
alarm_flag=config_array[28];
print_flag=config_array[29];
return HF; }
if ((frequenza>=config_array[30])&&(frequenza<=config_array[31]))     {
textcolor(config_array[32]);
alarm_flag=config_array[33];
print_flag=config_array[34];
return HF; }
if ((frequenza>=config_array[35])&&(frequenza<=config_array[36]))     {
textcolor(config_array[37]);
alarm_flag=config_array[38];
print_flag=config_array[39];
return HF; }
if ((frequenza>=config_array[40])&&(frequenza<=config_array[41]))     {
textcolor(config_array[42]);
alarm_flag=config_array[43];
print_flag=config_array[44];
return HF; }
if ((frequenza>=config_array[45])&&(frequenza<=config_array[46]))     {
textcolor(config_array[47]);
alarm_flag=config_array[48];
print_flag=config_array[49];
return VUSHF; }
if ((frequenza>=config_array[50])&&(frequenza<=config_array[51]))     {
textcolor(config_array[52]);
alarm_flag=config_array[53];
print_flag=config_array[54];
return VUSHF; }

else { textcolor(config_array[57]);
       alarm_flag=config_array[58];
       print_flag=config_array[59];
       return VUSHF; }

}

/*************************************************************************/

int find_qslinfo(char *note) {

/* questa funzione ritorna 1 se nello spot e' presente la stringa "qsl"
o "via " o ....
*/
char *temp;

temp=malloc(NOTE_LENGHT+2);
strcpy(temp,note);
mystrlwr(temp);

if  ( (strstr(temp,"qsl" )) != NULL) { free(temp);return 1; }
if  ( (strstr(temp,"via ")) != NULL) { free(temp);return 1; }
if  ( (strstr(temp,"box ")) != NULL) { free(temp);return 1; }
if  ( (strstr(temp,"->")) != NULL) { free(temp);return 1; }
if  ( (strstr(temp," mg ")) != NULL) { free(temp);return 1; }
if  ( (strstr(temp," mgr ")) != NULL) { free(temp);return 1; }
if  ( (strstr(temp," man ")) != NULL) { free(temp);return 1; }
if  ( (strstr(temp,"bureau ")) != NULL) { free(temp);return 1; }
if  ( (strstr(temp,"callbook ")) != NULL) { free(temp);return 1; }
if  ( (strstr(temp," cba ")) != NULL) { free(temp);return 1; }
if  ( (strstr(temp,"buro ")) != NULL) { free(temp);return 1; }

free(temp);
return 0;
}
/***************************************************************************/

void exit_dxc(int sig) {

/* uscita da dxc */

 textcolor(LRED);
 printf("\n\n  IZ4AKO Op. Pierluigi ( Louis ) QTH Vigarano M.da Ferrara ITALY \n\r"\
       "  packet e-mail : IZ4AKO@IW4CRL.#FE.IEMR.ITA.EU                       \n\r"\
       "  internet      : http://ing49.unife.it/~iz4ako                       \n\n\r"\
       "  PLEASE SEND MY YOUR QSL IF YOU ENJOY WITH DXC\n\n\r");

/* If you find useful dxc, please send my your qsl. Absolutly no money, just a
   simple qsl via buro.
   '73 de IZ4AKO 
*/
textcolor(WHITE);
if (log_write ) fclose(qslinfofile);
exit(0);

}
dxc-4.4/CHANGES100644      0      0        1527  7016071504  11216 0ustar  rootroot**************
v 4.4
**************

- I have develop this version under Mandrake 5.3.

**************
v 4.3
**************

- Bug fix in dxc. In some case multiple copy of same spot is printed on video
because the spot is in lower or in upper case. Now only one copy.

**************
v 4.2
**************

- Each user can use a personal config-file.You can copy /etc/ax25/dxcrc in
your home directory with the name $HOME/.dxcrc and modify them.

- Added simple program testcolor to help you with color


**************
v 4.1
**************

Added -l switch 

dxc -l : all qslinfo will be written on /var/dxc/Qsl_info

default if not logging ( -l omitted )


Added findinfo shell script

finfinfo call

serch in every file in /var/dxc/ string call, no case sensitive.

I suggest you to insert various dx bulletins, like 425 dxnews, in this
directory.
  

dxc-4.4/dxcalarma100744      0      0          77  7016074242  12044 0ustar  rootroot#!/bin/sh 
#/bin/wavplay -q /usr/local/include/wav/tada.wav &

dxc-4.4/dxcalarmb100744      0      0         100  7016074251  12050 0ustar  rootroot#!/bin/sh 
#/bin/wavplay -q /usr/local/include/wav/chord.wav &

dxc-4.4/dxcalarmc100744      0      0          47  6303136713  12043 0ustar  rootroot#!/bin/sh 
echo -ne "\a"
#simply beep

dxc-4.4/dxcrc100644      0      0        1017  6401103360  11234 0ustar  rootroot1700     2100 BLUE     ALARM_OFF    NOPRINT 
3500     3800 MAGENTA  ALARM_OFF    NOPRINT 
7000     7030 LRED     ALARM_B      PRINT 
7031     7100 YELLOW   ALARM_OFF    PRINT 
14000   14350 YELLOW   ALARM_OFF    NOPRINT 
18000   19000 CIANO    ALARM_OFF    NOPRINT 
21000   21450 WHITE    ALARM_OFF    NOPRINT 
24800   25000 WHITE    ALARM_OFF    NOPRINT 
28000   29900 LGREEN   ALARM_A      PRINT 
50000   60000 LRED     ALARM_OFF    PRINT 
144000 146000 CIANO    ALARM_OFF    PRINT 
0           0 LGREEN   ALARM_OFF    PRINT
dxc-4.4/myalarm.c100644      0      0         445  6302153472  12011 0ustar  rootroot#include "myalarm.h"
#include <stdlib.h>

void myalarm(int alarm) {

switch (alarm) {

    case ALARM_A : system("dxcalarma");
                   break;
    case ALARM_B : system("dxcalarmb");
                   break;
    case ALARM_C : system("dxcalarmc");
                   break;
 }

}


dxc-4.4/myalarm.h100644      0      0         220  6302153417  12004 0ustar  rootroot#ifndef _myalarm
#define _myalarm

#define ALARM_OFF 0
#define ALARM_A 1
#define ALARM_B 2
#define ALARM_C 3

void myalarm(int alarm) ;

#endif
dxc-4.4/mycolori.c100644      0      0        3377  6372440363  12240 0ustar  rootroot#include <stdio.h>
#include "mycolori.h"


#define CANC_SCR 	"\33[2J"
#define MYBLACK         "\33[0;30m"     /* Codice del nero */
#define MYRED   	"\33[0;31m"     /* Codice del rosso */
#define MYGREEN 	"\33[0;32m"	/* Codice del verde */
#define MYYELLOW 	"\33[0;33m"	/* Codice del giallo */
#define MYBLUE 		"\33[0;34m"	/* Codice del blu	*/
#define MYMAGENTA 	"\33[0;35m"	/* Codice del magenta   */
#define MYCIANO	        "\33[0;36m"	/* Codice del azzurro   */
#define MYWHITE 	"\33[0;37m"	/* Codice del bianco    */
#define MYLBLACK 	"\33[1;30m"	/* Codice del nero chiaro */
#define MYLRED   	"\33[1;31m"	/* Codice del rosso chiaro */
#define MYLGREEN	"\33[1;32m"	/* Codice del verde chiaro */
#define MYLYELLOW	"\33[1;33m" 	/* Codice del giallo chiaro */
#define MYLBLUE		"\33[1;34m" 	/* Codice del blu chiaro    */
#define MYLMAGENTA 	"\33[1;35m" 	/* Codice del magenta chiaro */
#define MYLCIANO 	"\33[1;36m" 	/* Codice del azzurro chiaro */
#define MYLWHITE 	"\33[1;37m" 	/* Codice del bianco chiaro  */



/* tutti i colori sono su sfondo nero */


void textcolor (int color) {

switch (color) {
	case BLACK  : printf(MYBLACK);break;
        case WHITE : printf(MYWHITE);break;
        case RED : printf(MYRED);break;
        case GREEN : printf(MYGREEN);break;
        case YELLOW : printf(MYYELLOW);break;
        case BLUE :  printf(MYBLUE);break;
	case MAGENTA : printf(MYMAGENTA);break;
	case CIANO : printf(MYCIANO);break;
    	case LBLACK : printf(MYLBLACK);break;
	case LWHITE : printf(MYLWHITE);break;
	case LRED : printf(MYLRED);break;
	case LGREEN : printf(MYLGREEN);break;
	case LYELLOW : printf(MYLYELLOW);break;
	case LBLUE : printf(MYLBLUE);break;
	case LMAGENTA: printf(MYLMAGENTA);break;
	case LCIANO: printf(MYLCIANO);break;

        } 

} /* end textcolor */



dxc-4.4/mycolori.h100644      0      0         531  6372442173  12213 0ustar  rootroot#ifndef _mycolori
#define _mycolori

#define BLACK 0
#define WHITE 1
#define RED 2
#define GREEN 3
#define YELLOW 4
#define BLUE 5
#define MAGENTA 6
#define CIANO 7
#define LBLACK 8
#define LWHITE 9
#define LRED 10
#define LGREEN 11
#define LYELLOW 12
#define LBLUE   13
#define LMAGENTA 14
#define LCIANO 15

void textcolor(int color);

#endif
dxc-4.4/myconfig.c100644      0      0        5546  6560056530  12214 0ustar  rootroot#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "mycolori.h"
#include "myalarm.h"
#include "myconfig.h"

#define PRINT 1
#define NOPRINT 0

long config_array[60]={
1700,2100,WHITE,ALARM_A,PRINT,
3500,3800,WHITE,ALARM_B,PRINT,
7000,7100,LRED,ALARM_A,PRINT,
10100,10110,WHITE,ALARM_B,PRINT,
14000,14350,WHITE,ALARM_A,PRINT,
18000,19000,WHITE,ALARM_B,PRINT,
21000,21450,WHITE,ALARM_A,PRINT,
24800,25000,WHITE,ALARM_B,PRINT,
28000,29900,LGREEN,ALARM_A,PRINT,
50000,60000,LRED,ALARM_OFF,PRINT,
144000,146000,CIANO,ALARM_OFF,PRINT,
0,0,LGREEN,ALARM_OFF,PRINT};

struct myrec { char *nome;int valore; } ;

struct myrec colori[17]= {  "BLACK",BLACK,
		            "WHITE",WHITE,
		            "RED",RED,
		            "GREEN",GREEN,
		    	    "YELLOW",YELLOW,
                            "BLUE",BLUE,
                            "MAGENTA",MAGENTA,
                            "CIANO",CIANO,
                            "LBLACK",LBLACK,
			    "LWHITE",LWHITE,
			    "LRED",LRED,
                            "LGREEN",LGREEN,
                            "LYELLOW",LYELLOW,
                            "LBLUE",LBLUE,
                            "LMAGENTA",LMAGENTA,
                            "LCIANO",LCIANO
			 }   ;

struct myrec allarmi[4]= { "ALARM_OFF",ALARM_OFF,
			   "ALARM_A",ALARM_A,
			   "ALARM_B",ALARM_B,
                           "ALARM_C",ALARM_C
			 }   ;


void myconfig(void) {

FILE *fp;
long campo1,campo2;
char *campo3;
char *campo4;
char *campo5;
char *home_user; /* stringa che conterra' $HOME/.dxcrc */

int linea;
int trovato,j;



campo3=malloc(8);
campo4=malloc(8);
campo5=malloc(8);
home_user=malloc(20);
home_user=getenv("HOME");
strcat(home_user,"/.dxcrc");


if ((fp=fopen(home_user,"r"))==NULL)
  { 
    printf("\n%s not found : opening /etc/ax25/dxcrc \n",home_user);
    if ((fp=fopen("/etc/ax25/dxcrc","r"))==NULL)
      { printf("\n/etc/ax25/dxcrc not found : assuming default \n");	  
        return ;
      }
  }

linea=0;

while (fscanf(fp,"%ld %ld %s %s %s",&campo1,&campo2,campo3,campo4,campo5)!=EOF)
{

config_array[linea]=campo1;
config_array[linea+1]=campo2;
/* cerca il codice corrispondente alla stringa 
   dichiarata nel file e mettici il valore 
   corrispondente */

trovato=0;j=0;
while ( ( j < 17 ) && (!trovato) ) {
	if (!strcmp(campo3,colori[j].nome))
		{ config_array[linea+2]=colori[j].valore;
		  trovato=1;
		}
	j++;
}

trovato=0;j=0;

while ( ( j < 4) && (!trovato) ) {
	if (!strcmp(campo4,allarmi[j].nome))
		{ config_array[linea+3]=allarmi[j].valore;
		  trovato=1;
		}
	j++;
}
if ( !strcmp( campo5,"PRINT" )) config_array[linea+4]=PRINT;
else config_array[linea+4]=NOPRINT;

linea=linea+5;
} /* end while (fscanf .... */

free(campo3);
free(campo4);
free(campo5);
free(home_user);

/* debug lettura dati
printf("\n");
for (linea=0;linea<12;linea++)
{
for (j=0;j<5;j++) printf("%d ",config_array[(linea*5)+j]);
printf("\n");
}
*/
return ;
}
dxc-4.4/myconfig.h100644      0      0         142  6303153265  12162 0ustar  rootroot#ifndef _myconfig
#define _myconfig

void myconfig(void);

extern long config_array[60];

#endif

dxc-4.4/mystring.c100644      0      0         437  6302704516  12225 0ustar  rootroot#include <string.h>
#include <ctype.h>
#include "mystring.h"

void mystrlwr ( char *string) {

int i;

for(i=0 ; i <= strlen(string) ; i++) string[i]=tolower(string[i]);

}


void mystrupr ( char *string) {

int i;

for(i=0 ; i <= strlen(string) ; i++) string[i]=toupper(string[i]);

}

dxc-4.4/mystring.h100644      0      0         255  6302704305  12224 0ustar  rootroot#ifndef _mystring
#define _mystring

void mystrlwr(char *string); /* convert string in lower case */
void mystrupr(char *string); /* convert string in upper case */

#endif
dxc-4.4/version.h100644      0      0          32  7016070722  12010 0ustar  rootroot#define VERSION "v.4.4"


dxc-4.4/COPYING100644      0      0       43076  7016077357  11317 0ustar  rootroot		    GNU GENERAL PUBLIC LICENSE
		       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                          675 Mass Ave, Cambridge, MA 02139, USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

			    Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

		    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

			    NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

		     END OF TERMS AND CONDITIONS

	Appendix: How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) 19yy  <name of author>

    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.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) 19yy name of author
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  `Gnomovision' (which makes passes at compilers) written by James Hacker.

  <signature of Ty Coon>, 1 April 1989
  Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs.  If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library.  If this is what you want to do, use the GNU Library General
Public License instead of this License.
dxc-4.4/dxc.1100644      0      0       10104  7016075046  11077 0ustar  rootroot.TH DXC 1 20-November-1999  "Version 4.4" "AX25 related software "
.\" manual page copyright 1997 Pierluigi Guerzoni IZ4AKO
.SH NAME
dxc \- DX cluster monitor
.PP
.SH SYNOPSIS
.PP
.nf
\fBdxc [-p port] [-m hf:vushf:all] [-v] [-l]\fR
.fi
.PP
.SH DESCRIPTION
.PP
.I DXC  
is a simple program for monitor local PACKET CLUSTER
that running Packet Cluster (tm) Pavillon Software.  
.I DXC
show colored spot according to their band and is able to
set  an  alarm  like a simple beep  or  a vocal alarm or
whatever you want.
.PP
.SH OPTION
.TP
.I "-p"
DXC can monitor all your ax25 port or you can set only  one with command line option -p
port

example : # dxc -p 2m
.PP
.TP
.I "-m"
DXC can running in 3 modes

1 - SHOW ALL SPOT ( HF + VHF )

For this mode simply type

# dxc [-p port]

2 - SHOW ONLY HF SPOT

type

# dxc -m hf

3 - SHOW ONLY VHF-UHF-SHF SPOT

type

# dxc -m vushf
.PP
.TP
.I "-v"
show current version
.PP
.TP
.I "-l"
log qsl-info in Qsl_info.txt file.
.PP
.PP
.PP
.PP
.PP
.PP
.PP
.SH INSTALLATION
.PP
1 - DXC must be installed with rpm -i dxc-VERSION.i386.rpm 
.PP
.SH CONFIGURATION
Configuration file is /etc/ax25/dxcrc. It consists in 12 lines.

Example
.nf
1700     2100 BLUE      ALARM_A    PRINT
3500     3800 MAGENTA  ALARM_C    PRINT
7000     7100 LRED   ALARM_A    PRINT
10100   10110 WHITE   ALARM_B    PRINT
14000   14350 YELLOW   ALARM_A    PRINT
18000   19000 CIANO  ALARM_B    PRINT
21000   21450 WHITE   ALARM_A    PRINT
24800   25000 WHITE   ALARM_B    PRINT
28000   29900 LGREEN   ALARM_A    PRINT
50000   60000 LRED   ALARM_OFF  PRINT
144000 146000 CIANO  ALARM_OFF  PRINT
0           0 LGREEN   ALARM_OFF  PRINT
.fi

Each line is composed by 5 fields.

First and second are band limit. You can modify them to
ignore SSB spot. For example for 40 meters you can set 7000
7030 ( CW segment )

Third field is color for spot in this band.Valid option are:
.nf
BLACK     
WHITE 
RED 
GREEN   
YELLOW   ( yellow ) 
BLUE 
MAGENTA 
CIANO 
LBLACK    ( light black   ) 
LWHITE    ( light white   ) 
LRED      ( light red     )  
LGREEN    ( light green   ) 
LYELLOW   ( light yellow  )
LBLUE     ( light blue    )
LMAGENTA  ( light magenta ) 
LCIANO    ( light ciano   )
.fi
.PP
All color are ANSI sequence. Your terminal must be ANSI.
Remember this if you use XTERM.

Fourth field set alarm for this band when spot is displayed. 
Valid option are :

ALARM_OFF  turn off alarm
ALARM_A    execute shell script dxcalarma
ALARM_B    execute shell script dxcalarmb
ALARM_C    execute shell script dxcalarmc

I suggest you to use wavplay program. You can find this at 
sunsite /pub/linux/apps/sound, but you are free to modify
dxcalarm* with software that you want.In this distribution
dxcalarc do a simply beep.
I'm working for an alarm via parallel port that is able to 
turn on led.......

Last field enable spot print. If you are not interessed in
WARC simply set NOPRINT.

Last line of dxcrc is for all that mismatched precedent 
setting and for spot in UHF and SHF. Band limits are 
ignored ( see dxc.c ).


.SH FILES
.B /etc/ax25/dxcrc
- configuration file
.PP  
.B /var/dxc/Qsl_info.txt
- qsl-info database
.PP
.B /usr/bin/dxcalarma, /usr/bin/dxcalarmb, /usr/bin/dxcalarmc
.B /usr/bin/dxctestcolor
.PP
.SH NOTE
1 - To quit DXC press CTRL-C or kill it using 
kill -SIGTERM 'pid of dxc'.

2 - I suggest you to insert in rc.local ( or rc.ax25 if any) 
this line

dxc -m hf &> /dev/tty9 & echo DXC on virtual console tty9

With this you can see elaboration of dxc switching to
virtual console 9 with ALT-F9.

3 - DXC was tested with kernel 2.0.12 and 2.0.30 and with
ax25 utilities 2.0.12 ,2.0.12c and 2.1.42a, 2.0.36 + libc6

4 - In /var/dxc you can find the Qsl_info.file. This file is
automatically updated by dxc. When a spot include some
key-word like 'qsl','via','msg' ( see dxc.c code ), this
info is stored in /var/dxc/Qsl_info.txt file.Syntax is
CALL   QSL-INFO.

There isn't dupe check.If you want a sorted list try

.I cat /var/dxc/Qsl_info.txt | sort.

.nf
If you want serch a call try 
.I "grep CALL /var/dxc/Qsl_info.txt"
.fi
.PP

.SH AUTHOR
Pierluigi Guerzoni <e-mail:iz4ako@linux.unife.it>
		   <packet:iz4ako@iw4crl.iemr.ita.eu>
	
dxc-4.4/setport/ 40755      0      0           0  7016073123  11620 5ustar  rootrootdxc-4.4/setport/INSTALL100644      0      0         331  6407324304  12726 0ustar  rootrootsetport installation

1- check source if you don't have lpt2 and change with lpt1 ( remove
comment /* */)
2- copy setport.1 in /usr/local/man/man1
3- copy setport in /usr/local/bin
4- suid setport chmod a+s setport


dxc-4.4/setport/Makefile100644      0      0         437  6407203125  13341 0ustar  rootrootall: setport

CC = gcc
LD = gcc
CFLAGS = -Wall -O 
LDFLAGS =  -L/usr/lib -lm
LIBS = 

.c.o:
	$(CC) $(CFLAGS) -c $<

clean:
	rm -f *.o *~ *.bak

distclean: clean
	rm -f dxc
install: 
	

OBJS = setport.o

setport:	$(OBJS)
	$(LD) $(LDFLAGS) -o setport $(OBJS) $(LIBS)

setport.o:	setport.c
dxc-4.4/setport/setport100755      0      0       11153  7016072775  13400 0ustar  rootrootELF44 (444ԀԀ/lib/ld-linux.so.2

	 #9h?P1E>L|"ZllqL<$t!\Ftt!
Lttx__gmon_start__libm.so.6_DYNAMIC_GLOBAL_OFFSET_TABLE__init_finiatexitpowlibc.so.6__libc_init_firstexit__strtol_internalprintf_environioperm__environenviron_start_etext_edata__bss_start_endtĖ
Ȗ
̖ЖԖؖ	ܖUS[ë,t]]5%%h%Ėh%Ȗh%̖h%Жh %Ԗh(%ؖh0%ܖh8p1tRX^DtPPRVhPX:PUS=tЃ;u]ÍvUÐUS]}u#jjhxsx1hl]UWVS10}HE19}vUUUEejj
juǃCE)P$$h@jW$V$}EEm$^m9]e[^_ÐUS=tЃ;u]ÍvUÐUS[[]]syntax : setport xxxxxxxx ( eg. setport 10101010)
BRbrP
P؂
@GCC: (GNU) 2.7.2.3GCC: (GNU) 2.7.2.3GCC: (GNU) 2.7.2.3GCC: (GNU) 2.7.2.3GCC: (GNU) 2.7.2.301.0101.0101.0101.0101.01.symtab.strtab.shstrtab.interp.hash.dynsym.dynstr.rel.got.rel.bss.rel.plt.init.plt.text.fini.rodata.data.ctors.dtors.got.dynamic.bss.comment.noteԀ#)P1؂9	B	K	@	T,Z,,_ePPkll3sy0tttddd<0,	Ԁ؂,	
Pl
td

&
<ID
T
bL

o
(
T
0
<$LLt!tht
\F

l#|"'t30D
8 
CP1I>PtWmxrw
 initfini.cgcc2_compiled.crtstuff.c__do_global_ctors_aux__CTOR_END__init_dummyforce_to_data__DTOR_END____do_global_dtors_aux__DTOR_LIST__fini_dummy__CTOR_LIST__setport.cprintf_DYNAMIC_etext__strtol_internal_environ__environ_initstrbin2intioperm_start__libc_init_firstpow__bss_startmaindata_start_finiatexit_edata_GLOBAL_OFFSET_TABLE__endexit__data_start__gmon_start__dxc-4.4/setport/setport.1100644      0      0        1377  6407203125  13507 0ustar  rootroot.TH SETPORT 12-09-1997  "Version 1.0" "dxc related software "
.\" manual page copyright 1997 Pierluigi Guerzoni IZ4AKO
.SH NAME
setport \- set output on lpt port
.PP
.SH SYNOPSIS
.PP
.nf
\fBsetport xxxxxxxx
.fi
.PP
.SH DESCRIPTION
.PP
.I setport
is a simple program for setting the output on the parallel port.
It must be suid.
At present it set lpt2 (standard dos). If you want change, you can read
the source code.
For more info, read IO-PORT-PROGRAMMING.HOWTO.(autor
: rjs@spider.compart.fi Riku Saikkonen )
.PP
.SH OPTION
.TP
.I "xxxxxxxx"
 is a string of bit 
example : # setport 10101010

turn on ( +5V ) D7,D5,D3,D1 ( pin 3,5,7,9 of lpt db25 connector )

.SH AUTHOR
Pierluigi Guerzoni <e-mail:iz4ako@ing49.unife.it>
		   <packet:iz4ako@i4fp.fe#.iemr.ita.eu>
	
dxc-4.4/setport/setport.c100644      0      0        1653  6407203125  13566 0ustar  rootroot#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <asm/io.h>
#include <math.h>

#define LPT 0x278  /* lpt2 standard dos */

/* lpt1 standard dos 
#define LPT 0x378  
*/

int strbin2int (char *stringa) ;

int main ( int argc,char **argv) { 


int i;


if (argc!=2) { printf("syntax : setport xxxxxxxx ( eg. setport 10101010)\n");
               return -1;
	     }

ioperm(LPT,3,1);

i=0;

outb(strbin2int(argv[1]),LPT);
/*
printf("%s = %d\n",argv[1],strbin2int(argv[1]));
*/
return 0;

}

int strbin2int (char *stringa) {

int n;   /* lunghezza in bit del numero decimale da convertire */
int i;
int bit_val;
int valore=0;
char temp[4];

n=strlen(stringa);

for (i=0;i<n;i++) {

temp[0]=stringa[i];  /* bisogna creare una stringa in cui inserire un bit
			per volta, altrimenti atoi non va */
temp[1]='\0'; /* termino la stringa con null */

bit_val=atoi(temp);
valore=valore+bit_val*(pow(2,(n-1-i)));
}
return valore;
}

dxc-4.4/README.1st100644      0      0         125  6360665336  11577 0ustar  rootrootAll info about DXC are in dxc.1 file ( unix "man" style ).

'73 de IZ4AKO Pierluigi

dxc-4.4/dxctestcolor100755      0      0       10770  6372436447  12725 0ustar  rootrootELFЃ48	4 (444ԀԀ`````/lib/ld-linux.so.1

	x("`%`+F7` ?M`
S4Ztpu>\ libc.so.5printf_DYNAMIC__environ_init__libc_initenviron__fpu_control_finiatexit_GLOBAL_OFFSET_TABLE_exit__setfpucw_etext_edata__bss_start_end	5x%|%h%h%h%h%h YЃ1UUUPSQ̀D$`Pth`z:IPw[&&̀&Sp=pt
Ѓ;u[Í6ÐUhhhjhrhyhhhhhhhuhhh[hNhɆAh҆4hچ'hh
hhhh	hhhh'h0h8h>~hFqhPdhXWhyJ]ÐSd=dt
Ѓ;u[Í6Ð
BLACK
WHITE
RED
GREEN
YELLOW
BLU
MAGENTA
CIANO
LBLACK
LWHITE
LRED
LGREEN
LYELLOW
LBLU
LMAGENTA
LCIANO
~`
`x
t(0(01.0101.0101.01GCC: (GNU) 2.7.2.l.2GCC: (GNU) 2.7.2GCC: (GNU) 2.7.2.l.2.symtab.strtab.shstrtab.interp.hash.dynsym.dynstr.rel.bss.rel.plt.init.plt.text.fini.rodata.data.ctors.dtors.got.dynamic.bss.note.commentԀ#)xx19	((B	00(K``Qhh`VЃ\``bhhj``pddwll~tt <X>)	h	

8	8	1h
>X	IdWpdk@	P	pP	lp	Idd
t	x("\``F` Ѓ		Ѓ	$t	)`
/46=tS X]>crtstuff.cgcc2_compiled.__do_global_ctors_aux__CTOR_END__init_dummyforce_to_data__DTOR_END__crt0.Sdone__do_global_dtors_aux__DTOR_LIST__fini_dummy__CTOR_LIST__testcolor.cprintf_DYNAMIC_etext__environ_init__libc_initenviron__fpu_control_start___crt_dummy____bss_startmain_finiatexit_edata_GLOBAL_OFFSET_TABLE__endexit__setfpucwdxc-4.4/CURRENT_IS_4.4100644      0      0           5  6372444044  12165 0ustar  rootroot:-)

dxc-4.4/dxctestcolor.c100644      0      0        3332  6372436442  13112 0ustar  rootroot#include <stdio.h>


#define CANC_SCR 	"\33[2J"
#define MYNERO 		"\33[0;30m"     /* Codice del nero */
#define MYROSSO 	"\33[0;31m"     /* Codice del rosso */
#define MYVERDE 	"\33[0;32m"	/* Codice del verde */
#define MYGIALLO 	"\33[0;33m"	/* Codice del giallo */
#define MYBLU 		"\33[0;34m"	/* Codice del blu	*/
#define MYMAGENTA 	"\33[0;35m"	/* Codice del magenta   */
#define MYAZZURRO	"\33[0;36m"	/* Codice del azzurro   */
#define MYBIANCO 	"\33[0;37m"	/* Codice del bianco    */
#define MYNEROC 	"\33[1;30m"	/* Codice del nero chiaro */
#define MYROSSOC 	"\33[1;31m"	/* Codice del rosso chiaro */
#define MYVERDEC	"\33[1;32m"	/* Codice del verde chiaro */
#define MYGIALLOC	"\33[1;33m" 	/* Codice del giallo chiaro */
#define MYBLUC		"\33[1;34m" 	/* Codice del blu chiaro    */
#define MYMAGENTAC 	"\33[1;35m" 	/* Codice del magenta chiaro */
#define MYAZZURROC 	"\33[1;36m" 	/* Codice del azzurro chiaro */
#define MYBIANCOC 	"\33[1;37m" 	/* Codice del bianco chiaro  */
#define MYROSSOC	"\33[1;31m" 	/* Codice del rosso chiaro   */


/* tutti i colori sono su sfondo nero */


void main (void) {
printf("\n");
printf(MYNERO);printf("BLACK\n");
printf(MYBIANCO);printf("WHITE\n");
printf(MYROSSO);printf("RED\n");
printf(MYVERDE);printf("GREEN\n");
printf(MYGIALLO);printf("YELLOW\n");
printf(MYBLU);printf("BLU\n");
printf(MYMAGENTA);printf("MAGENTA\n");
printf(MYAZZURRO);printf("CIANO\n");
printf(MYNEROC);printf("LBLACK\n");
printf(MYBIANCOC);printf("LWHITE\n");
printf(MYROSSOC);printf("LRED\n");
printf(MYVERDEC);printf("LGREEN\n");
printf(MYGIALLOC);printf("LYELLOW\n");
printf(MYBLUC);printf("LBLU\n");
printf(MYMAGENTAC);printf("LMAGENTA\n");
printf(MYAZZURROC);printf("LCIANO\n");

printf(MYBIANCO);
         

} /* end textcolor */



dxc-4.4/dxc-4.4.SPEC100644      0      0        1411  7020056143  11745 0ustar  rootrootSummary: DX Cluster Monitor
Name: dxc
Version: 4.4
Release: 1
License: GNU/GPL
ExclusiveArch: i386
ExclusiveOS: Linux
Group: Applications/Networking
Requires: ax25-utils
Source: http://ing49.unife.it/iz4ako/files/dxc-4.4.tar.gz
Packager: Pierluigi Guerzoni <iz4ako@linux.unife.it>
%description
DXC is a simple DX Cluster monitor with color and sound capability.
%description -l it
DXC e' un semplice programma che cattura gli SPOT DX dal cluster e li mostra
a colori e suoni personalizzabili.
%prep
%setup

%build
make

%install
make install

%clean 
rm -rf ../dxc-4.4

%files
%config /etc/ax25/dxcrc
/usr/bin/dxc
/usr/bin/dxcalarma
/usr/bin/dxcalarmb
/usr/bin/dxcalarmc
/usr/bin/dxctestcolor
/usr/man/man1/dxc.1
%doc CHANGES 
%doc CURRENT_IS_4.4
%doc README.1st
%doc COPYING

Results 1 - 1
Help - FTP Sites List - Software Dir.
Searching half a billion files worldwide
© 1997-2009 MARUHN Internet Solutions