SmartWheels self-driving race car. Designed for NXP Cup. Uses FRDM-KL25Z, area-scan camera, and simple image processing to detect and navigate any NXP spec track.

Dependencies:   TSI USBDevice mbed-dev

Fork of SmartWheels by haofan Zheng

StateMachine/TestingState.h

Committer:
hazheng
Date:
2017-04-19
Branch:
Drift
Revision:
86:51048c1f132f
Parent:
82:992ba6f31e24
Child:
97:0ed9ede9a995

File content as of revision 86:51048c1f132f:

/**
 * @file TestingState.h
 * @brief The header file for the TestingState class.
 * @author Jordan Brack <jabrack@mix.wvu.edu>, Haofan Zheng <hazheng@mix.wvu.edu>
 * 
 */
#pragma once
#ifndef TESTING_STATE_H
#define TESTING_STATE_H

#include <mbed.h>
#include "States.h"

/**
 * @class TestingState
 * @brief The class for testing state. It is a child class of the States class.
 * 
 */
class TestingState : public States
{
public:
    /**
    * @brief This is the constructor for the TestingState class
    */
    TestingState();
    /**
    * @brief This is the destructor for the TestingState class
    */
    ~TestingState();
    
    /**
    * @brief Draw the user interface. This function is called only once, whenever the testing state becomes the current state.
    */
    virtual void DrawUserInterface();
    
    /**
    * @brief This functino will be called during every tick, only if the testing state is the current state. 
    * @param deltaTime The time interval between last tick and current tick.
    */
    virtual void Update(float deltaTime);
    
    /**
    * @brief Return wether or not the testing state has a position callback function for the touch screen.
    * @return 0 for not, 1 for yes.
    */
    virtual uint8_t HasTouchPosFunction() const;
    
    /**
    * @brief Return wether or not the testing state has a interrupt callback function for the touch screen.
    * @return 0 for not, 1 for yes.
    */
    virtual uint8_t HasTouchIrqFunction() const;
    
    /**
    * @brief The position callback function for the touch screen. Based on the touch position, the corresponding functionality will be executed. 
    */
    virtual void TouchPosCallback(int16_t x, int16_t y);
    
    /**
    * @brief The interrupt callback function for the touch screen.
    */
    virtual void TouchIrqCallback();
};

#endif //TESTING_STATE_H