class geiger: def __init__(self): self.pingCount = [0] * 15 self.lastPingTime = 0 self.currentPingTime = 0 self.g = RadiationWatch(geigerSignalPin, geigerNoisePin, numbering=GPIO.BOARD) self.g.register_radiation_callback(onRad) self.g.register_noise_callback(onNoise) def onRad(self): print('Ping') self.currentPingTime = time.localtime()[5] % 15 if (self.currentPingTime != self.lastPingTime): self.pingCount[self.currentPingTime] = 1 else: self.pingCount[self.currentPingTime] += 1 tot = sum(self.pingCount) if (tot > geigerCalibration): Modulate.geigerMod(tot - geigerCalibration) return def onNoise(self): print('Noise') pass def getSum(self): return sum(self.pingCount)
import time from PiPocketGeiger import RadiationWatch radwat = RadiationWatch(24, 23) radwat.setup() print("Status: " + radwat.status()) def onRadiation(): print("Ray appeared!") def onNoise(): print("Vibration!") radwat.register_radiation_callback(onRadiation) radwat.register_noise_callback(onNoise) while 1: time.sleep(1)