System Management code

Dependencies:   CANBuffer mbed SystemManagement mbed-rtos

Dependents:   SystemManagement

System Management code for Penn Electric Racing

Functions:

Controls Fans and Pumps via instruction from CAN Messages, ramps them up over time to prevent damage

Turns on/off DC-DC converter via instruction from CAN Messages

DC_DC/DC_DC.cpp

Committer:
martydd3
Date:
2014-10-10
Revision:
7:5f6e31faa08e
Parent:
6:6a04210a3f4f

File content as of revision 7:5f6e31faa08e:

#include "mbed.h"
#include "DC_DC.h"

DigitalOut dc_pin(p20);
FanPump *fanPump;
CANBuffer *tx_DC_Buffer;
bool status;

DC::DC(FanPump *fp, CANBuffer *can){
    status = false;
    dc_pin = !status;
    tx_DC_Buffer = can;
    fanPump = fp;
}

bool DC::is_on(){
    return status;
}

void DC::set(bool s){
    status = s;
    if(!status){
        fanPump->shutdown_all();    
    }
    
    dc_pin = !status;
}

void update(const void *arg){
    char data[4] = {0};
    while(1){
        data[0] = status;
        CANMessage txMessage(TX_DC_DC_ID, data, 4);
        CANMessage msg(1);
        tx_DC_Buffer->txWrite(msg);
        
        Thread::wait(100);          //10 Hz update
    }
}

void DC::start_update(){
    Thread update_thread(update);
}