home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 24
/
CD_ASCQ_24_0995.iso
/
vrac
/
afcalc.zip
/
AFCALC.C
next >
Wrap
C/C++ Source or Header
|
1995-07-31
|
5KB
|
247 lines
/*--------------------------------------------------------------------------*/
/* AFCALC.C */
/*--------------------------------------------------------------------------*/
/* Antenna Factor Calculator */
/* Version 1.00 */
/* Written by James Eagleson */
/* Copyright - August 1995 */
/*--------------------------------------------------------------------------*/
/* j. eagleson, WB6JNN */
/* First Release: Version 1.00, August 1, 1995 */
/* */
/* ------------------------------------------------------------------------ */
#include <stdio.h>
#include <conio.h>
#include <math.h>
/* FUNCTIONS */
int menu_select(void);
int af_to_gain(void);
int gain_to_af(void);
int frame(int a, int b, int c, int d);
/* VARIABLES */
char ch;
int item;
int pause;
int top, left, right, bottom;
double ga_dbi;
double ga_ratio;
double frequency;
double ant_factor;
int main()
{
textbackground(WHITE);
clrscr();
while(ch!='q')
{
if(ch=='1')
{
gain_to_af();
}
if(ch=='2')
{
af_to_gain();
}
menu_select();
}
window(1,1,80,25);
textcolor(WHITE);
textbackground(BLACK);
clrscr();
return(0);
} /* END OF MAIN() */
/*************************** MENU_SELECT() ****************************/
int menu_select(void)
{
clrscr();
frame(2, 2, 79, 24);
gotoxy(6,5);
cprintf( " >>>>>>>>>>>> ANTENNA FACTOR CALCULATOR v1.00 <<<<<<<<<<<");
gotoxy(6,6);
cprintf( " J. Eagleson WB6JNN c 1995");
gotoxy(6,9);
cprintf( " CALCULATE:" );
gotoxy(6,11);
cprintf( " 1) Antenna Factor" );
gotoxy(6,12);
cprintf( " 2) Antenna Gain " );
gotoxy(6,14);
cprintf( " q = quit" );
gotoxy(6,17);
cprintf( " Enter selection.." );
ch=getch();
return(0);
} /* END OF MENU_SELECT() */
/* ******************* ANTENNA FACTOR FROM GA & FR **********************/
gain_to_af()
{
double ga_dbi;
double ga_ratio;
double frequency;
double ant_factor;
clrscr();
frame(2, 2, 79, 24);
gotoxy(6,6);
cprintf(" ANTENNA FACTOR CALCULATION" );
gotoxy(6,7);
cprintf(" (Gain/Freq known) " );
gotoxy(6,9);
cprintf(" Gain (dBi) = " );
cscanf("%lf",&ga_dbi);
flushall();
ga_ratio=pow(10,(ga_dbi/10));
gotoxy(6,10);
cprintf(" Gain (ratio) = %3.2lf",ga_ratio);
gotoxy(6,12);
cprintf(" Frequency (MHz) = " );
cscanf("%lf",&frequency);
flushall();
ant_factor=(20*log10(frequency/(30.82*sqrt(ga_ratio))));
gotoxy(6,14);
cprintf(" Antenna Factor = %3.2lf ",ant_factor);
gotoxy(6,16);
cprintf(" <c> = continue, <q> = quit ");
cscanf("%d",&pause);
flushall();
return(0);
}
/* ***************** CALCULATE ANTENNA GAIN FROM FR & AF *****************/
af_to_gain()
{
clrscr();
frame(2, 2, 79, 24);
gotoxy(6,7);
cprintf(" ANTENNA GAIN CALCULATION" );
gotoxy(6,8);
cprintf(" (AF/Freq known) " );
gotoxy(6,10);
cprintf(" Antenna Factor(dB) = " );
cscanf("%lf",&ant_factor);
gotoxy(6,11);
cprintf(" Frequency (MHz) = " );
cscanf("%lf",&frequency);
ga_ratio=pow(frequency/(30.82*pow(10,(ant_factor/20))),2);
gotoxy(6,13);
cprintf(" Gain (ratio) = %3.2lf",ga_ratio);
ga_dbi=10*log10(ga_ratio);
gotoxy(6,14);
cprintf(" Gain (dBi) = %3.2lf", ga_dbi);
gotoxy(6,16);
cprintf(" <c> = continue, <q> = quit " );
cscanf("%d",&pause);
flushall();
return(0);
} /* END OF AF_TO_GAIN() */
/********************************* FRAME() ********************************/
#define ULCOR 201
#define URCOR 187
#define LLCOR 200
#define LRCOR 188
#define VBAR 186
#define HBAR 205
frame(top, left, right, bottom)
{
int i, y;
window(top+1, left+1, right, bottom);
textbackground(BLACK);
clrscr();
window(top,left,right-1,bottom-1);
textbackground(BLUE);
textcolor(YELLOW);
clrscr();
gotoxy(2,2);
putch(ULCOR);
for(i = 3; i < ((right-left)-1); i++)
{
putch(HBAR);
}
putch(URCOR);
for(i = 3; i < ((bottom-top)-1); i++)
{
gotoxy(2,i);
putch(VBAR);
gotoxy(((right-left)-1),i);
putch(VBAR);
}
gotoxy(2,i);
putch(LLCOR);
for(i= 3; i < ((right-left)-1); i++)
{
putch(HBAR);
}
putch(LRCOR);
return(0);
}