End of January:
486DX66 installed with win95
A/D board installed in computer
ability to acquire data tested under dos
Sun Feb 8 19:44:50 CST 1998
minimum sensors:
temperature - street
temperature - roof
relative humidity
wind speed
wind direction
barometric pressure
solar radiation
zero
tipping-bucket rain gauge
Sun Feb 8 20:47:43 CST 1998
realized that they wrote all of their examples in QuickBASIC--
which is neither qbasic or turbo basic. BASIC leaves MUCH to be
desired anyway, so attempting to load driver stubs at correct
address and deal with this nonsense in turbo basic.
Mon Feb 9 09:13:08 CST 1998
Figured out last night how to successfully talk to the hardware
using low-level programming. Uncommented the drivers this morning,
rebooted and it still works. Added a line to allow gain selection
on the DAS-16g. Connected the EXP-16/a. Is a dual-ended device,
cable needs to connect from either the DAS-16/a to J1 on the
EXP/16, not J2.
- Sun Feb 15 18:53:00 CST 1998
Decided that this should go into a web page. Downloaded an NTP
client for win95, along with a web server. Started a software-sources.html file to keep track of where stuff came from.
Have a problem that tcl/tk can't read the stdout of my program for the
values of the das16 board. So, I write to a file called c:\das16.txt
and just have tcl/tk pick the value up from there. The file just gets
re-written each time dasval.exe gets executed. But, there's some sort
of stupid sharing violation where the file turns read-only and the dasval
program can't re-write the data. Hack of the day is to make the the
tcl program delete the file (with the force flag!) so that it can re-call
the dasval program to re-write the data.
- Mon Feb 16 22:20:32 CST 1998
Have two sliders placing accurate A/D values on the screen. The same
values also get dumped onto a web page.
FLY is now working to create on-line gif images. Now they just need to
be meaningful.
- Friday Feb 20 1998
Met with Prof. Stearns at CS building. Estimate of 2 weeks to software
completion. Only really need to store 8 values plus clock seconds.
Need to write application to re-calculate values for archive data.
This would be separate from the data logging.
Eric Melski suggested that I should maybe use 'catch' to get the
results of stdout from the TurboBASIC program.
- Sunday Feb 22 1998
Started a web page to describe the project and to serve as an end-of-project
report. This will be updated with information as it becomes known or as
I think of it.
- Sunday Mar 01 1998
Now have all sliders displayed and have gone from a 'pack' to a 'grid'
placement on the screen for widgets. Have some problems with decimal
points in data representation.
- Monday Mar 02 1998
Resolved decimal representation issues and completed framework for data
conversion ability. All sliders now show voltage for each channel on
a scale from -10 to +10 volts. Readings agree with the voltmeter. Need
to come up with a canvas widget to display wind direction and strength
or something nifty like that. Should also start logging high and low
values.
- Tuesday Mar 10 1998
Made two updating widgets for the wind rose and barometric pressure.
If that doesn't sound like a lot--well, it was. Also rearranged the
ordering of how the sliders appeared. One box for numeric variables,
probably to be put in a canvas widget
- Thursday, Mar 12 1998
Finished one fly-created gif--the wind rose. One problem with the
graphics is that netscape can figure out that the text has changed, but
it uses a cached version of the graphic. Probably need to make some
sort of daytime-based number to uniquely identify the graphic to make
it load each time. However--when doing a page info on the page, the
graphic DOES show up correctly, to the HTTP daemon is supplying the
correct version. Also resolved some issues with deleting vs renaming
the files for the fly graphics. This may cause some http errors when
the event loop restarts, but at a 2-minute update granularity, this should be
close enough.
- Saturday-Sunday, Mar 12/13 1998
Created variables for max/min stuff and report it on the display and
web. Put a wait in for the readDAS16 to hopefully make sure the file
is in place before reading. Still need to calculate misc. atmospheric
variables such as dewpoint, constancy, etc. Still need to reset the
max/mins at midnight. Still need to see about grabbing KMSN metar
and displaying it.
- Wednesday, Mar 18 1998
Made some minor changes to how readDAS16 operates. Program will
stop every so often, I suspect because my event loop is only 5 seconds,
and the TB program can not finish along with everything else in that time.
Added some error handling and moved the event loop to 10 seconds. I
don't suspect this will be a problem with a 2-minute event loop, but
this problem should be fixed anyway.
- Saturday, March 21, 1998
Significant progress. Added a barometric pressure gif and changed the
names of the gifs to be based upon clock seconds to force netscape to
reload the image EVERY time. Also took care of housecleaning so that
no extra gifs are lying around if unnecessary. Wrote the socket code
to download current MSN metar lines on the fly, during the hourly event
loop. Unfortunately, the MSN metar is in a big list. Need to look for
it. This may fail if MSN is the last element in the list, but this is
sufficiently unlikely. Will be a problem if the user is given a choice
of METAR to view, but I don't think that's all that useful.
Re-arranged gridding manager to place info on sanely. Re-arranged
web page to have another table to control layout, fixed up the data
significant digits and added a Fahrenheit to Celcius function. Added
'catch' functions to most of the external data interface and file event
functions to eliminate "useless" error messages.
- Monday, March 23, 1998
Added error-handling code for metar-grab facilities, along with
daily log rotation capability.
- Sunday, March 29, 1998
Eliminated one slider in favor of more textual data -- and then added
more textual data. Added a line such that if the wind values are over
a preset value (20 mph for now) the background of the wind gauge will
turn red. Also changed update times to be more like in real life.
(i.e. rotate the log every 24 hours, not 1 minute!) Cleaned up 5000+
files from last several days testing.
- Monday, April 6
Added extra dialog box before exit, along with information
dialog box. Also created dialog box to show raw voltages from A/D
process.
- Monday, April 14
Moved unit over to AOS building, 14th floor. Connected RH, station
pressure and wind direction.
- Tuesday, April 15
Changed web page links from csl37a to aosdata.meteor.wisc.edu.
Commented out local display lines that show garbage values. (such as
temperatures, etc.) Uncomment when the values work.
- April 16 - April 30
Made corrections/additions to voltage -> data conversion formulas.
- Monday, May 4
Experiencing strange values for voltage reading on the power supply,
which measures a solid 1.4 volts -- however, the conversion suggests
the voltage fluctuates between (about) 1.3 and 1.4 volts. I suspect
two things -- either high-frequency noise on the inputs (which a large
capacitor will not filter out) or that the sample/conversion time is
too brief. Replaced single 'convertdata [readDAS16]' line with some
code to read the voltages 4 times and average the readings. Graphs
done prior to reading the voltage values suggest believable averages, but
strange instantaneous readings. However, despite whatever voltages
the A/D converter may read, variables are all ratios. So, if the A/D
converter reads consistently wrong, the variables will still be correct,
as they are only ratios of the voltages read.
- To do:
Start times based upon top of hour/start- of-day.
Debug METAR-grabbing code. Debug rapid-sample data logging code.
Support for a tipping-bucket rain gauge will require some
sort of debounce circuit to close the counter contacts ONCE very
cleanly to prevent falsing of the data.
Eliminate sliders with canvas widgets in favor of a more
thermometer-looking widget. Create meteograms of historical data.
Put human-readable datestamp on each line in logfile (maybe). Write app to
recalculate values from archival data, or put all data in the logfile.
Calculate monthly/daily averages.