WB5KIA
 

Questions and Answers

 
sdfdsf


QST Articles by WB5KIA

Be aware, much of this is becomming a bit dated and the QST binary file links seem to have been discontinued by the ARRL sometime in 2010.

 

 

"Command and Control:
Talk to Your Radio and Maybe it Will Talk Back to You" appeared in the November 2006 QST.

 

 

"Topographic Maps... appeared in the April 2006 QST.

 

 

"Beginners' Computer Programming for Ham Radio Parts 1, 2 & 3" appeared
in the February, March and April 2003 issues of QST magazine.

Several ham radio utility projects and their Delphi 1 & 5 and Visual Basic 3 & 5 source code are in a package that can be downloaded now for Part 2 and Part 3 from the ARRLWeb www.arrl.org/files/qst-binaries. Look for the files 0303Grad.zip and 0304Grad.zip. The files are described in the second and third installments of a three part article about how to program Windows Amateur Radio projects for novice programmers by WB5KIA.

The beginners' computing articles ran in the February, March and April 2003 issues of QST. The Visual Basic 5 projects also load with Visual Basic 6, the Delphi projects with Delphi 7. Projects developed include utilities to calculate bearing and distance, grid squares from geographical coordinates, distances between grids, sunrise/sunset times for any QTH, how to use simple geographical maps in a program and other topics. The code for Part 2 and 3 is written so that beginners can get it into their compilers easily and use just the standard programming controls.


 

Nov 2006 QST

 

 

April 2006 QST

How about the USGS 1 and 3 meter DEM's

These digital 'maps' provide improved vertical resolution. There are holes in the DEM data base. I personally think they are difficult to load in RadioMobile. N4ZR indicates a good program to download them with and to convert them to a format that HFTA can use is MicroDEM. It is free and available at http://www.usna.edu/Users/oceano/pguth/website/microdemdown.htm This is a 40 Mb download (25 of which are the Help files).

Where can I get RadioMobile? The link in the article does not appear to work.

Try http://www.cplus.org/rmw/english1.html It appears the address changed since press time, the page you go to is in French and it is possible to get to the RadioMobileDeluxe page; this is easier. RadioMobile is NOT an easy program to use. It is very counter-intuitive, however, if you stay with it, you will probably be pleased. If you need help, there is a pretty good tutorial at http://pizon.org/rmw/

This program was brought to my attention:

K3IW indicates "This nice program allows one to combine topo and satellite maps, zoom and see a 3D rendition that really makes elevation features stand out.... The Website for Topofusion is: www.topofusion.com"

 

April 2003 QST

JULIAN DATE PROBLEM? Richard, W5SXD, correctly points out that the slashes in the code on Listing 3 should be back-slashes (\) instead of slashes (/).

partA = 146097 * (Year1 / 100) \ 4
partB = 1461 * (Year1 Mod 100)
\ 4
partC = (153 * Month1 + 2)
\ 5 + day1 + 1721119

The / 's divide and result in decimal fractions. Using \'s results in the required integers.

Provide text boxes for Year1, Month1, day1 and juliandate to calculate that March 28, 2003 is 2452727.

Private Sub Command1_Click()
day1 = Text4.Text
Month1 = Text1.Text
Year1 = Text3.Text
If Month1 > 2 Then
Month1 = Month1 - 3
ElseIf Month1 <= 2 Then
Month1 = Month1 + 9
Year1 = Year1 - 1
End If
partA = 146097 * (Year1 \ 100) \ 4
partB = 1461 * (Year1 Mod 100) \ 4
partC = (153 * Month1 + 2) \ 5 + day1 + 1721119
JulianDate = partA + partB + partC 'JULIAN DATE
Text2.Text = JulianDate
End Sub

 

ERRATA Part of the text in Listing 1 of page 40 of the April QST should read as follows:

DELPHI 5
// Calculate the grid from latitude and longitude data
// Latitude is the latitude in degrees, N+, S-
// Longitude is the longitude in degrees, W+, E-
// the resulting 6 character grid locator is the value placed
// in edit3.text
// Delphi has different string handling capabilities from VB and
requires
// different code
//Delphi 1 does not permit long strings in the code window
//such that the edit3.text needs to be broken into several
//statements

Longitude:= strtofloat(Edit2.text);
Longitude:= -Longitude;
Latitude:= strtofloat(edit1.text);
Longitude:=(Longitude+180)/20;
Latitude:=(Latitude+90)/10;
A:=int(Longitude);
B:=int(Latitude);
Longitude:=(Longitude-A)*10;
Latitude:=(Latitude-B)*10;
C:=int(Longitude);
D:=int(Latitude);
edit3.text := chr(strtoint(floattostr(A+65))+
chr(strtoint(floattostr(B+65)))+chr(strtoint(floattostr(c+48)))+
chr(strtoint(floattostr(d+48)))+chr(strtoint(floattostr((INT((Long
itude-C)*24)+65))))
+chr(strtoint(floattostr((INT((Latitude-D)*24)+65))))


(note that edit3.text := ... and the four other lines shown in dark blue should be coded on a single line. In Delphi 1, this line needs to be broken into several strings. Give them names, add them together and equate them to edit3.text.)

The code in the article listing works in most instances. It, however, introduces a rounding error resulting in incorrect grid designations for some combinations of latitude and longitude. The code and files for the Delphi DGrid program on the ARRLWeb are correct. I apologize.

The VB code at the top of the page also has a small glitch.
W+, E- should have been W-,E+ for the algorithm listing as shown but W+, E- is correct for the full program listing that uses some simple input error routines and 'corrects' for the longitude sign.

Three ways to get the algorithm to work-- get the complete code from the ARRLWeb (it works fine) or
use the existing code but place a negative sign in front of
the longitude input for West degrees and nothing for East degrees or
change
p=(p+180)/20 to p=(180-p)/20 as suggested by KD4ITI.

Also in Listing 4, regarding the second listing, the 'End if' following theline 'List1.Selected(I) Then' is misplaced. See the VB Code page Comments from Readers to get the fix.

I apologize for not catching this and the listing 3 back-slashes when proofing the article.

OVERSIMPLIFIED LEAP YEAR CALCULATION IN THE DAY OF YEAR NUMBER? The years that are evenly divisible by 4 are leap years, while the years that are divisible by 100 are not, while the years that are divisible by 400 are. Thus, 1800, 1900, and 2100 are not leap years, while 2000 is. However, it is not correct to say the algorithm is incorrect. The simplified code leap year calculation provided in the day of year number algorithm is usable for the next 97 years as it is. There are other ways to determine leap year, most of them very similar to this example. What I wanted to show was a very simple way to calculate Day of Year Number.

The following algorithm in Visual Basic will, I believe, calculate Leap-Year for any year:

If (Year1 Mod 4 = 0 And Year1 Mod 100 <> 0) Or Year Mod 400 = 0 Then '(this goes on the line above)
LeapYear = 1
Else
LeapYear = 0
End If

Insert the code in place of

'check for leap-year
If (Year1/4) = Int(Year1/4) Then
leapyear=1
End If

in Listing 2. The 'leap year' algorithm can be coded as a function and you can use it every time you need to determine if a year is a leap-year post 2000 or safely use the simplified code in the original listing until 2100. Code the function as Boolean (True - False versus the 1 and 0 in the snippet). You can find out more about Boolean Data Types and the Mod Operator by consulting your Visual Basic Help File.

 


March 2003 QST

ERRATA There is a small typo in Table 1, page 36. In the Visual Basic listing, "Text2.txt = Length" should be "Text2.text = Length". This should not affect any of the programming code.

 

HOW ACCURATE ARE THE BEARING/DISTANCE CALCULATIONS? The calculations of great circle distance depend on spherical geometry and the assumption the Earth is round. Since the Earth has an oblate shape (squatter at the equator), a spherical model has some inherent error.

The Earth's semi-minor axis is used to calibrate the algorithm calculations. The Earth's: semi-major axis is 6378.206 km; semi-minor axis is 6356.583 km and the radius of a sphere of equal area is 6370.997 km (various sources publish slightly different values).

The algorithm in QST uses a value of 6356.775 for the semi-minor axis (it's easy to find in the code). With it, measurements are quite accurate for most purposes and the distance determined by the algorithm will never be overestimated. Alun, GW7KYT, suggests one might achieve a better estimate with a value of 6371.291. In 1987, Region 1 of the IARU recommended using this value to calculate distances for contest scoring.

Which value should you use? Neither value is precise for all communications paths and both introduce errors in the calculation of great circle paths. Consider the following:

The distance between Alun's QTH at 51.547 N, 3.564 W. to 33.01 North, 96.892 West results in:

1) S. geometry and 6356.775 is 7,395km
2) S. geometry and 6371.291 is 7,411km
3) S. geometry and 6367 is 7406km *
4) S. geometry and 6378 is 7419 km**
(* arithmetic average of the semi-major and minor axes. ** semi-major axis. S. geometry is abbreviation for spherical geometry) using the Bearing/Distance program.

A 1% error at these distances is approximately 74 km. A 0.1% error is a difference of about 7.4 km. The error using a spherical geometry calculation can be as large as about 0.3% or more.

A more precise great circle distance could be calculated using a distance model based on the actual ellipticity of the Earth. The spherical model, using an 'average' axis value of 6371 km, has an accuracy of about 0.3 percent or better. Some claim using an elliptical model reduces the error to a range of 0.1 to 0.3 percent, however, experts in geodesy indicate all these calculated measurements are approximations.

Alun alerted me to a Pascal program by W9IP and N1BWT that depends on an actual oblate Earth geometry and algorithms described by P.D. Thomas, 1970, "Spheroidal geodesics,reference systems & local geometry", U.S. NavalOceanographic Office SP-138, 165 pp. The mathematics is more involved than for the simple spherical model shown in the article and may interest some readers. The source code is in the public domain. I've converted it to Delphi and will post the revised source shortly if anyone asks.

 

QUESTIONS REGARDING THE CALCULATION OF BEARINGS AND DISTANCES...LATITUDE REQUIRES A (-) FOR (S) .. DOES LONGITUDE REQUIRE A (-) FOR (E) ? HOW DO I ENTER A DESTINATION LONGITUDE OF 100 E ? Yes, south latitudes (below the equator) require a (-) and longitude east also require a (-) as the algorithm is written.

You enter a longitude of 100 degrees east like:
- 100 or 100.23 east as -100.23 West longitudes are entered as positive values, East longitudes are entered as negative values.
Think of a flat, Mercator-like map of the world that has a framework like this:

For locations up to 180 degrees West of the prime meridian, that is Canada, USA, South America, use a positive longitude. Use a negative value for degrees east. Some programs reverse this convention, that is,-180 longW ---0--- +180E as shown in black in the above figure. Geographers and cartographers use West and East, programmers assign a sign to these measurements.

If you prefer to enter West longitude as a negative value, remove the negative signs in front of the Wr and Wt values in the algorithim i.e. change
Wr = -(W1-180... to Wr = (W1-180 in the program listing and do the same for the Wt value.

What coordinate system you use depends on what other utilities your algorithm might interface with and the form any coordinate information needs to be in to work with other parts of your program.

 

DELPHI ROUNDING--STEVE, I WANTED TO USE THE ROUNDTO FUCTION BUT I GUESS DELPHI 5 DOESN'T SEEM TO HAVE IT SO THAT I COULD ROUND OFF THE DECIMAL TO 2 PLACES. IS THERE ANY FUNCTION IN DELPHI TO DO THIS?? I KNOW DELPHI-6 HAS ROUNDTO. D5 has the Int, Round, Trunc and Frac functions. The last one gives you the fractional part, the others functions give you the big part (use help on your D5 to find out exactly how they differ). None do exactly what you want to do, so try this using the Dipole example code:

begin
MHz := StrToFloat(Edit1.text);
Length := 468/Mhz;

length := length * 100;
length := int(length) * 0.01;

Edit2.Text := FloatToStr(Length);
end;

to actually truncate the value.

Or, you can do this:

begin
MHz := StrToFloat(Edit1.text);
Length := 468/Mhz;
// Edit2.Text := FloatToStr(Length);
Edit2.text :=(format('%.2f',[length]));
end;

to make the output look pretty without changing the variable value!


Change the 2f to 4f to get additional decimal places (or 3f or 6f etc).

Or you can write your own function:

function RoundTo(X : Real) : Real;

begin
X:= X * 100;
X := int(X) * 0.01;
Result := X
end;

To use the Delphi RoundTo function, place the RoundTo function code in a form's global area (Just below the


implementation

{$R *.DFM}


********** <---- goes here!!!

Put the following code in the event handler (in this case the event handler is the Form1 button click).

begin
MHz := StrToFloat(Edit1.text);
Length := 468/Mhz;
length := RoundTo(length);
Edit2.Text := FloatToStr(Length);
end;

If you want to round another variable in the same program, just call otherVariable := RoundTo(otherVariable);

What about Visual Basic? Try:

Private Sub Command1_Click()
Mhz = Text1.Text
Length = 468 / Mhz
'Text2.Text = Length
Text2.Text = Format(Length, "###0.00")
End Sub

or

Private Sub Command1_Click()
Mhz = Text1.Text
Length = 468 / Mhz
Length = Int(Length * 100)
Length = Length * 0.01
Text2.Text = Length
End Sub

 

WHERE ARE THE WORLD BITMAPS?, WHERE CAN I DOWNLOAD DIGITAL COASTLINE DATA?, WHERE CAN I FIND THE WORLDMAP.DAT FILE? Digital images (bitmaps) of the World are available at:
http://www.evl.uic.edu/pape/data/Earth/
Earth must be spelled with a capital 'E' as is printed on page 42 of Feb. 2003 QST. The images are available at several scales and formats. They are very nice.



If you are interested in the huge digital images databases of coastline and cultural data, go here: http://www.evl.uic.edu/pape/data/WDB/
The largest text based dataset is about 30 Mb and is only available in a tar compression file. Winzip won't handle them. A different file decompressor is needed. You may be able to find one on the Web.

If you are interested in the small coastline data set used in the demonstration program described in the article, you need to first download the 1.2 Mb zip file package mentioned in the article at the ARRLWeb:
www.arrl.org/files/qst-binaries

Evidently this link no longer works since the ARRL created its 'new' web site in 2010.

 


After you reach the download page, locate the file in the list called 0303Grad.zip. There are four folders in the 0303Grad.zip file. A copy of the smaller database mapping file worldmap.dat, the small text based file with latitude/longitude coordinates for world coastlines, is included in three of these folders. Find the folder DMap or, VB5Maps or VBMap. Each folder has the source code for the map demonstration program, the executable file and a copy of the file WORLDMAP.dat. WORLDMAP.dat can be read with Notepad, the text editor that is part of all Windows programs.

The digital files at www.cia.gov/cia/publications/factbook are no longer available at that site. There is other information there that might be useful in your programming. Mr. Pape's WDB site mentioned above has links to a source which contains HUGE binary files..but Mr. Pape's recently indicated, the links may be permanently broken.

 

HOW CAN I GET THE BEARING/DISTANCE PROGRAM TO GIVE ME THE DISTANCE IN MILES RATHER THAN KILOMETERS? Multiplying kilometers by 0.6214 results in a conversion to miles. Substitute the following:

Distance = Int(6356.775 * GG +.5) * 0.6214 for VB or

Distance := INT(6356.775 * GG +.5) * 0.6214; for Delphi.

Want both measurements? Name the miles conversion Distance2 instead of Distance. Put the Distance2 line immediately after the existing Distance line. Place an additional Delphi edit box or VB text box on the form. Depending what this edit/text box is named, insert the following code after the line beginning Edit2.Text in Delphi or the line Text6.Text in VB --

EditMiles.text := FloatToStr(Distance2); for Delphi or

TextMiles.text =Str$(Distance2) for VB.

where the EditMiles or TextMiles is the name of the box.

 

HOW CAN I INCLUDE PRINTER COMMANDS, HOW CAN I USE A SOUND CARD, HOW CAN I...? Depending on which compiler you have, you can get excellent answers to these and other questions about general programming tasks at one of the Internet sites mentioned in Table 3 of Part 1 of the article. Look for a heading on these sites like PROGRAM, FAQ, or TIPS. Then search for the topic or control for which you want to find some example code. Someone likely has posted a detailed explanation. Alternatively, search the Internet with a search engine phrase looking something like ---- "Visual Basic""Sound Card" source or "Delphi""Sound Card" source to find alternative sites. You may have to add additional words to narrow your search ... "source code", tip, soundcard, etc. The examples in books in your local library should be adequate for most tasks. Sometimes reading another explanation in a different book might make the process clearer. There is no single way to program anything...different programmer--different route. Do whatever works for you. If you've tried the above and can't find anything, I would be glad to try to help -- send me an e-mail, I'll answer when I can. I'm like most of you, not a professional programmer and am still learning too.

The correct way to print is to use a printer dialog with a drop down menu and such in both VB and Delphi. Consult the library or a programming guru. The following will work but I don't necessarily recommend doing it this way, but it will get you technical data output on paper quickly. To print to the screen, use this code with VB after putting a Picture box on your form:

Picture1.Print a, code

--the a and code are your output variables. To print to a printer, use this code with VB :

Printer.Print a, code

--The a and code are your output variables. This is simple, non-formatted but works. With Delphi, add the word Printers to the uses clause in the main code window and this code:

begin
Printer.BeginDoc;
Printer.Canvas.TextOut(0,10,(floattostr(a)
+' '+floattostr(code)));
//continues from above line
Printer.EndDoc;
end;

assuming a and code are double precision or use Printer.Canvas.TextOut(0,10,(a+' '+code)); if they are strings.

Sound Cards? Try the ActiveX tutorial by Jack Hoxley at www.dx4vb.da.ru or look at G4ILO's site as shown in Table 4 of Part 1 and view his Delphi code practice program source code. I think it was done in Delphi 3 but the code works with D5 too. He uses a sound card to produce Morse CW audio, all manually coded. Checkout www.programmersheaven.com and look for the following files: gravis.zip, nsbtut10.zip, sblast09.zip, awe32prg.zip --I believe most of this code is in Turbo Pascal. Also try www.giangrandi.ch/jack//radio/morse-e.shtml ---look for Tymorse, again in Turbo Pascal.

 

WHAT IS THE VARIABLE H0 FOR IN THE BEARING/DISTANCE PROGRAM? The H0 variable is a remnant of a previous programming exercise. When the original code was developed,the length of BASIC variables was limited to a few characters. H0 was calculated to relate the angular distance data to a statute miles scale rather than to kilometers. It has no function in the current program.

back to top


February 2003 QST

HOW CAN I WRITE A LOGGING PROGRAM? Coding a logging program is a bit too much to explain in a beginners magazine article. There isn't enough space to discuss all the coding issues involved even here.

I have written a PSK program using WA0TTN's PSK ActiveX control (the application's screen is shown in a QEX article) that has a self contained logger. I've also written the log program whose main screen is shown in the Part 1 QST article. The original log program was written in Delphi 1 Professional. It had very few lines of code. It was very simple. The latest version got very complex as I added additional logging routines and features. I'll try to find time to clean up the code and post it on this site's Delphi Code page in the next few weeks for these projects. (Sorry, I wont' be able to post this till some time after May I have however posted Delphi and VB logging projects that use only the STANDARD controls on the Delphi and VB Code pages.)

I find working with databases is easier in Delphi than VB. It's a personal preference. If you use an Access database, certainly use VB...it was designed to work well with it. I designed my Delphi logger to use a dBASE dbIV database for the logbook. Why? I can use built-in search and sort routines and the database can be easily accessed by both VB and Delphi. I am finalizing several simple logging programs using both VB and Delphi. I hope they will be the basis of a possible future QST article or book that will discuss programming and a logging program, among other things. The article will show how to use text files, simple binary files, Access and dbIV to store the log.

Part of the 'secret' of writing a logging program is to establish a database template for the log information you'll capture before you start coding your program. The database would contain fields for time, date, station, RST....whatever you want to log. I include several 'dummy' fields in the template for expansion. If you code your program and discover you don't have enough data fields, you are looking at a major program rewrite. With dummy fields, you use more space in your database to store data in return for future flexibility!

Part 3 of the QST article directs you to articles in the literature that describe how to write a logging program in BASIC. The resources in Listing 5 should give you ideas and some nifty example code (Listing 5 is actually in the ARRLWeb download). For Access and dBASE, consult the sections in the book you use to help with your programming that discusses databases. In its simplest terms, a logging program is just a database with a lot of fancy attachments. It will require lots of manual code if you use a text or binary based database and much less with a 'standard' database like dBASE or Access. In a way, you trade one kind of headache for another depending on which programming route you follow.

 

THE FREE DELPHI PROGRAM MENTIONED WOULD NOT DOWNLOAD. HOW CAN I GET IT?. The "free" software is no longer available. The company decided to discontinue its free version.

Alternatively, consider the free "Lazarus" compiler or the free version of Microsoft Visual Studio.

 

I CAN'T DOWNLOAD THE LARGE DELPHI OR VISUAL BASIC PROGRAMS MENTIONED WITH MY SLOW CONNECTION!. Look for one of the suggested books that have a working version of VB6 on CD at your library or used book store. My local library has 4 different books that have a disk with a copy of either a VB5 or VB6 demo. These work - I used one demo to confirm that my VB5 programs load with VB6. A semi-regional book chain called Half-Price Books here in Dallas has had copies of the some of the books in the Book List recently. They also have other books not mentioned in the article that have a disk (and versions describing VB5) at prices between 3 and 15$. I am aware of a book devoted to Delphi that includes a copy of Delphi 4 Standard but only saw it in a second hand store once. Any of these will get you an inexpensive introduction as described in the article.

 

I WANT TO PROGRAM THE COM PORTS (SERIAL PORTS). WHAT DO I NEED? The professional versions of Visual Basic have a control called MSComm. It will allow you to easily program the ports for most functions. Visual Basic standard and both the standard and professional versions of Delphi DO NOT have a communication control. With Delphi, I have successfully used a free control called TComport referenced on page 37 in Feb. QST and recently the excellent and free TurboPower Async Professional. (see the Recent News to see how to get it!)

Several vbx and ocx controls and a DLL are available that I believe can be used with Visual Basic standard. I don't use the VB controls/dll nor do I have a link reference so you're own your own to search the net. The article by W0DZ in QST (Feb 2002, pp. 33-35) mentioned in my article uses the MSComm control. I think the complete code can now be downloaded from the Internet. Search for W0DZ and Slide Rule Dial or something like that. His code works nicely. He did a great job!

It is possible to program the serial ports using ANY of these products using Windows API calls -- it requires a lot of manual programming to do anything fancy. However, turning on and off a switch (the DTR line for example) is not hard. I have not closely looked at the Delphi code described by Mark Erbaugh, N8ME, in his article in the Sept/Oct 2002 QEX where he described an ActiveX control to control the Ten-Tec Pegasus. It appears he wrote his own Delphi 5 code for serial communication (included in the following download). His code is at http://www.arrl.org/qexfiles under the name 0209ERBAUGH.ZIP . Mark's article is called "Customize the Ten-Tec Pegasus--Without Soldering."

 

WILL DELPHI V5.0 PRO RUN ON MY WINDOWS XP FOR HOME? I had some experiences with XP where some software was not compatible but D5 is OK. I know that the VB6 trial software that comes with a VB6 book by Reselman would not load on my Xp computer but it loaded fine on another computer with Windows 95. Visual Basic 5 Pro loaded just fine on Xp so I believe that the Xp problem is with that particular trial edition. Whether there are problems with loading other software on Xp or not, I don't know. Since a reader loaded the VB6 trial that comes with Sams "Teach..VB6 in 21 days" OK on his Xp, other versions are probably alright. My copies of Delphi 1 and Visual Basic 3 are on another computer with Windows 95.

 

 

MY INITIAL INTEREST WITH HAM RADIO STARTED WITH PACKET...WHEN I GOT MY TICKET AND STARTED PLAYING AROUND WITH IT, I WAS SORELY DISAPPOINTED WITH THE INTERFACES, FUNCTIONS, FEATURES, ETC. I'M INTERESTED IN DOING SOME CUSTOM PROGRAMMING, INTERFACE AROUND THE RS-232 INTERFACE AND WAS WONDERING WHAT YOUR OPINION(S) ARE WHETHER VB WOULD BE A USEFUL TOOL TO DO THIS. I CAN PROGRAM IN C PLUS ABOUT A DOZEN OTHER LANGUAGES BUT FOR THIS PROJECT WANT TO WORK AT A HIGHER LEVEL AND FOCUS ON THE GUI. VB, with the MsComm control (read VB Pro), does a nice job with serial communications for me. Some people do not like the MsComm control. The N1MM VB6 Pro logging program mentioned in Table 4 in the article uses another communications control that I believe is in the public domain.

I have programmed packet applications using VB with MsComm and Delphi with a comparable control. The programs work flawlessly with my PK-232 and the TNC on my TS-2000. I have RTTY capability with the PK-232. Its command set uses text commands for both modes and other modes I have not attempted. All one really needs to command a TNC is a made to purpose terminal program and a knowledge of the required commands. I wrote several related programs to strip DX spots off our local packet cluster (using both VB and Delphi) and a program to plot APRS location data on a map. My TS-2000 is controlled with programs written with both VB and Delphi. Some of the source code for these projects will appear in another article or perhaps in a book later this year. I intend to put some code on this site in April to show how to get started on projects like this in either VB or Delphi.

It's not reasonable to expect to write a program to decode and transmit PSK or one with lots of real time number crunching with VB. VB is too slow for this type of programming. Delphi might work fine although I haven't tried signal processing in native Delphi code. VB is fine as an interface with the DLLs mentioned in the QST article or with a program or DLL you might program in C+ and link to with VB. If you require super speed, considering your programming background, you might think about Borland C++ Builder (or Visual C++ which I am less familiar) if the GUI is all you are interested in. C++ Builder uses the 'same' controls as Delphi.

back to top


Other

 

QEX ARTICLES

 


 

May/June 2006

"A Talking Logbook with Rig Control:
The artificial speech synthesis capabilities of Windows PCs assist the visually impaired with logging and basic rig control" appeared in the May/June 2006 QEX.
http://www.qsl.net/wb5kia/QST/qex2006.pdf

 

November/December 2006

This is the 'companion" to "Command and Control:
Talk to Your Radio and Maybe it Will Talk Back to You" which appeared in the November 2006 QST.

 

 

 

September/October 2004

The September/October 2004 QEX Magazine contains an article entitled "Build a Super Transceiver---Software for Software Controllable Radios" The article describes how homegrew software can enhance the performance of a PC controllable radio. The article shows how to enhance a Kenwood TS-2000 and explains how the techniques apply to other radios. If you missed the QEX article, the complete article is available in pdf format in the zipped file here.

QEX PDF File
The pdf file is "Reproduced with permission. Copyright ARRL, 2004, all rights reserved.
This material originally appeared in
QEX: Forum for Communications Experimenters (
www.arrl.org/qex)

Please do not post this pdf file on other sites. Link to this one.

This is a penultimate copy of the article used by the editors for quality control. Some of the code in the listings is incorrectly formatted as are several paragraphs on the final page. These were corrected in the final copy that appears in QEX.

 

September/October 2002

The September/October 2002 QEX Magazine contains an article entitled "Amateur Radio Software: It Keeps Getting Better." The article describes DOS and Windows tools radio amateurs will find useful to program their radio projects. The article tells where to get affordable compilers, what can be done with them to develop software to use in your ham shack and lists a lot of programming resources. If you missed the QEX article, the complete article is available in pdf format in the zipped file here.

QEX PDF File
The pdf file is "Reproduced with permission. Copyright ARRL, 2002, all rights reserved.
This material originally appeared in
QEX: Forum for Communications Experimenters (
www.arrl.org/qex)

Please do not post this pdf file on other sites. Link to this one.

back to top

 


WB5KIA



LOGBOOK


You May Want to Visit one of the Useful Sites Below
Borland/Delphi
The main Delphi site.

Microsoft/VB
Microsoft VB developer site

PSK ActiveX
PSK Core DLL
PSK Resources

Maps
Digital Maps and Coordinates

ARRL QEX
QEX Binary Files

ARRL QST
QST Binary Files-link no longer works @ 2010




































































































































































































































































































































































































































































































































































































































































































This Site Designed by Francis Gradijan, KD5HTB © 2003  

Last updated 1/3/2011

All materials, unless otherwise stated, on this site are Copyright © 2003 by Stephen J. Gradijan, WB5KIA

Any programs and their documentation or code snippets are offered without warranty of any kind. WB5KIA, makes no claim as to their suitability for any purpose. These programs are AS IS, and changes may be made to them at any time without incurring any obligations to former users. The entire risk arising from the use of these programs remains with the user.

HTML code designed by KD5HTB. For web-designing at a low price contact KD5HTB at

Comments and report broken links to: WB5KIA