working-est copy with class-based code. still open loop

Dependencies:   mbed

Fork of analoghalls6 by N K

core.h

Committer:
nki
Date:
2015-03-08
Revision:
10:b4abecccec7a
Parent:
6:99ee0ce47fb2
Child:
7:76d6ceb23e0d

File content as of revision 10:b4abecccec7a:

#ifndef __CORE_H
#define __CORE_H

#include "includes.h"
#include "sensors.h"

class Motor;
class Inverter;
class CurrentSensor;
class VoltageSensor;
class PositionSensor;
class TempSensor;

class Motor {
public:
    Motor(CurrentSensor *sense_c, CurrentSensor *sense_b, PositionSensor *sense_p, TempSensor *sense_t);
    void Config(int num_poles, float kv);
    float UpdateCurrentC();
    float UpdateCurrentB();
    float UpdatePosition();
    float UpdateTemp();
    void UpdateState();
public:
    float angle, I_c, I_b, temp;
private:
    CurrentSensor *_sense_c,*_sense_b;
    PositionSensor *_sense_p;
    TempSensor *_sense_t;
    int _num_poles;
    float _kv;
};

class Inverter {
public:
    Inverter(PinName ph_a, PinName ph_b, PinName ph_c, PinName en, VoltageSensor *sense_bus, TempSensor *sense_t);
    void SetDtcA(float dtc);
    void SetDtcB(float dtc);
    void SetDtcC(float dtc);
    void Disable();
    void Enable();
    float UpdateVbus();
    float UpdateTemp();
public:
    float dtcA, dtcB, dtcC;
    float v_bus, temp;
    float va, vb; //debug
private:
    PwmOut *_pwm_a, *_pwm_b, *_pwm_c;
    DigitalOut *_en;
    VoltageSensor *_sense_bus;
    TempSensor *_sense_t;
};

class User {
public:
    User(Throttle *throttle) {_throttle = throttle;}
    void UpdateThrottle() {throttle = _throttle->GetThrottle();}
    void UpdateState() {UpdateThrottle();}
public:
    float throttle;
private:
    Throttle *_throttle;
};

#endif