"IMAGE PULLER" Graphical Interface

1.- General explanation

a) Initialization face

When it starts, it tries connecting to the local ArcVIEW
If it can't comunicate with it, it will display an error message and will keep on  a loop FOREVER trying to establish communication. It will get out of that loop only when it can communicate, or when the QUIT button is pressed.
When it comunicate, it will ask for all the parameters, like host address, user, etc, and will write it to the Control display (see GUI description). After that, it will ask the local ArcVIEW to get  the image list from the remote machine. If the local ArcVIEW  cannot comunicate with the remote ArcVIEW database (DBS), it will return an error message, and the GUI will remain in a loop asking for remote communication untill it reaches it or the QUIT button is pressed.
Once the local ArcVIEW communicates with the other, it will return a list of image names from the remote DBS. If the list is empty, the initialization face go to the last stage. If the list is not empty, meaning that there are images on the remote list, then it will prompt the user what to do with the list of images: forget or bring its. If the user  says "forget", then the image names will be deleted from the remote DBS, so next time they will not appear; if the user says "bring", then nothing is done, and the initialization face goes to the last stage.

The last stage on the init procees is now to request the local ArcVIEW to start the loop for asking the list every "pollingtime" seconds. The it goes into the main loop

b) Main Loop

The system will keep in a loop, asking the remote DBS for the list of images. Everytime an image list is gotten, then it will go and get all the images on that list using Secure FTP (no password is asked ... see this important note on the subject ). Now, there are two implemented mechanisms for avoiding getting the images again once they are on the local disk:
a) deleting the image name from the remote list: everytime an image is succesfully written on the local disk, the system can ask the remote DBS to delete from its list that image (just the name from the list, NOT THE IMAGE), so next time it will not appear on the list at will not be pulled out. It is important to note that deleting the name from the remote machine does not mean much considering that you can specify a local "image log file" of all the images that have been pulled, and since the remote DBS is keeping the list for this specific purpose. The DBS is capable of keeping a completelly separate log file for another purposes, if desired
b) Using a timestamp mechanism: everytime a list of images has been pulled, it will grab the timestamp of the last image, and the next time it will ask for images "older than" the last timestamp. In this way, the remote DBS will have untouched its list and will send only the desired image names on the list. This is needed if more than 1 reduction machine is getting the data, for example.

The system will remain on the loop untill the QUIT button is pushed.

c) Finalization face

After the QUIT button is pushed, the system will clean up and will shutdown all activity

2.- Graphical Unit Interface description

Front Panel


The present GUI is used as a front-end to the ArcVIEW IMPUL Module, which basically is capable of pulling out images from a remote host holding
an ArcVIEW database module (DBS). The IMPUL Module can be used undr ArcVIEW or as an stand-alone program.
The present document will describe only how to use the GUI; the internals are described on a different document (developers docuement)

The GUI has basically two areas: Status and Control Area

Status Area

This is a upper part of the GUI (from top to the "Info" line)

The right part, under the "Status History" label holds the whole history of events, since the GUI was started. It will keep in there any error ocurred on the past as well as all the images that have been pulled out.
The left part, has, in the top, a display which has the current status; basically if it is waiting for new images, or fetching images, or any current error status.
This status will be added to the history list once it is not "current" anymore (so it will pass from left to right)

The seconf display, labeled as "command response" will display the response to any command sent; a command will be ANY modification to ANY GUI control, because the information is sent when any change in the GUI controls is produced. This means that the feedback of a requested change will be inmediate.

Then, there are four LEDs:
Fetching Images  : it will turn green every time an image is being fetched to the local machine
waiting                 : it will be green every time the system is waiting for new images (normally green between pollings)
pause                    : it will turn green and will blink if the systme is in pauses, which means that it is not getting images  (see the "Pause" button explanation                                     below)
error                     : it will turn red if any error ocurred. The actual error message will be displayed on the "current status" display

After that, there are the following fields:

Last Image                         : The last image that was succesfully pulled out (meaning that it is already on the local disk) will be displayed. The display will                                                     include not just the image name, but the local path also
Last Remote TimeStamp  :  It has the timestamp on the remote list for the last image gotten. This   computes the time when the images was added to the
                                            list on the remote machine (meaning the time when the image was writen to disk on the remote machine)
Last Local TimeStamp     : it is the time when the last image was localy written.

Control Area

Replicate Remote Dir: It says if the system should replicate (or try to) the remote directory structure. If checked, it will try to leave the local image on the                                                 same relative place it was on the remote machine. If the directory structure does not exists, it will try to create it. If the box is
                                        not checked, or it fails in creating the remote directory structure (permissions errors, for example) then it will leave any image on the                                         path specified (when unckecked an image path control will apear). If it is unable to leave the images even on the path specified, it will
                                        keep trying, giving an error (error led on) and beeping so the user  pay attention to it
LOG                            : It says if the user can log a list of all the images succesfully goten, and file log file name. It will store the image name and the                                                       timestamp. Disabled if  unckecked
host address                : address of the remote host (from the where the images will be pulled out)
user                              : specify the user to loggin on the remote machine for getting the images
port                              : specify the port on remote host where the DBS is servicing. It normally goes to 1300
Polling Time               : time, in seconds, for asking the remote host for new images.

Pause                            : If pushed it will leave the system in "Pause" mode, which means that it will not ask for new images. It will remain on this condition                                             untill the button is unpushed. The "pause" LED on the status area will turn green and will blink on this condition.
Quit                              : Stop program. It will stop all activity and will close the GUI.