mirror of
https://github.com/grillbaer/esp32-geiger-counter.git
synced 2025-12-21 21:33:03 +01:00
Initial import
This commit is contained in:
37
GeigerData.h
Normal file
37
GeigerData.h
Normal file
@@ -0,0 +1,37 @@
|
||||
#ifndef GEIGERDATA_H_
|
||||
#define GEIGERDATA_H_
|
||||
|
||||
#include "Arduino.h"
|
||||
|
||||
// Russion STS-6 ("CTC-6") Geiger tube:
|
||||
// N = (2.28<EFBFBD>3.42)*10^3 at 0.36 <20>R/h; Nmax = 6*10^4; Nf = 110
|
||||
const float STS6_CPM_PER_USPH = 875;
|
||||
|
||||
// Holds pulse counter history and performs calculations
|
||||
class GeigerData {
|
||||
public:
|
||||
const uint16_t sampleCount;
|
||||
const uint16_t sampleSeconds;
|
||||
const float cpm_per_uSph;
|
||||
|
||||
private:
|
||||
uint16_t currentSample;
|
||||
uint16_t *pulsesPerSample;
|
||||
uint16_t next(uint16_t index);
|
||||
uint16_t prev(uint16_t index);
|
||||
|
||||
public:
|
||||
|
||||
GeigerData(uint16_t sampleCount, uint16_t sampleSeconds,
|
||||
float cpm_per_uSph);
|
||||
virtual ~GeigerData();
|
||||
|
||||
virtual void addPulses(uint16_t pulses);
|
||||
virtual void nextSample();
|
||||
|
||||
virtual uint16_t getCurrentSample();
|
||||
virtual uint32_t getPreviousPulses(uint16_t offset, uint16_t samples);
|
||||
virtual float toMicroSievertPerHour(uint32_t pulses, uint16_t samples);
|
||||
};
|
||||
|
||||
#endif /* GEIGERDATA_H_ */
|
||||
Reference in New Issue
Block a user