
control simulation of elevator
bezpecnost.cpp
- Committer:
- kicin2
- Date:
- 2019-01-23
- Revision:
- 1:7dea46c9d8dc
- Parent:
- 0:62c18ef61b61
File content as of revision 1:7dea46c9d8dc:
/** * @file bezpecnost.cpp * @brief Súbor obsahuje funkcie ktoré zabezpečujú bezpečnosť výťahu * @author Benedikt Kicin * @date 21.1.2018 */ #include "mbed.h" #include "TSISensor.h" #include "komunikacia.h" Ticker timerEmerg; //timer pre Emergency Break Ticker timerWatch; //timer pre WatchDog TSISensor tsi; //capacitive touch slider float pomTSIBreak; PwmOut led(LED_BLUE); /** * Funkcia ktorá odošle paket pre aktiváciu Bezpečnostnej brzdy */ void Emergency() { //komu; od koho; kto ma vykonat; 1b; aktivovat brzdu int packet0[]= {0xA0,0xf,0x00,0x01,0x01}; //doska; emergBreak; vytah; velkost dat; data-activate sendTo(packet0); } /** * Funkcia ktorá odošle paket pre deaktiváciu Bezpečnostnej brzdy */ void EmergencyDeact() { pomTSIBreak=0; int packet0[]= {0xA0,0xf,0x00,0x01,0x00}; sendTo(packet0); } /** * Funkcia ktorá odošle Sledovaciemu zariadeniu - WatchDog-u packet pre reset */ void WatchDogReset() //1 - reset , else - ticker { int packet0[]= {0xA0,0xfe,0x00,0x01,0x01}; ///tu odosielam packet pre reset watchdou sendTo(packet0); } /** * Funkciaktorá pravidelne odosiela WatchDog-u paket pre udržanie behu programu */ void WatchDog() { int packet0[]= {0xA0,0xfe,0x00,0x01,0x02}; sendTo(packet0); } /** * Funkcia, ktorá deteguje na TSI senzore náraz a vyvolá Bezpečnostnú brzdu */ void TSIBreak() { pomTSIBreak += tsi.readPercentage(); led = 1.0 - tsi.readPercentage(); if(pomTSIBreak > 0.1) Emergency(); } /** * Obsluha prerušenia pre Bezpečnostnú brzdu zastavenia výťahu a WatchDogu */ void EmergBreak() { EmergencyDeact(); WatchDogReset(); timerWatch.attach(&WatchDog,1.0); timerEmerg.attach(&TSIBreak,1.0); }