Benedikt Kicin, vytah semestralka

Dependencies:   mbed

riadenie.cpp

Committer:
kicin2
Date:
2018-01-24
Revision:
0:2574b54351ed
Child:
1:5e6b55099364

File content as of revision 0:2574b54351ed:

/*!
 * \file riadenie.cpp
 * \author Benedikt Kicin
 *Subor riadenie.cpp sluzi na obsluhu vytahu na zaklade prijatych poziadaviek*/

#include "riadenie.h"

unsigned char poschodie = 0xff;
unsigned char ledka = 0xff;
bool spravnePoschodie = true;
bool ostan = false;
unsigned char aktualizujDisplej = 0xff;

/**
*Funkcia sluzi na vykonanie prislusnych poziadaviek podla adresy odosielatela a prijateho bajtu
*@param adresaOdos - adresa odosielatela
*@param bajt - prijaty bajt
*/
void vykonaj(unsigned char adresaOdos,unsigned char bajt)
{
    if(bajt == 0xff && zamknute == false){
        switch (adresaOdos) {
            case 0xb4: //vnutri vytahu
                        poschodie = 4;
                        ledka = 0x24;
                        break;
            case 0xc4: //pred vytahom
                        poschodie = 4;
                        ledka = 0x14;
                        break;
            case 0xb3:
                        poschodie = 3;
                        ledka = 0x23;
                        break;
            case 0xc3:
                        poschodie = 3;
                        ledka = 0x13;
                        break;
            case 0xb2:
                        poschodie = 2;
                        ledka= 0x22;
                        break;
            case 0xc2:
                        poschodie= 2;
                        ledka = 0x12;
                        break;
            case 0xb1:
                        poschodie = 1;
                        ledka = 0x21;
                        break;
            case 0xc1:
                        poschodie = 1;
                        ledka = 0x11;
                        break;
            case 0xb0:
                        poschodie= 0;
                        ledka = 0x20;
                        break;
            case 0xc0:
                        poschodie = 0;
                        ledka = 0x10;
                        break;
            /*case 0xb4:
                        poschodie = 4;
                        if (0xb4)
                            ledka = 0x24;
                        else
                        case 0xc4:
                            ledka = 0x14;
                        break;
            case 0xb3:
                        poschodie = 3;
                        if (0xb3)
                            ledka = 0x23;
                        else
                        case 0xc3:
                            ledka = 0x13;
                        break;
            case 0xb2:
                        poschodie = 2;
                        if (0xb2)
                            ledka= 0x22;
                        else
                        case 0xc2:
                            ledka = 0x12;
                        break;
            case 0xb1:
                        poschodie = 1;
                        if (0xb1)
                            ledka = 0x21;
                        else
                        case 0xc1:
                            ledka = 0x11;
                        break;
            case 0xb0:
                        poschodie= 0;
                        if (0xb0)
                            ledka = 0x20;
                        else
                        case 0xc0:
                            ledka = 0x10;
                        break;*/
        }
    } 
    //sprava senzorov pri vytahu
    else if (bajt == 0x01) {    //0x01 - vytah sa priblizuje k senzoru; 0x02 - je pri senzore
        switch (adresaOdos) {
          case 0xe4:    //limit switch 0xe4 - snimaci senzor na 4.poschodi
                      if(poschodie == 4){
                        spravnePoschodie = true;
                        ostan = true;}
                     else
                        aktualizujDisplej = 0x34; //0x3y - zobrazovanie poschodia displayiu (y - cislo poschodia)
                     break;
          case 0xe3:
                      if(poschodie == 3){
                        spravnePoschodie = true;
                        ostan = true;}
                     else
                        aktualizujDisplej = 0x33;
                     break;
          case 0xe2:
                      if(poschodie == 2){
                        spravnePoschodie = true;
                        ostan = true;}
                     else
                        aktualizujDisplej = 0x32;
                     break;
          case 0xe1:
                      if(poschodie == 1){
                        spravnePoschodie = true;
                        ostan = true;}
                     else
                        aktualizujDisplej = 0x31;
                     break;
          case 0xe0:
                      if(poschodie == 0){
                        spravnePoschodie = true;
                        ostan = true;}
                     else
                        aktualizujDisplej = 0x30;
                     break;
        }
    }
}