elevator

Dependencies:   MMA8451Q mbed

model.h

Committer:
skirmish
Date:
2016-12-18
Revision:
11:95e4e04a7dd2
Parent:
9:97b26dcd1035
Child:
12:1c7b59097090

File content as of revision 11:95e4e04a7dd2:

#ifndef MODEL_H
#define MODEL_H
#include "mbed.h"
#include <map>
#include <iostream>
#include "structures.h"
#include "Serial.h"

typedef  map<string,pair<bool , int > > mMap;
/**
*Trieda pouzita na ovladanie vytahu a seriovu komunikaciu vytahu
*/
class Model
{
public:
    /**Konstruktor , ako parameter si predavam Serial*/
    Model(Serial *pci) ;
    /**Funkcia na odosielane znakov cez serial
 *@param startByte zatial vzdy 0xa0
    *@param target adresa prijmaca
    *@param source adresa odosielatela
    *@param data pole charov , data ktore chcem odoslat
    *@param DataSize - velkost data
    */
    void sendPacket(char startByte,char target,char source,char *data,int DataSize);
    /**Funkcia na ovladanie vytahu na zaklade prijateho parametra*/
    void doSomething(char data);
    char getSourceAdd() {
        return sourceAdd;
    }
private:
    /**
    *Funkcia na vypocet CRC8
    *@param targetAddr adresa prijmaca
    *@param senderAddr adresa odosielatela
    *@param data pole charov , data ktore chcem odoslat
    *@param DataSize - velkost data
    */
    char crcCalc(char targetAddr, char senderAddr, char *data,int DataSize);
    /**
    *Funkcia otvarania a zatvaranie dveri otvor=0 ,zatvor=1
    *
    */
    void setDoorStatus(bool mValue);
    /**
    *Funckie na ovladanie motora 
    *downMotor -smer nahor
    *upMotor- smer nadol
    *stopMotor-stop
    */
    void downMotor();
    void upMotor();
    void stopMotor();

    bool p4,p3,p2,p1,p0;
    /**
    *Funkcia, ktora je vyvolana pri preruseni  serial
    */
    void SerialCallBack();
    /**
    *Funkcia, ktora je vyvolavana na zaklade nastaveneho casu pre ticker
    */
    void TickerCallBack();
    /**
    *        Funkcia, ktora je vyvolavana na zaklade uplinutia nastaveneho casu pre timeout
    */
    void TimeOutCallBack();
    void DoorUnlock();
    /*Variable*/
    char rTarget;
    char rSource;
    int rLength;
    char *rData;
    bool dataSent;
    char startByteIn;
    char targetAdd;
    char sourceAdd;
    char DataLength;
    char *DataIn;
    char CrcIn;
    char watchDog[1];
    static unsigned char crcArray[] ;
    Commands *cmd;
    map<string, bool> mapPoschodie;
    int direction;
    int poschodie;
    Serial *pc;
    Ticker tc;
    Timeout tmOut;
    Timeout tmOut2;

    bool sendDataOk;
};
#endif