Created
October 25, 2021 04:00
-
-
Save gbrennon/93831c38d344365eea22edce0170ab02 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdlib.h> | |
#include <stdio.h> | |
#include <time.h> | |
#include <pthread.h> | |
#define sensor_alto1 100; | |
#define sensor_alto2 150; | |
#define sensor_alto3 200; | |
time_t tempo_inicio, tempo_agora, tempo_total; //Variáveis do tipo time_t | |
int sensor; | |
bool comando_reator; //False = Mantém os Reatores. True = Desliga Reatores. | |
void ReatorSafe() //Função ReatorSafe | |
{ | |
printf("Reator pode continuar ligado"); | |
} | |
void ReatorOff() //Função ReatorOff | |
{ | |
printf("Reator precisa ser desligado"); | |
} | |
int ler_sensor() //Função que realiza leitura da temperatura, em loop infinito --Thread0 | |
{ | |
pthread_t thread0; | |
while(1) | |
{ | |
sensor = TempRead(void); | |
} | |
} | |
int ler_console() //Console que interpreta os valores do sensor --Thread1 | |
{ | |
pthread_t thread1; | |
while(1) | |
{ | |
tempo_inicio = 0; | |
if(sensor <= sensor_alto1) | |
comando_reator = false; | |
else if(sensor == sensor_alto2 || sensor < sensor_alto3) | |
{ | |
while(sensor <= sensor_alto2 || sensor > sensor_alto1) | |
{ | |
tempo_agora = time(NULL); | |
tempo_total=tempo_agora-tempo_inicio; | |
if(tempo_total > 200) | |
comando_reator = false; | |
else | |
comando_reator = true; | |
} | |
} | |
else if(sensor >= sensor_alto3) | |
ReatorOff; | |
} | |
} | |
int muda_reator() //Função que interpreta os comandos do console e liga/desliga reator | |
{ | |
while(1) | |
{ | |
if(comando_reator == True) | |
ReatorOff; | |
else if(comando_reator == False) | |
ReatorSafe; | |
} | |
} | |
main() | |
{ | |
pthread_create(&thread1, NULL, ler_sensorsensor, sensor); | |
pthread_create(&thread2, NULL, ler_console, comando_reator); | |
pthread_create(&thread3, NULL, muda_reator, NULL); | |
system("pause"); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment