Исправление срабатывания таймера при работе бракиратора на пропуск 1908151156
This commit is contained in:
parent
7a5e1ea8e7
commit
78a11ca88f
25
braker.tc
25
braker.tc
|
|
@ -95,8 +95,7 @@ void braker_set(string cmd){
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if (type == "G"){
|
if (type == "G"){
|
||||||
relay_set(brakers[num].config->Relay,true);
|
braker_change_state(num-1,true);
|
||||||
brakers[num].State = true;
|
|
||||||
d("Бракиратор #"+str(num)+" включен по сигналу сервера");
|
d("Бракиратор #"+str(num)+" включен по сигналу сервера");
|
||||||
}else{
|
}else{
|
||||||
d("Бракиратор #"+str(num)+" получил сигнал 'B'. Игнорируем.");
|
d("Бракиратор #"+str(num)+" получил сигнал 'B'. Игнорируем.");
|
||||||
|
|
@ -114,24 +113,18 @@ void braker_proc(unsigned char number)
|
||||||
unsigned long timeout = brakers[num].config->Timeout;
|
unsigned long timeout = brakers[num].config->Timeout;
|
||||||
if (brakers[num].State){ // проверка на выключение
|
if (brakers[num].State){ // проверка на выключение
|
||||||
if (brakers[num].OnTime + timeout < sys.timercountms){ // Обработка таймаута
|
if (brakers[num].OnTime + timeout < sys.timercountms){ // Обработка таймаута
|
||||||
relay_set(brakers[num].config->Relay,false);
|
braker_change_state(num,false);
|
||||||
brakers[num].State = false;
|
|
||||||
d("Бракиратор #"+str(number)+" выключен по таймауту ["+str(sys.timercountms - brakers[num].OnTime)+"/"+str(timeout)+"]ms");
|
d("Бракиратор #"+str(number)+" выключен по таймауту ["+str(sys.timercountms - brakers[num].OnTime)+"/"+str(timeout)+"]ms");
|
||||||
brakers[num].OnTime = 0;
|
|
||||||
}else{ // проверка статуса порта
|
}else{ // проверка статуса порта
|
||||||
if (brakers[num].config->DropPort>0 && getPinState(brakers[num].config->DropPort)){
|
if (brakers[num].config->DropPort>0 && getPinState(brakers[num].config->DropPort)){
|
||||||
relay_set(brakers[num].config->Relay,false);
|
braker_change_state(num,false);
|
||||||
brakers[num].State = false;
|
|
||||||
d("Бракиратор #"+str(number)+" выключен по сигналу сброса через "+str(sys.timercountms - brakers[num].OnTime)+"ms");
|
d("Бракиратор #"+str(number)+" выключен по сигналу сброса через "+str(sys.timercountms - brakers[num].OnTime)+"ms");
|
||||||
brakers[num].OnTime = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{ // проверка на сработку
|
}else{ // проверка на сработку
|
||||||
if (brakers[num].config->Mode==0 && pinChange(brakers[num].config->SensPort) && getPinStateS(brakers[num].config->SensPort,true)){
|
if (brakers[num].config->Mode==0 && pinChange(brakers[num].config->SensPort) && getPinStateS(brakers[num].config->SensPort,true)){
|
||||||
if (braker_get_current(num) == "B"){
|
if (braker_get_current(num) == "B"){
|
||||||
relay_set(brakers[num].config->Relay,true);
|
braker_change_state(num,true);
|
||||||
brakers[num].State = true;
|
|
||||||
brakers[num].OnTime = sys.timercountms;
|
|
||||||
d("Бракиратор #"+str(number)+" включен по сигналу сенсора");
|
d("Бракиратор #"+str(number)+" включен по сигналу сенсора");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -140,6 +133,16 @@ void braker_proc(unsigned char number)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void braker_change_state(unsigned char num, bool state){
|
||||||
|
relay_set(brakers[num].config->Relay,state);
|
||||||
|
brakers[num].State = state;
|
||||||
|
if (state){
|
||||||
|
brakers[num].OnTime = sys.timercountms;
|
||||||
|
}else{
|
||||||
|
brakers[num].OnTime = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
string braker_get_current(unsigned char num){
|
string braker_get_current(unsigned char num){
|
||||||
string c = left(brakers[num].Fifo,1);
|
string c = left(brakers[num].Fifo,1);
|
||||||
int l = len(brakers[num].Fifo);
|
int l = len(brakers[num].Fifo);
|
||||||
|
|
|
||||||
|
|
@ -10,4 +10,5 @@ void braker_proc(unsigned char number);
|
||||||
string braker_get_current(unsigned char num);
|
string braker_get_current(unsigned char num);
|
||||||
void braker_add_port(char port);
|
void braker_add_port(char port);
|
||||||
bool isBrakerPort(int port);
|
bool isBrakerPort(int port);
|
||||||
|
void braker_change_state(unsigned char num, bool state);
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
#message "link global not defined"
|
#message "link global not defined"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define VERSION "2.0b_1908141216"
|
#define VERSION "2.0b_1908151156"
|
||||||
#define MAX_FIFO_SIZE 20
|
#define MAX_FIFO_SIZE 20
|
||||||
#define BRAKER_COUNT 3
|
#define BRAKER_COUNT 3
|
||||||
|
|
||||||
|
|
@ -132,5 +132,6 @@ extern BrakerProcess brakers[BRAKER_COUNT];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue