Dependencies:   mbed TSI

Revision:
0:62c18ef61b61
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bezpecnost.cpp	Wed Jan 23 23:43:20 2019 +0000
@@ -0,0 +1,76 @@
+/** 
+*   @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);
+}
\ No newline at end of file