Library to control the bike (just basic for now)

Dependents:   TORTUGA_BLE

Revision:
1:39f462024f10
Parent:
0:792a8f167ac0
--- a/BikeControl.h	Mon Jul 18 09:25:53 2016 +0000
+++ b/BikeControl.h	Mon Jul 18 13:19:33 2016 +0000
@@ -1,14 +1,12 @@
-#ifndef BATTERYSTATE_H
-#define BATTERYSTATE_H
+#ifndef BIKECONTROL_H
+#define BIKECONTROL_H
 #include "mbed.h"
+#include "BikeData.h"
+#include "BatteryState.h"
 
 class BikeControl{
-
-public:
-    Bikecontrol();
     
 protected:
-    
     //State machine states definition
     typedef enum DriveState {
         DRIVE_START=0,
@@ -22,55 +20,67 @@
     //const float WHEEL_CIRCUMFERENCE = 1.66; //Wheel Circumference
     //MOTOR
     //const float GEAR_RATIO = 13.3;     //Motor gear ration
-    
-    //BATTERY
-    AnalogIn batteryVoltageTrailer(PB_0);
-    AnalogIn batteryVoltageBike(PC_5);
-    AnalogIn batteryVoltageAuxiliay(PC_4);
+   
     
     //TRAILER
-    DigitalOut trailerCtrl(PB_1);
+    DigitalOut trailerCtrl;
     
     //MOTOR
-    PwmOut motorRightCtrl(PB_15);
-    InterruptIn motorRightHall(PC_0);
-    float motorRightCounter = 0;
-    float motorRightRpm = 0;
-    PwmOut motorLeftCtrl(PB_13);
-    InterruptIn motorLeftHall(PC_1);
-    float motorLeftCounter = 0;
-    float motorLeftRpm = 0;
+    PwmOut motorRightCtrl;
+    InterruptIn motorRightHall;
+    uint16_t motorRightCounter;
+    uint16_t motorRightRpm;
+    PwmOut motorLeftCtrl;
+    InterruptIn motorLeftHall;
+    uint16_t motorLeftCounter;
+    uint16_t motorLeftRpm;
     
     //BRAKE
-    DigitalIn brakeFront(PC_10);
-    DigitalIn brakeRear(PC_12);
+    DigitalIn brakeFront;
+    DigitalIn brakeRear;
     
     //GENERATOR
-    InterruptIn generatorHallA(PD_2);
-    PwmOut generatorBrake(PC_9);
-    float generatorHallACounter = 0;
-    float generatorHallARpm = 0;
-    InterruptIn generatorHallB(PC_3);
-    float generatorHallBCounter = 0;
-    float generatorHallBRpm = 0;
+    InterruptIn generatorHallA;
+    PwmOut generatorBrake;
+    uint16_t generatorHallACounter;
+    uint16_t generatorHallARpm;
+    InterruptIn generatorHallB;
+    uint16_t generatorHallBCounter;
+    uint16_t generatorHallBRpm;
     
     //BUTTONS ON STEERING
-    DigitalIn userButton(USER_BUTTON);
-    DigitalIn buttonGreen(PB_11);
-    DigitalIn buttonRed(PB_12);
-    DigitalIn buttonDirectionRight(PA_15);
-    DigitalIn buttonDirectionLeft(PB_7);
+    //DigitalIn userButton;
+    DigitalIn buttonGreen;
+    DigitalIn buttonRed;
+    DigitalIn buttonDirectionRight;
+    DigitalIn buttonDirectionLeft;
     
     //SWITCH
-    DigitalIn switchOn(PC_11);
-    DigitalIn switchWalk(PB_2);
+    DigitalIn switchOn;
+    DigitalIn switchWalk;
     
     //LIGHT
-    DigitalOut lightFront(PB_14);
-    DigitalOut lightBack(PA_11);
-    DigitalOut lightLeft(PC_6);
-    DigitalOut lightRight(PC_8);
+    DigitalOut lightFront;
+    DigitalOut lightBack;
+    DigitalOut lightLeft;
+    DigitalOut lightRight;
+    
     
+    void generatorHallAPulsed();
+    void generatorHallBPulsed();
+    void motorRightPulsed();
+    void motorLeftPulsed();
+    void periodicCallback();
+    
+    Ticker t;
+    BikeData *bd;
+    BatteryState *bikeBat, *trailerBat, *auxBat;
+    
+public:
+    BikeControl(BikeData* bikeData, BatteryState* trailerBat, BatteryState* bikeBat, BatteryState* auxBat);
+    void runTestLight();
+    void startControlLoop();
+    void checkStatus();
 };
     
 #endif
\ No newline at end of file