the AINA SURVEYOR for the HP-48GX
version 1.20
(non-shareware)

Last Rev. 07/26/2004

PREFACE
AINA is a Hawaiian word which approximately means "land."

The AINA SURVEYOR is an awsome and unique set of programs for land surveying.

INTERESTED?
It is an unfortunate thing that a "DEMO" version is what is provided here instead of a traditional "shareware" version where you could get a full feel of the program, but with the advent of really good decompilers, even the novice could readily defeat most shareware encumberances. However, a demo version does provide a good taste of the layout, enough to decide "LIKE" or "NO LIKE" which is quite reasonable. If you are interested in purchasing the full version of this program, please drop me an email or send me a postcard.

Contact me at:

CONTENTS

LEGAL STUFF
COPYRIGHT AGREEMENT (DEMO)
This is shareware and you are free to distribute it as long as it is distributed unchanged and in its entirety. And hey, NO DISTRIBUTING THIS FOR PROFIT!!!!!!!!

Reverse engineering, decompiling, or hacking into these programs is also STRICTLY PROHIBITED. DON'T do it!!!

(C)COPYRIGHT 2003 JASON LOOK All rights reserved.
LANAAU LLC

CUSTOMER SUPPORT
There is NO CUSTOMER SUPPORT. However, if you find bugs or need a little help, please contact me.

Contact me at:

WARRANTY
There is NO WARRANTY. These programs and manual are not guaranteed to be free from defects. Use them at you own risk. The author of these programs shall not be held responsible for any loss caused by these programs or their use, incidental or otherwise. Use of these programs constitutes your agreement to accept these terms.

INSTALLATION
There are two editions available in addtion to the Demo, BASICS and ETW.

BASICS should be able to run from any normal port. You can even load it to a HP-48GX without a RAM card and still have enough room for about 700 points.

ETW has everything BASICS has, but it includes the ETW which is a concise, easy to use, data-collector. ETW requires the full 128K, you must have a merged RAM card to load it. The ETW edition MUST run from an uncovered port, that is port 0 or port 1. So your RAM card must be in slot 1. Loading the library to a covered port will run the risk of a memory reset!!!! And, it'd be really slow. If installing this edition, don't forget to merge the RAM card first.

If you are upgrading or replacing an earlier version or perhaps the demo version of this, remove it first. See section on Removing Program.

  1. Transfer AINASURV.DEMO to your calculator's HOME directory. See your HP-48 owner's manual (chapter 27) for more and better details on how to do this. I use KERMIT if I'm using DOS and I use HYPERTERMINAL or TeraTerm if I'm using Windows. There is other software available that makes this task easier if you do transfers often. HPCOMM is one of them, and it's free and can be found on www.hpcalc.org. And there is lots of additional reading to be found at http://www.columbia.edu/kermit/ and http://www.area48.com/hppc.html.

  2. Press [VAR] to display the variable menu to reveal the menu key of the file you just transferred.

  3. Press the menu key that corresponds to the file you just transferred to the 48. It should be |AINAS|.

  4. Enter onto the stack the number of the port in which you wish to store the program. So, if you wish to store the program file to the on-board memory, then you'd put it in port 0. If you want to run it from a RAM card (unmerged) in slot one of your calculator, then it would be port 1. If you want to put it in a RAM card in slot two of your calculator, then it would be 2 or greater depending on what RAM card you have and which bank you wish to use. So say we want to load it to our on-board memory, you'd press [0].

  5. Now, with the port number sitting on the stack, press the softkey |INSTA|. The 48 should power off.

  6. Power the 48 back on again. The screen should blink when powered up again.

  7. After the 48 comes back to life, key in [alpha] J2003 [ENTER] to run the installation program.

Installation should now be complete, and your screen should look something like this:

At this point, there are three settings you should change to suit your situation: azimuth, station display, coordinate entry/display. There are other things you could also change, but these are the main ones. You can always come back to this screen from the Utilities menu.

Press |EXIT| when you are finished adjusting the settings to your situation, and you're all ready to go. Of course, if you loaded the ETW edition, I recommend you also set your date and time on the HP48 since the log file notes when you create it.

HOW TO USE
The concept is simple. You press [CST] to get to the main menu, then press one of the softkeys to change to the program's sub-menu, enter your variables, then solve for whatever it is you're solving for. To get back to the main menu, just press [CST] again.

Now, the softkeys are those labels above the top six keys of the keyboard. The labels correspond to the keys below them, and pressing the key will do what is indicated by the label.

When you press [CST], you access the main menu for the surveying programs. There are more than six programs available in the pack, but there are only six softkeys, thus there are several menu pages, and you press [NXT] to get to the NeXT page. When you run out of pages pressing [NXT], it returns to the first page, like a circle.

There are several strategic programs and functions assigned to the keyboard. The combination of softkeys and assigned keys makes things really easy to use.

Entering variables is normally done from the stack, but some programs will have screens or prompts for entering things. These occasions will be obvious and intuative. When entry is made from the stack, the variable or variables required are expected to be on the stack in the appropriate order when the action key is pressed. Now this may sound strange to not be prompted for data or to not have a fill in the blank type of screen, but when you are working a set of plans or maps, this scratch pad technique is very effective. Once you understand, you'll find it very easy.

  • Entering Coordinates
    When a program expects a coordinate from the stack, there are several forms that are allowed. The first form is dependent on how your settings are set. If you have the display/entry set to N,E then you would enter a coordinate like this.

    When it's set the other way E,N then you enter it the other way.

    Now the next way that programs will take coordinates off the stack is in the form of a complex number. You know, that thing with the parenthesis. No matter what the settings are, in this form it's always (north,east). This form is usually the output from a program that solves for coordinates.

    Now the third form is a recalled point. A recalled point includes information like an elevation and description. Most of the programs only use the north and east components. This form is also always the same reguardless of settings.

  • Entering Elevations
    When a program expects an elevation on the stack, there are only two forms that are accepted, a number or a recalled point. In the case of a recalled point, the elevation is pulled from the elevation field.

  • Entering Angles and Azimuths
    Unless otherwise specified, angles and azimuths are entered in d.mmss form.

  • Entering Bearings
    You are only given one style of entering bearings. A four quadrant bearing is repesented with a single number. The first digit represents the quadrant number and the rest of it represents the bearing angle. The quadrant numbers are as follows: So 935.0304 would be N35-03-04E. 1.0345 would mean S00-03-45W, and so would 10.0345. Kind of flexible about the leading zeros.

    Since many times you might add or subtract to bearing angle, improper bearing angles are allowed.

  • Entering Stationing
    Stationing is entered as a number. Enter it as the unit, not station + unit. For example, 1+00 would be entered as 100.

    EXAMPLE ON HOW TO USE
    These programs for the most part operate from the stack, in stack mode. I personally find this to be much easier for calculating most things. Some programs will take over the calculator so that it doesn't act like a calculator. Most times when this happens, you should be able to tell. It should be obvious, and the appearance of |EXIT| or |CANC| as one of the softkeys is a sure clue. The file selector is a prime example of this.

    Before we begin, let's set the display to four places since any more than that is just too much to look at. I've assigned FIX to [EEX] since it's such a pain to get to. Press

    to set the display to four decimal places.

    Now, let's start our example. Press

    to bring up the main menu. At the top says M A I N with a triangle looking thing in the right top corner. M A I N is the title and the triangle thing is signifying that there is more than one menu page available for this, and you can page through with [NXT]. So go ahead and press [NXT] a few times just to see what I mean. Notice you can still see the stack. The calculator part still works. Go ahead, add two numbers.

    Now let's solve for something. Let's solve for a triangle, so if |TRIAN| isn't one of the softkeys showing, keep pressing [NXT] until it is. Then press

    to get to the triangle solution menu. Then press to get to the Side Side Side menu. Let's solve for a triangle with sides 3, 4, 5. You'd key in and you'd get a display like Simple enough?

    Now let's solve for something that uses coordinates. Let's solve for the direction and distance between two coordinates. Press

    to get back to the main menu. Then since |INVER| isn't one of the softkeys showing, press to get to the next menu page. And of course, press to get to the Inverse Azimuth menu. If the softkeys don't look like this, then press [NXT] to get to the page that does.

    Now, let's determine the direction and distance from the coordinate 200.01,450.3 to 209.8,99.99. Now this could be North/East or East/North depending on how you work and what the settings are. That's why I am leaving it ambiguous, the concept we are trying to learn is how to enter coordinates. You could enter and solve like

    As you can see, the coordinates were sucked off the stack and stored to the program. The variables aren't volatile so, they remain in force until you change them. You didn't even need to enter them in that order, you could have entered CRD B first.

    In this case the answer was left on the stack, so press

    to update the display and see what's on the stack. Many of the programs will leave an answer on the stack for possible use elsewhere. Most will have tags to give you a hint what they are. They are ordinary variables and can be used as you would use any other variable. Unlike older calculators, the HP-48 series stack will have levels as many as memory will permit. So you're going to have to clear off the stack every so often or you'll run out of memory. Pressing [DEL] will clear off the stack.

    Now for an example of a program that returns a coordinate as a solution. Let's get a coordinate given a direction and distance. Press

    to get to the main menu. Then press to get to the Traverse menu. Let's say we want to start from coordinate 123.456 789.123, you could enter it like this and then you could press to verify everything is as expected, but you don't have to. Now let's solve for the direction and distance 123-30-40 @ 99.99 and the solution is displayed. Your particular solution is going to depend on how your settings are set. But from this we learn that angles are entered in d.mmss format. Now press to update the display and look at the answer left on the stack. Why it's the coordinate in parenthesis. When it's in that form, it's always (north,east) reguardless of the settings. It can be used anywhere you'd normally expect to enter a coordinate from the stack. It's also an ordinary object, so you can press [ENTER] and push another copy onto the stack, you could press [DEL] and delete it from the stack. You can even store it in a variable or a file.

    Now, let's solve for a vertical curve. Press

    to get to the main menu. If |VC| isn't one of the softkeys, you repeatedly press [NXT] until it is. You shouldn't need too many presses, afterall, there are only three pages in the main menu. Once, it's showing as one of the softkeys, press Just like the main menu, there is more than one menu page to this program, and you use [NXT] to shuffle through them. The softkeys you use to define your vertical curve are on the second menu page, so press and the softkeys become: You use these keys to enter the variables that define your curve. Let's say we have a vertical curve like this: You could key it in like this: You do not need to enter the variables in any particular order, and the variables remain in force until you change them. This means that if you make a mistake, you don't need to re-enter all the variables, only the wrong ones. You can also define your curve for future use because they aren't shared with other programs like is often done with HP-41 programs. They don't go away when you turn off the machine either. Now, press to get back to the first menu page. |VIEW| should be one of the softkeys. Whenever you see |VIEW| or |>VIEW| as one of the softkeys, its meaning is this: "VIEW the SETUP" for the sub-menu you are at. Pressing it will show you the status. It is useful for verifying that you entered things correctly, or just to see what the setup is so that you don't needlessly re-enter. For those seldom used programs, it can help you remember what the softkeys mean. So, now press to review what you've entered. Since you've undoubtedly entered everything correctly, you can now solve for elevations along the curve or even the sag/crest (turning) point if there is one. Let's solve for the sag first. Press and the answer is displayed. In addition to the sag point station, the grade in, grade out, length, and elevation at the sag point are displayed. In this case, the sag point station is 2+63.64. Now, let's solve for the elevation at station 4+00. Key in and the solution is displayed and left on the stack. It is most likely you will want to know these elevations at regular intervals along this curve, maybe every 25, and over several stations that can get tiring. So there's a shortcut. Let's try it with 25. Enter which sets the increment to 25. This is the increment the stations will be advanced by with |STA+| or retarded by with |STA-|. Unlike, the variables used to define your curve, the increment, and station are global. So, changing them here changes them anywhere they are used. So, try it out. Press

    Some of these programs generate information which could be useful in other places or with other programs or for additional calculations, thus some of the programs leave answers on the stack. This "scratch pad" approach is surprisingly useful. Press

    to update the display and you'll see the answers we generated sitting on the stack. In this case, the numbers are tagged with the station, but that's okay. You can still do math or enter them in another program. To demonstrate this, press

    I think that's enough to where you get the idea.

    USER DEFINED KEYS (Key assignments)
    The user defined keys are very important to know about. When the user keys are active, you'll see USER showing in the upper-right of the screen. Sometimes, you have to turn it off, or sometimes it gets turned off, like when you warm-start the 48. Anyway, with this in mind, you should know how to turn it on and off. You press [/->][alpha] to toggle it on or off. If flag -61 is clear, then you may need to key it an extra time.

    The key assignments are:

     KEYSTROKES     BRIEF DESCRIPTION
     ==========     =================
          [MTH]     STO ELevation, expects elev. in level 2 and pt.#
                        in level 1. IGNORES OVERWRITE PROTECT!!!
    [/->] [MTH]     PRINT mode, toggles IR print ON/OFF.
          [PRG]     RCL point, expects pt.# in level 1, recalls point
                        to stack.
    [/->] [PRG]     Filer, starts up coordinate file selector.
          [CST]     Main menu, brings up main menu.
    [/->] [CST]     your custom menu, brings up YOUR custom menu.
          [STO]     STO point, expects a coordinate, stores to
                        coordinate file.
    [/->] [STO]     NEXT point (to sto), prompts you for next point to
                        store at.
          [EVAL]    bear<>azim, brings up conversion menu.
    [/->] [ENTER]   DUP2, dups level 1 and 2.
          [y^x]     file EDITOR, starts up coordinate file editor.
          [EEX]     FIX, expects the number of fixed decimal places to set
                        the 48 to.
    [/->] [1/x]     INV 1st, toggles INV 1st(for stake notes) mode ON/OFF.
    [/->] [/]       DMS/
    [/->] [x]       DMSx
    [/->] [-]       DMS-
    [/->] [+]       DMS+
    [/->] [0]       ->DEC
    [/->] [.]       ->HMS


    Keyboard with template installed.

    A keyboard template makes this easy, but HP stopped selling their write-on template kits, so I made some keyboard templates and they turned out as pictured above. They are not just useful for this set of programs, you can also pencil on them making them useful for your own programs as well. These templates are die cut from 0.010" thick vinyl and lettering is silk-screened with two colors. Contact me for pricing and availability.

    Notes:

    COORDINATE FILES AND THE FILE SELECTOR
    Coordinate files are used to store and recall coordinates. They go by point numbers. Each point has a north component, east component, elevation, and description field. You can edit a coordinate file, or just review what's in the file. You can export it to computer and use it with other software or just print it out.

    Most of the programs don't require you to have a coordinate file, but they do make using some programs easier.

    The File Selector is used to graphically create, choose, delete files and directories. You start it up with [/->] [PRG] or you can start it up under the Utilities menu if you can't remember that. Files you select for use are only accessed when you are in that directory. This feature of local access allows you to create directories for individual projects.

    You are allowed to use "control files" with this software. Control files as applies here are read-only coordinate files which are useful for putting recurring points in. It's well suited for storing traverse and baseline points. Here's how it works, when you try to access a stored point, like when you recall a point to the stack, the program will look to see if the number falls in the range of the active file. If the number requested falls below the lowest point number of the active file, it will check to see if falls in the range of the control file. If found, all's well. So you see, you want to have the lowest point number in your active file to be above the highest point number in the control file. Can do?

    How do you create a control file? Well, it's just an ordinary coordinate file, all you have to do is select it as the control file. Under the Utilities menu, you can get access to a menu where you can select or deselect the control file. Also, if you are at the ETW START MENU, you can also go to the "Control, log file" screen and select or deselect one there. You may have noticed that the selector for the control file won't let you change directory or delete files. This is by design, it's not a bug.

    EXAMPLE ON USING COORDINATE FILES
    I guess the first thing you want to do if you are going to use a coordinate file is to create one. So start up the file selector, key in

    and the file selector should start up We want to create a file, so press When it asks for file or directory, press and a screen will come up where you fill in the name of the file you want to create. It will automatically put the .CR5 extension on for you since one of or goals is to exchange coordinates with other software. Please note that the program will allow you to enter a name longer than the normal eight characters. If you do plan to exchange coordinates with other software that is strict about this, you may need to hold yourself to eight characters. I tend to use the extra characters, which is why it's allowed here.

    Once you've keyed in the name and pressed [ENTER], and a screen to enter the first point in the file will appear. Enter your information for the point. Just fill in the blanks and press |CREAT| when done. To enter the description field you need to activate the alpha-lock. You press the [alpha] key to do that. If you make a mistake, don't worry, you can just edit it later.

    If you are using the ETW edition, you will also be asked if you want to start a log file. A log file is mostly for the ETW, but will also log things like storing points and setting changes.

    Anyway, by this point you should be back at the file selector screen but now the name of the file you just created will be in curly braces at the top. This is showing that it is the active file in this directory. When you create the file, it also makes the assumption that the next point you want to store at is the point after the number you entered as your first point. Press

    to get out of the file selector.

    You are now ready to do stuff with your coordinate file. Let's recall that point you made the first point in your file. Just enter the number on to the stack and press [PRG] which has RCLPT3 assigned to it. Your point should be recalled to the stack and the display should show the details. So like if your want to recall point number 1, you'd key in

    And your screen might look similar to this

    When you recall a point, it's left on the stack, if you press

    to update the display, you would have something like this on the stack That's what they look like when recalled to the stack. It came from point number 1, so it's been tagged with a "1" and the rest of it contains information like north,east,elevation, description. This will be accepted anywhere a coordinate or an elevation is expected.

    Again, it's just an ordinary HP48 object and can be manipulated as such.

    Now, if you wanted to do the opposite, and store a point, you just need to have a coordinate on the stack in one of the forms mentioned under How to use. If you still have the recalled point on the stack, you can just press [STO] and it should store the coordinate, description and all. If you wanted to store 345.444, 9988.01 as the next point, you'd key in

    and it should store the point. The settings would determine if that was north over east or east over north. If you had it set to prompt you for an elevation, since it is a 2-dimensional coordinate, it would have prompted you for an elevation for that point. If you had it set to prompt you for a description, it would also prompt you for a description for that point, otherwise it'll just use whatever happens to be in the description buffer at the time.

    Want to scan or edit the file? Just press

    to start up the editor. It should not need any explanation on how to use. when you are finished.

    If you set it to AUTO-STORE, when programs solve for coordinates, it will automatically store them as they are generated. Here too, settings will determine what you will be prompted for. I think that's enough. I know you don't like reading this stuff, and I don't like writing it.

    THE PROGRAM DESCRIPTIONS

  • Inverse Azimuth
    This program solves for the direction and distance from A to B. There are two menu pages for this.

    One page, takes point numbers and so it requires that there be an active coordinate file. Control files apply here and because of this, coordinates are evaluated when you press |SOLVE| so changes to the coordinate file will be reflected. The picture below is what this looks like with a solution.

    |PT A| expects a point number.
    |PT B| expects a point number.
    |DISPL| toggles between azimuth/bearing solution and display.
    |PT-| decrements point B and solves.
    |PT+| increments point B and solves.
    |SOLVE| solves for direction and distance from point A to B.

    The other menu page takes only coordinates. It is sweet and simple, and much to my surprise, it's preferred by the folks who give me feedback. Because I have no way of telling which one is more important to you, the last page you use will be the first page the next time you come back to this menu.

    |CRD 1| expects a coordinate.
    |CRD 2| expects a coordinate.
    |DISPL| toggles between azimuth/bearing solution and display.
    |SOLVE| solves for direction and distance from coordinate A to B.

    You have a choice of bearings or azimuth for the solution, and you can toggle between the two with |DISPL|. Answers are left on the stack for possible use elsewhere.

  • Traverse
    This program calculates coordinates given a direction and a distance. There are three modes of directions to choose from, Azimuth, Bearing, and Angle-right. Basically, you enter the coordinate you're at with |@POIN|. Then you enter your direction and distance with either |HD2TL| or |SIDE|. |HD2TL| "HeaD to TaiL" will calculate the resulting coordinate and make it the new "@POINT." |SIDE| will only calculate the resulting coordinate without moving you up.

    |INV2| is in all three modes and what it does is it expects a coordinate and returns the direction and distance from the @POINT to the coordinate you just gave it. The direction displayed and left on the stack will be the same as the mode you are in.

    |STA| is in all three modes, and what it does is toggle station display ON/OFF. When it's toggled on, your shot is related to the baseline as defined under the Baseline Segment program.

    This program is 2-dimensional, but it's recognized that many times you're going to need to reduce down to two dimensions, so there is |Z&S->|. It takes a Zenith angle in level 2 and slope distance in level 1 and returns the HD and VD. It is straight trig and does NOT take into account things like curvature or refraction. Don't like my |Z&S->| function for reducing your zenith angle and slope distance? You can supply your own program for this. Just store your program with the variable name MYDIST, and if you are in a directory which will access it, your program will be launched by pressing |Z&S->|. It's a great place to implement your curvature and scaling. I suggest putting it in the HOME directory if you use the same one for all cases.

    azimuth mode:
    This mode works in azimuth. It's very useful. For computational purposes, it will take improper azimuths.

    |>VIEW| view current settings.
    |@POIN| expects a coordinate and makes it the point to calculate from.
    |Z&S->| expects a z-angle in level 2 and a slope dist. in level 1, returns HD and VD.
    |INV2| expects a coord. and returns the azimuth and dist. from @POINT to coordinate.
    |HD2TL| expects azimuth in level 2 and distance in level 1. Moves result to @POINT.
    |SIDE| expects azimuth in level 2 and distance in level 1.

    |STA| toggles relating shot to baseline ON/OFF.

    angle-right mode:
    This mode is useful for times when you didn't set a correct backsight azimuth, or you just wanted to work with angles. What it needs to know, is what your backsight azimuth is and what you determine to be your plate angle at the backsight. If you move forward with |HD2TL|, then your forward azimuth is carried forward for you.

    |>VIEW| view current settings.
    |@POIN| expects a coordinate and makes it the point to calculate from.
    |Z&S->| expects a zenith angle in level 2 and a slope distance in level 1 and returns HD and VD.
    |INV2| expects a coordinate and returns the direction and distance from @POINT to coordinate.
    |HD2TL| expects angle in level 2 and distance in level 1. Moves result to @POINT.
    |SIDE| expects angle in level 2 and distance in level 1.

    |STA| toggles relating shot to baseline ON/OFF.
    |CRD->| expects a coord. then calculates and stores the BS azimuth.
    |BSAZ| expects a backsight azimuth.
    |BSPL| expects an angle, the actual plate angle to the backsight.

    bearing mode:
    This is useful for working plans and maps in four quadrant bearings. You enter bearings as described under HOW TO USE.

    |>VIEW| view current settings.
    |@POIN| expects a coordinate and makes it the point to calculate from.
    |Z&S->| expects a zenith angle in level 2 and a slope distance in level 1 and returns HD and VD.
    |INV2| expects a coordinate and returns the direction and distance from @POINT to coordinate.
    |HD2TL| expects a bearing in level 2 and distance in level 1. Moves result to @POINT.
    |SIDE| expects a bearing in level 2 and distance in level 1.

    |STA| toggles relating shot to baseline ON/OFF.

  • Baseline Segment
    This is not a "do all" program, so setup is fast and it's easy to check.

    So what's it do? This program solves for various things relative to a baseline segment. Once you define it, you can solve for coordinates given a station and offset, or you can solve for a station/offset given a coordinate. You can even go one step further and get togther with the Traverse program and have it display the direction and distance as well as the coordinate to a station/offset (great for stakeout notes.) This feature is called "Inv-first," and it's one of the assigned keys, see USER defined keys. You can toggle it on and off with [/->] [1/x], or you can toggle it under "settings" of the Utilities menu.

    At the Traverse menu you can press |STA| to toggle another feature, which for each |HD2TL| or |SIDE| you enter, the station/offset of the shot will be displayed. Pretty cool, huh.

    Now wait, there's more. You can view statistics about the baseline you have defined. These are things like PC station, PT station, curve data, and so on. This is very very useful for checking or verifying values against plans and maps.

    And well finally, it also solves for the coordinates of the key points like radius point, PT, ST, or whatever else may apply.

    Defining the baseline segment is easy. And, where ever you change it or find a reference to it, it's the same one. So if you change it in one part of the program pack, you've changed it in any part of the program pack that uses the baseline segment, even in the ETW.

    Now here's the concept of how to define the baseline. First let's look at the variables we use to do it.

    We have the coordinate of the first key point, the station at that coordinate, the azimuth going in, the azimuth going out, the radius of the curve, and the length of the spirals. At first you may wonder how to use this, but when we draw a picture, it makes perfect sense. Let me mention here that your screen might show the North and East components in the reverse positions depending on how you have the display set. This is why the coordinate fields in the examples are left ambiguous. No matter, the concepts are the same.

    The coordinate is of the first break point or in the case of a baseline segment which is just a straight line, it's a point on the line where you know the station. For a tangent-curve-tangent situation, the point would be the PC. For a situation where there are spirals, it would be the TS. When your segment is two straight lines, then the point would be the angle-point.

    "Station@" is of course, the station at that first key point. I don't know what more there is to say about that except to say that you enter it as the unit and not station + unit. For example, 1+00 would be entered just as 100.

    The "azimuth in" is the azimuth of the tangent going into the baseline, and the "azimuth out" is the azimuth of the tangent going out. If it is a baseline where it is just a straight line, you may have the in and out tangents the same azimuth. Having the in-going tangent and the out-going tangent 180 degrees from each other is not a valid definition and you'll get an error when you try to use it.

    A new feature with 1.08 is the option of entering two point numbers in the azimuth in and out fields which will then evaluate them to an azimuth if possible. When not possible, it just reverts back to the previous entry. To use, instead of entering an azimuth, enter the first point number then * (the multiply key) then the second point number. So for example, if you wanted the direction to be from point 25 to point 100, you'd enter it as 25*100. Thank Adam Wellington for thinking up such a fine feature.

    The radius should be self-explanitory. If there is no curve, and there are no spirals, then set the radius to 0. The program will just see it as a tangent-tangent situation. If you are defining a spiral scenario, a radius is required as part of the spiral calculation. You need it to define your spiral. Sometimes a spiral will be defined with a spiral angle instead of a radius, or the radius is given in terms of degree of curve or degree of arc. In these cases, you'll just have to go to the Curves menu and solve for the radius first.

    The spiral length is the length of each spiral, and in conjunction with the radius, determines the characteristics of the spiral. If there are no spirals, just set the length to 0.

    Let's look at this first example. The segment is just a straight line, so the coordinate is just a point on the line where you know the station. In this case, you should make the in-going and out-going tangents the same azimuth. There is no curve or spirals, so we set the radius and spiral length to 0.

    Now if your baseline segment is two tangents going different directions, then the key point would be the "PI" or "kink" or "angle-point." I realize people have different terms for the same thing, so please forgive me if I'm not speaking your dialect. But that's where the pictures come in handy.

    If your baseline segment is a tangent-curve-tangent, then the first key point is the PC. This is perhaps the most useful scenario as well as the easiest to program. If you press |STATS| after you define this baseline segment, you can compare the stationing as well as the curve data.

    If the baseline is a tangent-spiral-curve-spiral-tangent or a tangent-spiral-spriral-tangent, then the first key point would be the TS. You enter both scenarios the same way, but you need to enter the radius really precisely if you want it to show up as Spiral-Spiral, and not Spiral-Curve-Spiral with a really tiny curve. As with the tangent-curve-tangent scenario, |STATS| will display statistics for you to compare with the plans.

    Notice you will also be shown aspects of the spiral. The notation used is taken from Thomas Hickerson's book on route surveying. Delta is the overall delta. Delta C is the delta of the simple curve. Theta S is what he calls the "spiral angle." Ts is the "tangent of the spiral" which is the distance from the TS to the overall PI. Es is the external. p and k are the shifts from an unspiraled curve which are only interesting to the designers, but useful as a check.

    The biggest weakness to defining the baseline segment like this is the lack of defining the ingoing spiral and outgoing spiral with different lengths. It is rare that it would happen. Not only would it be rare, but the additional code to solve for it would be substantial, so I left it off.

    Got it? Well, one final detail I should mention. Since this is a rather general way of defining a baseline segment, one naturally should realize that if you switch azimuth modes after defining your segment, that everthing changes since azimuth was used to define it. This should not be a problem unless you plan to change back and forth. What the program does about this situation is to mark the definition as unevaluated, and then it evaluates it the next time it refers to the baseline. Any doubts, you can just start the definition program up and it will reevaluate it when you exit it.

    IMPORTANT!!: When you press |DEFIN| to define your baseline segment, it checks to see if there is a coordinate on the stack in any of the normal forms and if it finds one, it enters it as the coordinate in the definition. This is useful for recalling coordinates from a file that you want to enter into the definition. So be careful if you happen to have important numbers sitting on the stack when you decide you want to define a segment.

    |INCR| expects an increment to change station by.
    |STA-| retards by increment and solves.
    |STA+| advances by increment and solves.
    |O/S| expects an offset, the offset to be solved for, use a negative value for left.
    |STA| expects a station, the station to be solved for.
    |SOLVE| solves for coordinate.

    |VIEW| view baseline parameters.
    |DEFIN| initiates a program to define baseline segment. If a coordinate is found on the stack, it will store it as the first break point. When you exit the program, the various aspects of the baseline are calculated and stored.
    |BRKS| toggles ON/OFF including key stations when using STA+ and STA-.
    |STATS| displays useful statistics about baseline. Very useful for verifying with the plans.
    |KEY| solves for the key points like radius point and PT.
    |O/S?| expects a coordinate, solves for the station and offset of the coordinate.

  • Arc/Arc Intersect
    This program solves for the intersection points of two arcs. Once you've entered your variables, press |SOLVE| and a screen will appear to verify what you've entered and allow you to choose which solution you want. |LEFT| will give you the intersection on the left of the line from radius point 1 to radius point 2. |RIGHT| will give you the intersection to the left. And |BOTH| will give you both.

    |R.PT1| expects the coordinate of the radius point of the first arc.
    |RAD 1| expects the radius of the first arc.
    |R.PT2| expects the coordinate of the radius point of the second arc.
    |RAD 2| expects the radius of the second arc.
    |INTER| returns you to the intersection menu.
    |SOLVE| solves for intersection.

  • Arc/Line Intersect
    This program solves for the intersection points of a line and a curve. Once you've entered your variables, press |SOLVE| and a screen will appear to verify what you've entered and allow you to choose which solution you want. |NEAR| will give you the solution nearest the P O L, |FAR| will give you the farthest from the P O L, and |BOTH| will give you both solutions.

    |RD PT| expects the coordinate of the radius point.
    |RADIU| expects the radius.
    |P O L| expects the coordinate of the Point On Line.
    |>AZI| expects the azimuth of the line.
    |INTER| returns you to the intersection menu.
    |SOLVE| solves for intersection.

    Use the [/->] |>AZI| to switch it to bearings and [/->] |>BR| to switch it back.

  • Line/Line Intersect
    This program solves for the intersection point of two lines. Each line is defined by the direction of the line and a coordinate on that line. Once you've entered your variables, press |SOLVE| and a screen will appear to verify what you've entered. If all's well, just press |MORE| to continue with the answer. The coordinate is left on the stack.

    |POL 1| expects the coordinate for the point on line 1.
    |>AZ 1| expects the azimuth of line 1.
    |POL 2| expects the coordinate for the point on line 2
    |AZ 2| expects the azimuth of line 2.
    |INTER| returns you to the intersection menu.
    |SOLVE| solves for intersection.

    Use the [/->] |>AZ 1| to switch it to bearings and [/->] |>BR 1| to switch it back.

  • Coordinate Conversion
    When working with rectangular coordinate systems, I think they're called cartesian, this program converts coordinates in one system to coordinates in others. About 1993 or so, I was told we were going to be changing over to metric, so I wrote this program. We haven't started yet. I don't think it's going to happen, but I keep the program just in case. Sometimes I use it to do a poor man's resection.

    What you do is enter the coordinates for the same two points in both systems. If you have a scaling factor, you can enter it. If not, the program will figure one out for you, just enter 0(zero) as your scaling factor. Then you can convert coordinates either direction. Converting a block of points in a coordinate can be done using |BLOC|. |BLOC| will prompt you. It only converts OLD to NEW, and it doesn't convert unused points in the block.

    Now on the scaling factor. If the unit in the old system were the foot and the unit in the new system were a yard then the scaling factor would be 3. Setting the scaling factor to 0 will let the program figure out the scale itself. When automatically figuring the scale, the program NO longer forces a scale close to 1 to be 1. So, if you have a scale, better put it in.

    |VIEW| views settings.
    |BLOC| converts a block of coordinates (OLD to NEW), prompts you for Pt.#s.
    |N->O| expects a coordinate from NEW system and converts to OLD.
    |O->N| expects a coordinate from OLD system and converts to NEW.

    |VIEW| views settings.
    |OLD1| expects coordinate of point 1 in OLD system.
    |NEW1| expects coordinate of point 1 in NEW system.
    |OLD2| expects coordinate of point 2 in OLD system.
    |NEW2| expects coordinate of point 2 in NEW system.
    |SCALE| expects scaling factor, use 0 if unknown.

  • End Area
    This program calculates an area from coordinates using the coordinate method. What you do is enter the starting coordinate, be it North/East or Offset/Elevation, with |START|. Then you enter each subsequent point as you work your way around the perimeter with |NEXT|. When you enter the same coordinate you started with, the area is revealed. If you've stored them to a coordinate file in sequence, you can have |BLOC| recall and enter them for you. You will be prompted for point numbers. |BLOC| is mindless and just recalls the point number and runs them through, then after reaching the last one, it recalls the first point to close out the perimeter. Useful for end areas. Although I can't see how this would be useful, control files will work with this too.

    |START| expects the coordinate of your starting point.
    |NEXT| expects a coordinate and is used to enter each subsequent point along the perimeter.
    |BLOC| will prompt you for point numbers.
    |ST#| expects a point number.
    |CHNK| "CHUNK" expects "from" point number in level 2, "to" point number in level 1.
    |NXT#| expects a point number.

    Now for example, to figure the area of the figure shown above, you'd key in something like

    Don't forget, you can use a coordinate file to make this easier. Sometimes, it's easier to store the data in a coordinate file and fix your mistakes there than to flawlessly key it in.

    Okay, now say you have stored your coordinates or offset/elevation as coordinates in a coordinate file, and you stored them in order as you go around the perimeter. Well, if you set yourself up like this, as you might very well do with an end-area, you can use |BLOC|. Say you stored them as points 3 thru 13, you'd key in

    and you'd see the data run though on the screen, and the area would revealed at the end.

    It has come to my attention that it would be very useful to work this program using point numbers for stored coordinates as well as using coordinates on the stack. What these new softkeys do is take a point number and recall that point and then enter the coordinate to the End Area program. You use |ST#| and |NXT#| just as you would |START| and |NEXT|, except you use point numbers instead of coordinates. It is an entry aid. Actually, all it does is eliminate the need to press [PRG] in the process. So, you could mix using the keys that expect a coordinate and the ones that expect a point number. |CHNK| "CHUNK" takes two numbers from the stack, a "from" point number and a "to" point number and is another entry aid that will recall and enter a sequence of points as "next" points.

    Now, say you had stored your coordinates, but they aren't entirely in order. Say your sequence is 2,13,12,11,10,9,8,3,2. You could key in

  • Triangle Solutions
    This program solves for those five popular triangle programs. Choose the scenario that suits your needs. Enter the three knowns and press |SOLVE|. The answers are displayed. If you need the values, pressing |->STK| will push them on the stack. |TRIAN| gets you back to the Triangle Solution menu.

  • Job Info
    Essentially, all this does is display useful information. Is the display intuitive enough?

  • Curves

    |thetaS&L| takes a spiral angle and length of spiral and calculates the radius.
    |DC->| takes a degree of curve (100' arc) and returns the radius in feet.
    |DCC->| takes a degree of curve (100' chord) and returns the radius in feet.
    |FIT| brings you to Fit a Curve menu.
    |DATA| brings you to Curve Data menu.

  • Curve Data
    This program solves for various aspects of a curve given the delta of the curve and the radius. Just enter the delta with and the radius with |RADIU|, then press one or more of the |SOLVE| buttons. You may have noticed that there are three |SOLVE| buttons. This is because each solves for different aspects of the curve. Not every aspect is of interest, so you can just solve for the solutions you want.

    Note that with the degree of curve and degree of arc (chord definition) the radius is assumed to be in feet. It is the appropriate unit for this.

  • Fit a Curve
    Designing a curve, or reverse engineering a curve, this program lets you figure out what a curve might be. Once at the Fit a Curve menu, you are presented with a choice of three variables you might want to hold constant while you play with a second one. The first three variables are |CHORD|, |RADIU|, and . What you do is enter one of the three variables. Then your menu will change to one with choices for your second variable. You can try out one or more second variables, over and over until you've discovered your curve. |NEW| on the second variable menu brings you back to the first variable menu.

    What would you use this for? Perhaps figuring the tangents for the baseline program. Maybe for replacing a spiral with a compound curve. Some maps are crowded and maybe you want to determine if you have the correct curve data for the curve of interest. Lots of things....

  • Utilities
    This has those little utility programs in it. You can change the system settings, do a file transfer, print out points, or do a little filing.

    |FILE| starts coordinate file selector.
    |EDIT| starts up coordinate file editor.
    |CTRL| gets you to control file menu.
    |SETT| brings you to Change Settings screen.
    |PRINT| brings you to Print Point screen for IR print.
    |TFR| brings you to File Transfer screen.

    |ABOUT| displays credits.

  • Change Settings
    This is where you change your settings for most things. For things specific to the ETW, you have to change them in there. There are three screens to this, and you page through them with |MORE|.

    |EXIT| exits change settings.
    |ELEV| toggles prompt(outside of ETW) for elevation not given when storing a point.
    |DESC| toggles prompt (outside of ETW) for description when storing a point.
    |STORE| toggles automatic point store when a coordinate is generated.
    |INV| toggles Inv-first feature.
    |MORE| goes to next screen.

    |EXIT| exits change settings.

    Default El. is the default elevation which will be given a point when no elevation is declared while storing. Just fill in the blank with what you'd like it to be.

    The Description Buffer is what is filled in for your description when none is declared during a store. This changes when you store something. Maybe you want to start storing points with a certain feature code, and you don't want to be prompted for it, that's where this is useful. Just like with the default elevation, just fill in the blank.

    |BEEP| toggles the store point beep on or off.
    |IR| toggles printing to infrared printer. Useful for some solutions.
    |MORE| goes to next screen.

    |EXIT| exits change settings.
    |AZIM| toggles azimuth orientation between North and South.
    |STA| toggles station display between 0+00.00 and 0+000.000.
    |DISP| toggles coordinate display and entry between North,East and East,North.
    |OVRW| toggles overwrite protection for storing points.
    |MORE| goes to first screen.

  • File Transfer
    The purpose of these programs is to exchange data files between the 48 and a computer or another 48. In an attempt to make these programs simpler to use and thus more idiot proof, I've done away with the binary option of sending and receiving files. The files are still ordinary HP48 objects and can be manipulated as such, so if you need the highest speed and don't mind the binary format, you can still send and receive them with the file transfer commands built into the 48.

    To use, set both sides (HP & whatever you're sending to) to the same port, baud and type. When the settings are correct, press |MORE| to continue to the next screen. Then on the receiving side press |RECV|, and on the sending side press |SEND|. When you press |SEND| the file selector will start up and once you highlight the file you wish to send, press |USE| or [ENTER] to send the file.

    NOTE: When using IR, set BAUD to 1200 for best results.

    |EXIT| exits file transfer.
    |PORT| toggles between IR and WIRE port.
    |BAUD| changes the baud choices.
    |TYPE| changes the type of files to send and receive.
    |MORE| moves to next screen.

    |EXIT| exits file transfer.
    |RECV| initates receive of file.
    |SEND| initiates program to select and send file.
    |MORE| moves to next screen.

    A major design goal of this program was to allow sending to and receiving from devices that would normally connect to a TDS 48 program. Most noteably, I wanted to be able to hook up directly with Survey Link. For some reason, Survey Link takes over the com port and doesn't let other programs have it, so it was a pain to transfer my facimile of a RW5 file using another program like hyperteminal.

    Note that when importing a coordinate file if a coordinate file of the same name as you are trying to import already exists, then you will be prompted as to whether or not to write to that file. What will happen if you write to it, is all the points received will be placed in the existing file over whatever coordinates may already be there. It is not replacing the entire file with a new one.

    IMPORTANT: Unlike the LOW-BUDGET predecessor, the N&E display/entry format does NOT change how the import/export interprets the transmission.

    If this notation is too mysterious for you, you could create a coordinate file and export it using something like Hyperterminal(included with Windows,) then look at it with something like Notepad(also included with Windows.) It should then make sense.

    If you are receiving a file that doesn't already exist, the first point needs to be the lowest number point, as this will be used as the lowest point in the coordinate file.

    These conditions will cause receiving a file to end:

    To use the File Transfer feature, communication settings must be set to:

    And while it probably will work anyway, you should also set the flow control to NONE.

    Trivia: I have successfully used this program to send coordinate files to a Ranger data collector and a TDS Recon using the wire. It sure beats punching it in by hand, especially with the Recon which doesn't have a keyboard. I have beamed with IR to HP-48s using TDS COGO and TDS SURVEY PRO, but you need to set it to 1200 BAUD and use DOS filenames. I have successfully sent to several PC based surveying programs which accept files from TDS 48 platforms.

  • Superelevation
    Used for figuring along segments of a superelevation diagram. They usually can be broken down into sections of zero slope, vertical curve, slope, vertical curve, zero slope. You enter the PI stations, the elevations of the zero slopes and the lengths of the vertical curves. Note that STA 1 doesn't have to be lower than STA 2.

    |VIEW| views variables.
    |INCR| expects an increment to change station by.
    |STA-| retards by increment and solves.
    |STA+| advances by increment and solves.
    |STA->| expects a station and solve for elevation.

    |STA 1| expects a station.
    |ELV 1| expects an "elevation" actually the %superelevation.
    |LEN 1| expects the length of vertical curve 1. 0 is allowed (linear transition.)
    |STA 2| expects a station.
    |ELV 2| expect an "elevation" actually the %superelevation.
    |LEN 2| expects the length of vertical curve 2. 0 is allowed (linear transition.)

  • Straight Line Grade
    This program solves for elevations along a straight line grade. You define the line with two stations and the elevations at both stations. Note that station 1 does not need to be lower than station 2. The solution elevation is left on the stack with the station tagged to it to help you remember. Treat it as an ordinary number.

    |VIEW| views variables.
    |INCR| expects an increment to change station by.
    |STA-| retards by increment and solves.
    |STA+| advances by increment and solves.
    |STA->| expects a station and solves for elevation.

    |VIEW| views variables.
    |STA 1| expects a station.
    |EL 1| expects the elevation at station 1.
    |STA 2| expects a station.
    |EL 2| expects the elevation at station 2.
    |STA->| expects a station and solves for elevation.

  • Vertical Curve
    This program solves for elevations along a vertical curve as well as the "turning point." For stations outside of the curve, the elevation is calculated as though on the tangent section. The solution elevation is left on the stack with the station tagged to it to help you remember. Treat it as an ordinary number.

    |VIEW| views variables.
    |SAG| calculates sag or crest point and grade-in, grade-out, and length.
    |INCR| expects an increment to change station by.
    |STA-| retards by increment and solves.
    |STA+| advances by increment and solves.
    |STA->| expects a station and solve for elevation.

    |BVCST| expects BVC station.
    |BVCEL| expects BVC elevation.
    |PI ST| expects PI station.
    |PI EL| expects PI elevation.
    |EVCST| expects EVC station.
    |EVCEL| expects EVC elevation.

  • Leveling
    Leveling is just meant as an aid in reducing your level notes. You can pick up at whatever point you want to. You can enter an elevation and then a backsight rod reading to give you a new HI or you can just enter a HI. |FS| (foresight) will subtract the value entered from the HI and store it as the new value for elevation. That's all there is to it.

    Like with the other functions that expect an elevation, if you recall a point from file, the functions here that expect an elevation will also take the elevation from that point sitting on the stack. This is useful for picking up elevations off of your traverse points.

    There are two sets of options that go along with this routine and you switch between them with [/->] |>VIEW|.

    Option 1
    The first option has the softkeys |3WBS| and |3WFS| stand for "3-Wire BackSight" and "3-Wire ForeSight." You use these keys just like you would |BS| and |FS|, except you use readings from the two stadia lines as well as the center instead of just the center. It takes three values from the stack and does a three wire comparison if the value exceeds the tolerance specified, then it is flagged out with a beep and a star. In level 3 should be the upper wire reading, in level 2 should be the center wire reading, and the lower wire reading should be in level 1 before pressing these softkeys. Works with inverted rod.

    Keys:
    |3WBS| expects Upper in level 3, Center in level 2, Lower in level 1.
    |BS| expects a BackSight rod reading and calculates HI from current elevation.
    |HI| expects a Height of Instrument.
    |FS| expects a ForeSight rod reading and calculates a new elevation from current HI.
    |3WFS| expects Upper in level 3, Center in level 2, Lower in level 1.
    |ELEV| expects an Elevation.

    |>VIEW| view settings. [/->] |>VIEW| switches options.
    |+/-| enters the tolerance to be flagged if exceeded.(something like 0.01)
    |RND| decimal points to round to (for 3-wire and c/f.)

    Option 2
    The second option has the softkey |GRAD|. This is useful if you have your control points stored with elevations. |GRAD| is used for entering a target elevation (GRADE.) With this option, when you enter a rod reading with |FS|, it calculates the cut or fill to the target elevation, which is useful for writing your C/F in your field book. |RND| on the second menu page will round the target elevation and the rod elevation to whatever decimal places you specified. This rounding takes place before the cut and fill is figured out. Please note, that the display is still going to display at whatever decimal places the calculator was set for.

    Keys:
    |BS| expects a Back Sight rod reading and calculates HI from current elevation.
    |HI| expects a Height of instrument.
    |FS| expects a Fore Sight rod reading and calculates a new elevation from current HI and C/F.
    |GRAD| expects an elevation to calculate a cut or fill value to.
    |ELEV| expects an Elevation.

    |>VIEW| view settings. [/->] |>VIEW| switches options.
    |RND| decimal points to round to (for 3-wire and c/f.)

    Example:
    Say you had level notes like these

    You could use this program to reduce the notes. First, set your display to the appropriate decimal places since this program displays using what your calculator is set to. In this case, 2 decimal places would be appropriate.

    Next, enter the backsight elevation Next, you can enter your BS rod reading Your HI is calculated and displayed. Next, you can calculate the elevation on stations 2, 3, 4, and 5. Now, we're going to backsight and turn on station 5. Now, let's calculate our elevation on station 6 and turn back to station 1. That's basically it. You just have to play with the options to see what they do.

  • EDM Leveling |TLEVL|
    EDM Leveling is a rather unusual program. It is based on a procedure that my boss taught me. He swears by it. I have had some success with it, and when it works, it works very very well. In some cases, it out performs differential leveling. The problem is that it has a practical limit of about 500 feet. Beyond that, the target gets to be too difficult to read. Because of this practical limit, no corrections for earth's curvature are included in this program. If you are running traverse for a job site, you probably should keep your traverses about 400-500 feet apart anyway.

    The theory is that traditional carrying of elevation with the edm is typically flawed by three major mechanical errors. First, measuring of the reflector height is often sloppy or even with fixed height rods, the dimples they sit in on the point will cause errors in establishing the rod height. Second, measuring of the HI is not always as good as it could be. This process doesn't cure this, but if you shoot the elevation back, you can recheck the HI if there is an appreciable difference. Third is the target itself. Depending on what reflector set you have, the precision with which you can reliably put the reticle on the typical reflector target is not as precise as something like the with a level rod.

    There are two aspects to the process. One is if you are setup on a point of known elevation and shooting to a point to determine its elevation. The other aspect is if you are setup at the point you are trying to determine the elevation of by shooting to a known elevation. Using both aspects, you can shoot forward and get an elevation, then move up and shoot back and get an elevation, if there is no major difference you can just average the two and get a reasonable elevation. You can then take that average, hold it as the elevation on the point then carry it and do the same thing with the next point. Now if you shoot back and there is a substantial error, you should immediately recheck the HI. The HI is going to be the most frequently encountered source of error in this process.

    So here's how it goes. The EDM is setup over the point of known elevation. Measure your Height of Instrument and record it. Then you get your rodman to put the level rod on the point as if you were running level. Now you sight the level rod at a convienant height, perhaps an even foot mark. The lower on the rod, the better. Record the zenith angle and rod height. Next, reverse the scope then read the same place on the rod and record it. Now, change to the prism and measure the Horizontal Distance to the point and record that.

    Now that you have gathered all that information, you can enter it into appropriate fields as shown in the picture above. Once you've done that, press |SOLVE| and you should get a screen like this one. As a check, the sum of ZAs should be close to 360 degrees. It is your decision as to how much slop to allow. Press |CONT| to continue when you are done reviewing the results.

    Okay, now let's say you've finished with whatever else you were to do from this setup and you've moved forward. You would make the same measurements looking back at the point you were just setup on. Press to get to the second screen and enter the information.

    Press |SOLVE| to get a screen like this one. Again as a check, the sum of ZAs should be close to 360 degrees. Diff. is the difference in change in elevation as measured shooting forward versus measured shooting back. This value should be close to 0. Avg. is the average of elevations derived forward and back, most times this the value to hold. It is the value carried forward with |CARRY|.

    Simple enough? You don't have to start on the point with the known elevation. You can just shoot back and ignore the Avg. You can also just shoot forward like a side shot. It is best to shoot from both ends if you are carrying the elevation along several legs.

    Well, now that the process has been explained, perhaps it should be stated that when starting off, if you have another point with known elevation, it'd be a good idea to check into that one before moving on so as to make sure the HI is good.

  • EDM note reduction
    What this program does is reduce EDM notes 3-dimensionally. Again there is no correction for curvature or refraction. It's straight trig.

    While one could use this for reducing topo notes, commercial software does this much better. A data-collector is better yet. I use it for checking raw file processing.

    If you change the settings to AUTO-Store, it will automatically store 3-dimensionally to file. If not, the results are left on the stack with the point in level 2 and elevation in level 1. So, you could just press [STO] and it will still store it 3-dimensionally.

    What you do is enter the variables you need to change and press |SOLVE|. You have four modes to choose from and you move through them with [/->] |>VIEW|.

    If when entering the setup point, if you are using a recalled point, [ 1 2 3 4 5 6 ], then not only will it enter the horizontal coordinate, but the elevation as well.

  • Electronic Transit Works
    This program is unlike the rest of the package. It is meant for working with a total-station, either with a cable or manually punching things in. If you are lucky enough to have a Geodimeter w/servos like a 600 series, or a Wild TC1010, then you can get a cable and the program can read directly from the total-station. Pretty cool stuff. I am not in the data-collector business and so those are the only two interfaces I currently have.

    Why did I write the ETW? I guess there were just a few things I wish could be different. I generally like the data-collector software my workplace provides me, but true to the TeDiouS running joke, some features are just so tedious to get to, that I just plain don't use them. This is not meant to replace commercial software, just to supplement it. There are small jobs I would just prefer to use this software on.

    For example, I can setup and check my baseline segment in just a minute or two. Using a point list and checking it against the coordinates in the coordinate file and stationing is not as fast and easy. If I am just out to cross-section a small slope (like for a wall) before they cut it, my program is probably easier. If I were going to shoot the top of pipes in probing holes, I'd probably shoot the top of the trench, top of pipe, top of the trench on the other side at each probe hole. My description sequencing would certainly make this easier. If I am traversing and can see a trig station, I can do a checksight to easily see if I have a bust.

    And there's more to it than that. There's subtleties. Since this software doesn't pack everything into it, it doesn't need lots of menu choices and thus can use the softkeys instead of looking for letters on the keyboard. This means your eyes only need to scan the bottom of the screen which makes for quick changes without lots of instrument time. Then there's things like on the sideshot screens. Notice the active field when you are in manual mode starts up as the horizontal angle, but if the instrument is enabled, it starts in the description field. And then there's the layout. A simple easy to understand layout which emulates the way one actually works with a total-station.

    Well, let's get started. Before you can start up the ETW, you must have an active coordinate file. And, you must exit the ETW if you want to change your active files too. Sounds a bit cumbersome, but honestly, once you setup on the total-station, why would you keep changing files? The same goes for calculating things. Once you hook up to the total-station, how often would you need to do all kinds of calculations?

    Let's do a brief walk through. Use the file selector to create a file. It's [/->] [PRG] to start the file selector. Just keep the default values for the first point so you can follow along with the example. After you enter it, it will ask you if you want to start a log file, you may as well choose YES. The log file is for your benefit. It is not for Big Brother or the surveyor police. It is to help you out when something goes wrong. It is doing note keeping for you. Sure if you try hard enough you can fool it or outright fudge it, but just remember, it's only for your benefit.

    Once you have a coordinate file ready to go, press

    on the main menu to start up the ETW. When it starts, it should give you the status of the transit. In our case, there should not be a valid setup, so the screen should look like:

    Let's enter a valid setup, press

    Which brings you to this screen which essentially asks you how you want to setup the backsight of the transit. There are three ways to set your backsight for the instrument. You could backsight using just an azimuth to determine your direction. You could use a stored point to calculate the azimuth to determine the direction of the backsight. You could make observations on two points you have stored in the coordinate file to determine your setup point and backsight direction, and I am calling that a 2-point resection since commercial software calls it that. The thing is, I can't find it by that name anywhere in surveying books. The nearest I can find is a technique called "free station" so I am inclinded to think it's a name that came to be in the computer age.

    You can also set your backsight going through the Multi-Obs Traverse sequence, but it uses the same Azim or point # screens to do it.

    Before I go further, let me stop and discuss nomenclature (haha, Jason talking about nomenclature, sounds like a joke.) It has become appearant to me that many surveyors have a big problem understanding the difference between an azimuth and a what I call a "plate angle." I choose the term "plate angle" because I like it, and I learned on a transit which had actual plates with a scale etched on it for measuring angles. Most times one will set the backsight plate angle to the same as the azimuth of the backsight which leads to the confusion between the two. The two need not be the same. The plate angle as I use it, is the angle or reading on the actual instrument. An azimuth is an absolute direction usually based on poles of the earth. Your backsight azimuth is the azimuth from your setup point to your backsight.

    Okay, now let's fill in the instrument setup. Since we only have one point in our file, the only choice that applies is "B. Azimuth." So go ahead and press

    This screen should show up go ahead and enter 1 as the OccupyPt, 5.2 as your HI, and leave the BS Plate and BS Azim. the same. When you are connected to a total-station and it's ENABLED, you can also use the two softkeys. |SEND| will send the angle in BS Plate to the instrument. |READ| will read what the plate angle is on the total-station and fill in the field. I guess I should point out that in a real life situation, you'd enter what the total-station is set to as well as the back-azimuth. But for our example, let's pretend we are backsighting one of the poles.

    Anyway, once you've entered the setup, press

    and you should be back at the TRANSIT WORK screen, but this time your setup is displayed, and more function keys are available.

    The Height of Instrument, the description of the point, the backsight azimuth, the backsight plate angle, and the active filename are displayed. And now the softkeys for checking, staking, or sideshots are showing. Had we used a point number to determine the backsight direction, that backsight point number would also be showing.

    As you can see in my case, the filename is F.CR5, of course whatever you named your file will be displayed there instead.

    Hint: Perhaps you set up and backsight the same stuff frequently, the setup may remain valid thoughout. It may be a good idea to visit the appropriate setup screen anyway whenever you start a new file so that it makes those entries in your log file. Also, if for some strange reason you decide to edit the setup point coordinate or overwrite it, after you did the setup screen, it won't take affect at the instrument until you go back and redo your setup.

    There are essentially three procedures that are available for you once you've entered your setup, checksights, stakeouts, sideshots. There are a variety of options to each, but it is those three basic tasks you can do with ETW.

    What's the next thing you do after you set your backsight? Well, you do a checksight of course. Well, you should anyway. So press

    and you get to this CHECK SIGHT screen.

    Well, we just set the backsight angle, so we aren't going to check that, but there are three other ways to check, it depends on what you like to do, and what your standard is. We aren't going to do any checking here, but I would like to explain the layout. The softkey with the plus sign will tell the instrument to turn to approximately (should be 1 min. off) the sight if you have the instrument enabled and your instrument can turn itself. The next three softkeys will switch you to the other three types of checksights. The layout is pretty fast. Try a couple of them. If you aren't hooked up to the total-station, enter your readings at the backsight and press |CHECK|. If you are connected, you can just press |CHECK| and it will fill in the fields for you and check the readings and display the verdict. When you are finished playing with that, press to get back to the TRANSIT WORK screen

    Well, that's the general operation of the ETW. You can do similar for staking and sideshots, but I will discuss them seperately.

    Now to get out of the program, all you have to do is just have to keep exiting until it asks if you want to quit, then answer YES. Simple! From this screen, that's just one EXIT.

  • HOUSEKEEPING
    Housekeeping is all those little things that let you taylor how the ETW operates. Edit Coordinates is also found here for those who can't work with the dedicated keys. I think iit is correct to place it here.

  • Control & log file
    This screen should be self-explanitory as far as how to use it. What is left to explain here is what these things do. The control file can be selected for use or deselected if no longer desired.

    The Log file is a text file that contains entries which log the readings taken with the ETW. It also logs things like storing points and setting changes. It is useful for field work, especially if an error was made somewhere and you want to recreate the work. There is no turning it on or off. Simply, if one is found, then log entries are made, if none is found, then log entries aren't made. So your options are to have or create a log file, or to delete an existing one. When you delete a coordinate file with the file selector, it's companion log file is deleted as well. But if you are sharp and realize, what if there is a log file without a corresponding coordinate file, how are you going to delete that? Well, you could just go and delete it the way you'd delete any other variable, or you can go to the Tranfer files menu under Utilities and set the type to LOG and press |SEND| to start up the file selector, and then use that to delete your log files.

  • Coordinate file editor
    This is the same coordinate file editor found in other parts of the program. It is just such a useful program that it appears in various places.

  • Change modes
    There are three screens to this. At these screens you can change various setting which affect the program. Some things you change here are universal, and some things only pertain to the ETW.

    Azimuth is the orientation of the azimuth, South means 0-00-00 points south, and North means 0-00-00 points north.

    Distance is the unit you use to measure distance, either feet or meters. This mainly affects the way corrections are added to the reductions.

    Curvature is a toggle whether or not to apply the correction for earth's curvature to reductions.

    Station format toggles how you like to see your stationing displayed.

    Display toggles how you like to see and enter your north/east coordinates.

    OVRW prot toggles OVERWRITE PROTECTION of points on or off.

    Prompt des toggles whether you want to be prompted for descriptions or not.

    Prompt rod toggles whether you want to prompted for the rod height or not.

    Inst Comm toggles communication with the instrument ENABLE/DISABLE. This can also be done from the keyboard with [TAN] when you are in Transit Work.

    Stake toggles whether or not to send stakeout information to the total-station when you enter the STAKE SHOT screen. If the total-station doesn't support this feature, it doesn't do much.

    Meas. Dist. toggles Coarse or Fine mode for measuring distances if available. Also can be toggled from the keyboard with [+/-] when in Transit Work.

    Store Beep is a optional beep when storing points. You can toggle this feature on and off.

  • Change parameters
    Change parameters has three screens to it. The first one lets you change values that are used in the program. The second and third one are for changing instruments and the setting for it.

    Prism O/S will be added to your Slope Distances in the ETW. Values are in feet if you set the settings to feet, or in meters if you set the settings to meters.

    Servo Tolerance is the slop you are willing to accept for turning to. The unit is CC or gon. Before you get silly and set to zero, my experience has been that the machine takes it to mean there is no tolerance.

    Scale factor is multiplied by your Horizontal Distance after it is reduced from you slope distances.

    Earth's Radius is the value you use for earth's radius in meters.

    Refraction Constant is a value used for correcting for refraction and is applied to the reduction to HD and VD.

    The corrections for curvature and refraction are:

    Where:

    Of course you can plug in your own values for Earth radius and Refraction constant. If by chance you find a typo in my formulas, let me know. It reminds me of the programming language LISP, which stands for LIStProcessing, but many have referred to it as LotsofStupidParenthesis. I don't know how the I fits in there, but I like it anyway.

    This screen allows you to choose which instrument interface to use. There are two built-in interfaces and provisions for one add-on. The add-on is because, I've run out of room to put anymore in, and someday I may need to hook to something else. This way, I can just create another library and load it and I'll have another interface.

    Once your instrument of choice is showing, press |CONT| to continue on to the next screen.

    At this screen you can change the settings for your instrument. |DEFAU| will plug in some default values for your instrument if you wish. |EXIT| when you're finished.

  • INSTRUMENT SETUP
    The ETW is organized like this, when you start it up, you are pretending like you are at the total-station. In real life, the first thing you do is setup your total-station. So, the first thing you do is enter your setup. Once you do a setup, you don't need to change that stuff until you change your setup. So just like real life, now that you've entered your setup, there are several tasks that you can perform.

    Once your instrument is setup, there are three basic types of tasks that you can do. You can do check sights, you can stake out stuff, you can locate stuff (side shots.) Of those three tasks, there are several variations. There is sort of an exception. The Multi-Observation Traverse is sort of a cross between a task and a setup, so it's on the setup screen. It works best that way.

    All setup entails is letting the program know what point you are setup on, what the backsight azimuth is, what the backsight plate angle is, what the Height of Instrument is. You know, the basic stuff. Generally, one will set the backsight plate angle to the same as the backsight azimuth, but you aren't required to.

    You are given three ways to do your setup

  • Backsight using an azimuth
    Using an "azimuth" for the backsight, you provide the backsight azimuth.

  • Backsight using a stored point
    Using a "stored point" for the backsight, the program figures out the backsight azimuth form the stored points. You still have to let the program know what you set the plate angle to. Just like using a backsight azimuth, you can read it from the instrument or set it in the instrument with |READ| and |SEND|. All |INVER| does is inverse the direction from Occupy point to BS point so you can optionally use it as the plate angle.

  • Backsight using a 2-point resection
    Now the "2-point resection" is a little different. Given observations of two known points, it can determine values for the occupied point. This is useful for times when you can sacrifice precision for speed and accessability. This is probably not appropriate for setting main controls, but for cross-sections or topo or just to locate an exposed waterline, why not?

    Let me explain how my process works since I could not find any standard method to this. That way, you can decide for yourself the strengths and weakness' and apply judgement to its use. What it does is give the occupied point an assumed value, then based on that and the observations of the two points, it does a rotation, translation holding the values of the first point you observe. It doesn't use a scaling factor. It holds the measured values to establish the occupied point. It assumes the azimuth from the stored coordinates is true. After you take the measurements, the amount of horizontal and vertical error is disclosed. It is better to shoot the point with the better advantage first since it will hold that end to rotate around.

    At the first screen,

    you enter the number of the first point you are going to shoot. This is a point you already stored to file. You enter the height of the instrument, and the reflector height. Then, if you have the instrument hooked up and enabled, you can just press |SHOOT| and it'll fill in the blanks for you before moving on. Otherwise, you have to fill in the Horizontal Angle, Zenith Angle, and Slope distance before pressing |SHOOT|.

    After you successfully do that, the second screen comes up for you to take a shot on your second control point.

    Enter the number of the second control point you are going to take a shot on. This also must be one of the points already stored to file. Enter the Height of Reflector at the point. Then Enter the point number you want the new point to be stored at. This will be the coordinate of the point you're occupying to do this. Next enter the description you want to give this new point. If you aren't hooked up to the total-station, then you have to enter the Horizontal Angle, Zenith Angle and Slope Distance by hand before pushing |SHOOT|. When you press it, it will do a little calculating and determine the Horizontal and Vertical error for you.

    Since it is assumed you are doing this to quickly establish a control point for some work at hand, it also makes this the current setup with a backsight azimuth calculated for the first point you observed. You're all ready to take shots. Okay, I know some of you are saying, "but I'd like to set the azimuth as the plate angle." Nothing stopping you from doing that. Just go back and backsight using a stored point now that you have a coordinate for the occupied point.

  • Multi-Observation Traverse
    The "multi-observation traverse" which some might ask "why is it on this page?" is also a place where you can enter your setup information. And, if move up right after you make your observations, you'll find this to be the right place for it.

    When you first start up the Multi-Obs Traverse program, you get this TRAVERSE SETUP screen.

    This is where you set how you want to do your observations. This is not a terribly complex program. Indeed, the lack of free memory required me to compromise on portions of it. Of course, its lack of complexity may actually be a virtue rather than a drawback.

    The tolerances are the amounts to be flagged out when exceeded. They should be self-explanitory.

    Once you properly setup for the observatons, press |CONT| to continue on to the next screen.

    OR

    At this next screen, you enter information like your HI and backsight point or direction. You also enter your backsight plate angle which is mostly used for when you pop out of the traverse program and want to do something else. Please note that this is a simple program, and it only checks for direct and reverse variations and angle difference from backsight to foresight, so if you change your backsight plate angle with each set, you can. It's just that when you pop out of the traverse program, the ETW won't know what your actual plate angle is, so you'd need to reset it before doing something else like take a sideshot. This could be useful if you like to reset the backsight in each set for each quadrant.

    Anyway, back on course. Next, you start each set. As with the setup shown you will be prompted for your backsight.

    This screen is typical of the screens that ask you for the horizontal angle. If you have the instrument enabled, you can just press |SHOOT| and it will take the reading for you. If you don't have the instrument enabled, just key it in before pressing |SHOOT|. In our case, the backsight is HA: 00-00-00.

    Now, the screen for the foresight comes out. In our case, the foresight is HA:89-04-31 ZA:89-57-03 SD:719.03.

    Notice that you can shoot HA and distance seperately with the |LINE| |DIST| and |STORE| softkeys. This is far more useful than you realize in books and commercial software. Indeed, I recommend you hit the |DIST| button a couple of times while watching the SD before hitting store. Experience has shown me that shooting distances through obstructions like cars and shinny things can give undesireable results. |BOTH| will shoot line and distance at once. This is good if you don't have any obstructions.

    Now whether you like to shoot the backsight, foresight flip then shoot the backsight, foresight or prefer to shoot the backsight, foresight flip then shoot the foresight, backsight is up to you. You can do either. It's one of the options. In our case it is order BS,FS|FS,BS and distance F1 so next we are prompted for the foresight HA. In our case it's HA: 269-04-27.

    The last observation for this set in our case is to the backsight. The observation is HA: 180-00-03.

    If you had more sets entered in the setup screen, you'd continue taking readings, but since in our case, it was set to 1, we are done with the sets. Now, since in our case the observations didn't go beyond the tolerances declared in the setup screen, we continue on to be prompted for the rod height. This should be appreciated since forgetting to measure the rod is a common mistake, even amongst seasoned surveyors. In this case, it is being set to 5.10.

    If you have it set to 2-ENDS, like in this case, you are going see this screen come up while it waits for you to move the EDM to the foresight point so that you can shoot back.

    The idea is that you don't want accidental key presses as you move up, so it's kind of "key-locked."

    Once you've moved up and setup on the point, press [/->] [NXT] to continue on. Then you'll get a screen like this for entering your setup on the foresight and shooting back.

    If when you shoot back, the horizontal distance is too different from shooting forward, you will prompted to accept it or to shoot it agian. This is important when shooting through traffic. Experience has shown me that shooting through traffic is sometimes unavoidable as well as prone to VERY wrong distances.

    After you finish your sets (and shoot back if applicable,) you are presented with this screen which shows you the azimuth forward, the horizontal distance, the North, East, and elevation of the point forward. Some of this information should be very useful for you to write in your fieldbook.

    You get to fill in the description and point number to store the point at. And then of course once you continue on, the point is stored and then you get kicked back to the Instrument Setup screen.

  • CHECK SIGHT
    Being able to check to a stored coordinate gives the surveyor a good idea in the field of how "good" his traverse is when he moves up and shoots to other control points or trig stations that are visible.

    There are four types of check sights available. You can check the backsight angle, you can check the backsight with angle and distance, which would yield the horizontal and vertical error. You can check an angle to a stored point. You can check an angle and distance to a stored point which gives the horizontal and vertical error.

    If available with your instrument and it is enabled, you can press |+| and it will turn approximately to the line of your sight. It is not exact. You must put it on the point yourself. |CHEC| will calculate the differences. If you have the instrument enabled, it will read directly from the instrument before calculating the differences.

  • STAKEOUT
    Here you can choose to stake relative to a baseline, by point number, by angle and distance, or just to look for points in the field.

  • Find a corner
    Find a Corner is useful for looking for property corners or for just setting out a Horizontal Angle and Distance. It let's you do a staking process given a point number OR an angle and distance. This is a rather strange and unusual program. The purpose of the "Find a Corner" screen is to aid you in looking for property corners, but it has a general usefulness too, nothing fancy.

    Here's how it goes, if you are lucky enough to find the corner and you can take a shot on it, you can use that point to help you find others provided you have thier calculated coordinates already stored. What you do is enter the point number of your "record" coordinate for the corner you found. And you enter the point number of object you located in the field which you feel is the marker for that corner. And you enter the point number of the "record" coordinate of the point you now wish to look for. Then you press |SOLVE| and the angle and distance fields get filled in with the angle and distance you'd expect to find other boundary markers holding the marker you already found. At this point you can press |STAK| and perform a staking operation to look for the point.

    In our screen shot, the point number of the record coordinate of the corner found is 2. The point number of the corner found is 20. The point number of the record coordinate we want to look for is 3.

    Now here's a cool thing. Maybe sometimes you just want to do a staking type of operation without storing a point first. You know, sometimes the party chief pulls out his calculator and says, turn to such and such, at such and such. Well, that's what this is good for. Just fill in the fields with the angle and distances you want before pressing |STAK| and you can use the staking screen to set out that angle and distance.

  • Stake by station, o/s
    To Stake by Sta,o/s You must have a baseline defined. Define Baseline you already know. If you don't, visit Baseline Segment. You use the baseline segment for staking out by station and offset. |EXIT| exits this screen.
    |BRKS| toggles break stations ON/OFF for incrementing station.
    |SOLVE| solves for direction and distance to current station and offset.
    |STA-| decrements station by amount in increment field and solves.
    |STA+| increments station by amount in increment field and solves.
    |STAK| send stakeout to gun if setting is on, changes to Stake Shot screen.

    What you do is enter the station and offset you want to stakeout. Enter your offset as a negative if it left of baseline and then press |SOLVE| to have it calculate a direction and distance. You can also use the STA+ and STA- features to save on punching in the station if you stake at regular intervals. Including Break stations will have the program come up with things like the PC, PT, SC stations when you use the STA+ and STA- features.

    So anyway, once you've solved for the direction and distance to the station/offset, you can press |STAK| and it will optionally send the horizontal angle to the instrument before taking you to the STAKE SHOT screen. At this screen you can take a shot and it'll figure the elevation at the prism as well as the COME or GO. And if you are satisfied with the readings, you can press |STORE| and it will store the shot and make an entry in the log file.

  • Stake by point number
    To Stake by point num. is very much like staking for station/offset. One big difference is the option of CUT/FILL. When this feature is on, the CUT or FILL is not only displayed, but if you store it, a CUT/FILL entry is made in your log file. |EXIT| exits this screen.
    |C/F| toggles CUT/FILL feature for staking points.
    |SOLVE| solves for direction and distance to current station and offset.
    |PT-| decrements point and solves.
    |PT+| increments point and solves.
    |STAK| send stakeout to gun if setting is on, changes to Stake Shot screen.

  • SIDESHOT
    This screen is for taking the traditional "SIDE SHOT" of which you have a couple of twists. First, there is a feature for description sequencing. Since the software I use for plotting utilizes feature codes, having description sequences helps simplify taking certain types of shots. The second twist is the locate feature. Many times you want to just know quickly the elevation or the station/offset. The locate feature does this at the touch of a button. You can even store the shot if you want.

    |EXIT| exits side shot screen.
    |SEQ| brings you to a screen where you can choose which description sequence to use.
    |OFFCT| switches to off-center side shot screen.
    |DEFIN| brings up definition screen for Baseline Segment.
    |LOCAT| takes a shot and displays coordinate, elevation, station, offset. Optionally stores shot. Useful for instant checking or painting stations.
    |SHOOT| just takes a shot and stores point.

    This combination of features is excellent for cross-sectioning. In fact, that was one of the main driving forces of building the ETW. If you ever do government work or work for the government, you'll find that many payments for earthwork are based on quantities. These quantities are often based on cross-sections. And, while on a broad scope, a true topo may be better, I've found that many surveyors prefer or only know how to do cross-sections. I am not criticizing their methods, just stating an observation. For partial payment quantities, it is better than topo anyway.

    Let's look at the tools I have put together for this. We have a 2-point resection so we can just setup the instrument where we can see the whole line as well as the control points. We have several check sight programs, so we can verify the integrity of our setup by running the rodman to a third control point. Then we have our simplified baseline segment program which can represent many scenarios in a QUICK AND EASY manner. With the SEQuence feature you can define the sequence of descriptions for taking shots, so repetative shots like TOP1 TOE1 CL TOE2 TOP2 could be done very fast. With the locate function, you can take the shot, verify that you haven't drifted too far off line, and since the elevation, station and offset are displayed, you could also write the results in your field book as you go. And you have the option of storing the shot if you want.

    Wait, there's more. Since the log file follows the TDS RW5 format. Well, at least it tries to. You can use it with your favorite software with little or no modification.

    And don't forget, the coordinate file exports using my rendition of Kermit protocol to a generic ASCII coordinate file. It can even be sent directly to some surveying software. Trying to keep with standards is a pain, but it allows seemless integration!

  • Description sequencing
    So how does one use the description sequence? It's easy. You have five sequences you can switch between at any given time. You press |SEQ| to get to the screen to switch between them. At that screen |SEQ+| will cycle you through your choices. The first few descriptions in the list will display as you do this. When the one you want is showing, just exit back to the side shot screen.

    So here's how it works. When you do a side shot and the exact description used appears in the list, the next description in the list gets placed in the description buffer ready for the next shot. If it was the last in the list, then it goes back to the beginning and uses the first. Now if you use a description that was not found in the list, then it takes no action. This means you can stray and take shots of things not in the list and then resume when appropriate.

    Now it's a sure bet you aren't going to want to use the default sequences, so you must be wondering how to change them. Well first off, you have to exit the ETW to do it. This is something you do from stack mode. All you have to do is create a list of your descriptions. A list is that thing with the curly braces. Your descriptions must be strings, you know between quotes. You don't realize it yet, but this means getting a quotation mark into the string will be kind of hard. Anyway, a sample list might be like { "desc1" "desc2" "desc3" }. Once you've created your list, choose which sequence number you want it to be. Your choices are one thru five. Enter that number onto the stack. Say you want it to be number 2. The stack should look something like

    Run the program STOSEQ and you have a new sequence number 2. Sounds a little difficult in the field? Maybe so, but nothing says you can't prepare ahead of time. You could make this into a program itself. How about something like You can have it do more than one sequence Well, you get the idea. Could be useful if you have more than five sequences you like to use.

  • Off-center shots
    The off-center shots are for when it is impractical to put the reflector directly on the object so, you take a shot relative to the point like in front of it or to the side of it. Well, you have four basic types of off-center shots to choose from. Choose which off-center shot by pressing |OFFCT| which brings you to this screen.

    From which you get to these screens......

    But, when you exit them, you pop right back into the regular sideshot screen.

    I think they are straight forward except for the perp-dist screen. The offset on this one is the perpendicular to the prism line and instrumentman's left or right distance. Left is signified by entering a negative value. Might want to play with that one a little before using it for real. A good way to test it might be to take an off-center shot then get to the "stake point" screen and stake that point, seeing where the angle lands relative to the reflector.

    The forth and newest off-center sideshot is used for taking elevations on things that aren't readily accessable like power lines. What you do is take a shot on the reflector either above or below the object to get the distance, and take a shot on the object itself to get the line and new Z-angle, a Z "prime" so to speak. The elevation will be calculated for the object.

  • ETW dedicated keys
    During TRANSIT WORK, seven function keys become operational on the keyboard. I just pencil them onto my keyboard overlay. They are strategic in placement so that they are easy to remember. They come up "on top" of whatever you're running instead of switching to, so you have to exit the application you bring up with these keys before you can continue on to something else.

    THINGS TO KNOW

    FREQUENTLY ASKED QUESTIONS

    TECHNICAL STUFF

    Adding your own total-station
    Well, as stated elsewhere in this manual, I have no plans to add interfaces for any other instruments, but someone has shared some source code for his total-stations, so someday I MIGHT make an add-on library. But until then, I have left provisions for you to write your own total-station interface. It requires a bit of knowledge on programming the 48 as well as a bit of knowledge about your particular total-station.

    First you need to get the information on how to program the serial interface for your instrument. You can't build anything without it. Once you get the information, you'll need to build a library for your 48. It probably should be done in system rpl so it will be less vulnerable to pressing the [ON] button. You should use PUTSERIAL and GETSERIAL instead of words like DOSRECV for the same reason.

    The library you need to build must be ROMID 1019 (3FBh) and its function 0 must behave like this:

    Note that your function is required to have features 1-4,6,7 and 13. If your total-station doesn't have a coarse/fine mode(6&7), just use the same code for both. For any feature your instrument does not have, it should return FALSE. Your HXS only need elaborate on the bits shown in the above table.

    For the routines that ask the edm to measure a distance, a screen display is probably a good idea to let the operator know that the edm is taking a distance. I use the ABUFF for building displays, but HBUFF is probably what you should use for this part.

    Is this mysterious to you? If it is, then I recommend not undertaking the challenge to build the interface until it makes sense.

    Your program must let the ETW handle the comm settings. It should assume the comm settings are already correct. Your program should have something displayed when it reads a distance and a provision for users to cancel is recommended during this operation.

    The functions other than 0 in your library are up to you. If you are creative enough, you should be able to structure your library to harbor several interfaces you can switch to. If you compile directly from source into library form, then getting the desired function to be function 0 should be easy. If you use the USERLIB.EXE to create your library from a directory, you may need to sequence your variables in a certain order. I recommend using DEBUG4X to create your library since it is so easy with it. It sure beats trying to write a make file!

    Once you've successfully created your library, just load it to a port in your 48, reboot your 48, and when you run ETW, it should recognize it and instead of "ADD ON" when you go to select your instrument, it will display what string is returned by your function call with a %1 as input.

    Simple?

    Known problems, kludges, bugs...

    REMOVING PROGRAM
    There may come a time when you need to remove the AINA SURVEYOR. Explaining how to remove the libraries is perhaps frustrating, but reading my instructions on how to remove a library is probably even more frustrating. To help with the task of removing this or any of the AINA SURVEYOR programs, a program named UNAINA is provided with this set.

    This is what UNAINA will do:

    1. Delete assignments on the keys that the program originally assigned.

    2. Delete variables in the hidden directory. The names are listed under Technical stuff.

    3. Removes libraries with the ROMIDs 1018 1019 1020 1021.

    So, if you have a library you don't want to remove with one of these ROMIDs or if you don't want some of those key assignments deleted, then you should either modify the program before use, or manually remove the libraries.

    Removing AINA SURVEYOR-

    1. Find the file included with this package named UNAINA.

    2. Transfer the file UNAINA to the HOME directory of your HP-48.

    3. Unlock any RAM cards that you loaded the program to that you wish to remove from.

    4. Warm start your calculator by pressing [ON] + [C].

    5. When your HP-48 comes back to life, press [VAR].

    6. Press the key that corresponds to the file you just transferred, should be |UNAIN|.

    The program may not be able to remove the library file for some reason. Maybe the RAM card is write-protected or something like that. If so, correct the problem and perform steps 4 thru 6 again.