ネットワークアップデート機能とか、Pachubeへの情報登録とかの処理を追加しています

Dependencies:   Terminal EthernetNetIf Pachube TextLCD mbed ConfigFile FirmwareUpdater

Committer:
abe00makoto
Date:
Mon Jun 06 19:56:43 2011 +0000
Revision:
1:1eb67d074bed
Parent:
0:a62f36392b9b
add set_time function. for fist use mbed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
abe00makoto 0:a62f36392b9b 1 #ifndef MBED_GEIGERCOUNTER_H
abe00makoto 0:a62f36392b9b 2 #define MBED_GEIGERCOUNTER_H
abe00makoto 0:a62f36392b9b 3 #include "mbed.h"
abe00makoto 0:a62f36392b9b 4
abe00makoto 0:a62f36392b9b 5 class Geigercounter {
abe00makoto 0:a62f36392b9b 6 public:
abe00makoto 0:a62f36392b9b 7 Geigercounter(PinName pin,PinName spin) : _interrupt(pin),_speaker(spin),_speakerstop(){
abe00makoto 0:a62f36392b9b 8 _interrupt.rise(this, &Geigercounter::increment);
abe00makoto 0:a62f36392b9b 9
abe00makoto 0:a62f36392b9b 10 //speaker setup sound off
abe00makoto 0:a62f36392b9b 11 _speaker.period(1.0/2000.0);
abe00makoto 0:a62f36392b9b 12 _speaker=0.0;
abe00makoto 0:a62f36392b9b 13 _speakeron=true;
abe00makoto 0:a62f36392b9b 14 }
abe00makoto 0:a62f36392b9b 15
abe00makoto 0:a62f36392b9b 16 void start(){
abe00makoto 0:a62f36392b9b 17 _count=0;
abe00makoto 0:a62f36392b9b 18 _starttime=time(NULL);
abe00makoto 0:a62f36392b9b 19 _geigerrun=true;
abe00makoto 0:a62f36392b9b 20 }
abe00makoto 0:a62f36392b9b 21
abe00makoto 0:a62f36392b9b 22 void stop(){
abe00makoto 0:a62f36392b9b 23 _geigerrun=false;
abe00makoto 0:a62f36392b9b 24 _stoptime=time(NULL);
abe00makoto 0:a62f36392b9b 25
abe00makoto 0:a62f36392b9b 26 }
abe00makoto 0:a62f36392b9b 27
abe00makoto 0:a62f36392b9b 28 void soundon(){
abe00makoto 0:a62f36392b9b 29 _speakeron=true;
abe00makoto 0:a62f36392b9b 30 }
abe00makoto 0:a62f36392b9b 31
abe00makoto 0:a62f36392b9b 32 void soundoff(){
abe00makoto 0:a62f36392b9b 33 _speakeron=false;
abe00makoto 0:a62f36392b9b 34 }
abe00makoto 0:a62f36392b9b 35
abe00makoto 0:a62f36392b9b 36
abe00makoto 0:a62f36392b9b 37 float getcps();
abe00makoto 0:a62f36392b9b 38 float getcpm();
abe00makoto 0:a62f36392b9b 39
abe00makoto 0:a62f36392b9b 40 int read() {
abe00makoto 0:a62f36392b9b 41 return _count;
abe00makoto 0:a62f36392b9b 42 }
abe00makoto 0:a62f36392b9b 43
abe00makoto 0:a62f36392b9b 44 private:
abe00makoto 0:a62f36392b9b 45 void _speakeroff(){
abe00makoto 0:a62f36392b9b 46 _speaker=0;
abe00makoto 0:a62f36392b9b 47 }
abe00makoto 0:a62f36392b9b 48 void increment() {
abe00makoto 0:a62f36392b9b 49 if(_geigerrun){
abe00makoto 0:a62f36392b9b 50
abe00makoto 0:a62f36392b9b 51 _count++;
abe00makoto 0:a62f36392b9b 52
abe00makoto 0:a62f36392b9b 53 //sound
abe00makoto 0:a62f36392b9b 54 if(_speakeron){
abe00makoto 0:a62f36392b9b 55 _speaker=0.5;
abe00makoto 0:a62f36392b9b 56 _speakerstop.attach(this,&Geigercounter::_speakeroff,0.02);
abe00makoto 0:a62f36392b9b 57 }
abe00makoto 0:a62f36392b9b 58 }
abe00makoto 0:a62f36392b9b 59 }
abe00makoto 0:a62f36392b9b 60
abe00makoto 0:a62f36392b9b 61 InterruptIn _interrupt;
abe00makoto 0:a62f36392b9b 62 PwmOut _speaker;
abe00makoto 0:a62f36392b9b 63 Timeout _speakerstop;
abe00makoto 0:a62f36392b9b 64 time_t _starttime;
abe00makoto 0:a62f36392b9b 65 time_t _stoptime;
abe00makoto 0:a62f36392b9b 66 volatile int _count;
abe00makoto 0:a62f36392b9b 67 volatile bool _geigerrun;
abe00makoto 0:a62f36392b9b 68 volatile bool _speakeron;
abe00makoto 0:a62f36392b9b 69
abe00makoto 0:a62f36392b9b 70 };
abe00makoto 0:a62f36392b9b 71
abe00makoto 0:a62f36392b9b 72
abe00makoto 0:a62f36392b9b 73 #endif