Local library

Dependencies:   WakeUp PinDetect

Dependents:   Inductive_Sensor Inductive_Sensor_Jasper Inductive_Sensor_3

Revision:
2:681ecede6dcb
Parent:
1:2234e0b31d94
Child:
3:68c005d410e1
--- a/Bob.cpp	Tue Jan 05 11:03:48 2016 +0000
+++ b/Bob.cpp	Sat Jan 16 09:12:54 2016 +0000
@@ -10,34 +10,53 @@
 
 #include "Bob.h"
 #include "mbed.h"
+#include "WakeUp.h"
 
-Bob::Bob(PinName redled, PinName greenled, PinName sd_enable, PinName sd_present) : _red(redled), _green(greenled), _sdE(sd_enable)
+
+Bob::Bob(PinName redled, PinName greenled, PinName sd_enable, PinName sd_present, PinName battery, PinName V_Det) : _red(redled), _green(greenled), _sd_enable(sd_enable)
 {
     _red = 0;
     _green = 0;    
     
-    _sdE = 1;    
-    _sdP = new DigitalIn( sd_present ); 
-    _sdP->mode( PullUp );
+    _sd_enable = 1;    
+
+    _sd_card_detect = new DigitalIn( sd_present ); 
+    _sd_card_detect->mode( PullUp );
 
+    _batt = new AnalogIn( battery );
+    
+    _V_Det = new DigitalIn( V_Det ); 
+    _V_Det->mode( PullUp );
+    
+    WakeUp::calibrate();
 }
 
 bool Bob::checkSD(void)
 {
-    // Check if any card is present
-    if(_sdP->read() != 1) {
-        _green = 0;
-        return 1;
-    }else{
-        green();
-        return 0;
-    }
+    _sd_enable = 1;
+    return !_sd_card_detect->read();
+}
+
+void Bob::sleep(int s)
+{
+     _sd_enable = 0;  // unpower SD-card + unpower sensor
+     WakeUp::set( s );
+     deepsleep();
 }
 
-void Bob::sleep(void)  { _sdE = 0; }
-void Bob::wakeup(void) { _sdE = 1; wait(0.1); }
+void Bob::wakeup(void)
+{
+    _sd_enable = 1;   // power SD-card + unpower sensor
+    wait(0.3);
+}
 
 
+// battery voltage should be 3.1V (min) < 3.7V (typ) < 4.22V (max)
+float Bob::battery(void)
+{
+    return (float)_batt->read() * 3.0 * 2.0;
+}
+
 void Bob::flash( int n )
 {
     _red = 0;
@@ -66,3 +85,6 @@
 void Bob::red(void)   { _red   = 1; }
 void Bob::green(void) { _green = 1; }
 
+void Bob::redoff(void)   { _red   = 0; }
+void Bob::greenoff(void) { _green = 0; }
+