Marek Vitula / Mbed OS goal_counter_project

Dependencies:   GoalCounter WS2812 PixelArray

Revision:
3:d74c47d2e933
Parent:
2:f04959a6fd61
--- a/GoalCounter.cpp	Fri Jan 11 18:29:58 2019 +0000
+++ b/GoalCounter.cpp	Sat Jan 12 18:50:49 2019 +0000
@@ -1,52 +1,78 @@
 #include "GoalCounter.h"
 
-GoalCounter::GoalCounter(PinName pin) : _interrupt(pin) {
-    // Set callback functions to timers
-    _interrupt.fall(callback(this, &GoalCounter::tstart));
-    _interrupt.rise(callback(this, &GoalCounter::tstop));
-//    _balltimes = {0};
-    _score= 0;
+GoalCounter::GoalCounter(PinName pin1, PinName pin2) : _interrupt1(pin1) {
+    _interrupt1.fall(callback(this, &GoalCounter::tstart1));
+    _interrupt1.rise(callback(this, &GoalCounter::tstop1));
+    
+//    _interrupt2.fall(callback(this, &GoalCounter::tstart2));
+//    _interrupt2.rise(callback(this, &GoalCounter::tstop2));
+    
+    Timer t1;
+    Timer t2;
+    
+    _score1 = 0;
+    _score2 = 0;
+    
+    _time1 = 0;
+    _time2 = 0;
+    
+//    _balltimes1 = {0};
+//    _balltimes2 = {0};
+    
+    is_goal1 = 0;
+    is_goal2 = 0;
+    
 }
          
-void GoalCounter::tstart() {
-    t.start();
+void GoalCounter::tstart1() {
+    t1.start();
 }
 
-void GoalCounter::tstop() {
-    t.stop();
-    _time = t.read();
-    t.reset();
+void GoalCounter::tstop1() {
+    t1.stop();
+    _time1 = t1.read();
+    t1.reset();
     
-    if ( _time > 0 && _time < 2 && _score < 10) {
-       _balltimes[++_score] = _time;
-       is_goal = 1;
-//       wait(1);
-        }     
+    if ( _time1 > 0 && _time1 < 2 && _score1 < 10) {
+       _balltimes1[++_score1] = _time1;
+       is_goal1 = 1;
+    }     
 }
 
-void GoalCounter::goal() {
-    is_goal = 1;
+void GoalCounter::tstart2() {
+    t2.start();
+}
+
+void GoalCounter::tstop2() {
+    t2.stop();
+    _time2 = t2.read();
+    t2.reset();
+    
+    if ( _time2 > 0 && _time2 < 2 && _score2 < 10) {
+       _balltimes2[++_score2] = _time2;
+       is_goal2 = 1;
+    }     
 }
 
 uint8_t GoalCounter::get_score() {
-    return _score;
+    return _score1;
 }
 
 float GoalCounter::get_balltime(uint8_t score) {
     if (score <= 10 && score > 0)
-        return _balltimes[score];
+        return _balltimes1[score];
     else
         return -1;   
 }
 
 float GoalCounter::get_balltime() {
-    return _balltimes[_score];
+    return _balltimes1[_score1];
  
 }
 
 float GoalCounter::get_ballspeed(uint8_t score) {
     if (score <= 10 && score > 0) {
-        float speed = 0.034f/_balltimes[score]*3.6f;
+        float speed = 0.034f/_balltimes1[score]*3.6f;
         return speed;
     }
     else
@@ -54,15 +80,10 @@
 }
 
 float GoalCounter::get_ballspeed() {
-    float speed = 0.034f/_balltimes[_score]*3.6f;
+    float speed = 0.034f/_balltimes1[_score1]*3.6f;
     return speed;
 }
 
-//void GoalCounter:print_info() {
-//    pc.printf("Score : %d \n\r", _score);
-//    pc.printf("Time of ball pass : %f seconds\n\r", this.get_balltime());
-//    pc.printf("Speed of ball (34 mm diameter) : %f kph\n\r", this.get_ballspeed());
-//}