By Ben Jolitz
Professional projects use specifications
Ensures quality
Ensures product does what it should.
Example: “Speedy” Alice and “Solid” Bill
Wrote eight page specification
Hammered out what needs to be done
Preliminary logic written up.
Useful for future years, provides short walk through without pawing through manuals and PPTs.
All programs written in Python.
Extendable
Easy to adapt
Other languages (C, Perl, VB) were rejected due to maintenance reasons.
Muon lifetime's logic was to search for a “start” trigger, find that trigger's end, and check the time index spacing between the first triggers “end” and the next ones “start”.
3
μs <
Space
< 10μs.
ADOM logic:
Find the number of “events” in two minute intervals.
Ignore x seconds of data
....
tim = int(columns[0], 16) if tim < self.last_tim : self.rollover_time += 4294967296
....
if data_timestamp >= self.trigger_next_interval : print "interval %04d: triggers %04d [lines %d-%d]" % ( self.interval_count, self.trigger_count, self.interval_first_line, line_count-1) self.interval_first_line = line_count self.interval_count = self.interval_count + 1 self.trigger_count = 0 self.trigger_next_interval = self.trigger_next_interval + self.interval_time
...
...
if columns[1] == '80' : # trigger self.trigger = True self.trigger_time = data_timestamp if self.trigger : self.trigger_accumulator = self.trigger_accumulator + [columns] if self.trigger and columns[5] == '00' : self.trigger = False self.trigger_accumulator = []
ADOM balloon.py has a “dropout” mechanism to remove invalid lines or typed in commands.
Prints out dropouts along with line number
Assumes all valid data lines are 16 columns.
“Smiley face”
Help
Issue fixed by simply tracking down the false data lines using the other dropout prints to get an idea, delete by hand or by command piping.
ADOM experiment was carried out on 25 July,
2007 at around 11AM.
Muon life time has not been carried out yet, due to equipment issues.
Balloon was pulled lower due to winds
Unknown
Cannot account for the count drop on ground.
Lowest point is 18mins for both experiments.
Coindicidence?
Time dependent error?
Ground Data had 6 dropouts.
Mainly commands ['DS'], ...
Aerial Data had ~162 dropouts.
Data lines that were “mangled” (repeating section, transmission error).
Potential sources of error:
Power fluctuating somewhere?
ADOM transmitter encountering interference?
Changing altitude suddenly
The null-modem serial piece was not fastened in and
slightly loose.
Tether may have brought around flex error because the setup was bouncing all over the place, due to lack of stabilizers.
ADOM's balloon did not reach 1000ft.
Lack of sufficient lift.
Winds
Developed on live CMF webserver
http://zbenjamin.telemuse.net/
http://objectis.net
http://www.zope.org
Content kept on scipp server.
XHTML 1.0/CSS 2/JScript 1.5
Ported over with browser “View HTML” and “Save as”
Full versions working perfectly on FF 1.5+, IE 7+,
Opera, Safari.
Partial version working on IE 5.5, 6
Wrote specification
Good for later years as logic reference
Data format section good as long Qnet boards “speak” that format
Two programs:
Proven “balloon.py” program
Invoked by python balloon.py datafile.txt [secs to ignore] ([] optional)
Experimental “lifetime.py” program
Clean website supported by standards.