Skip to content

aMonteSl/GreenHouse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

P8-Ficheros_23-24

Autor: Adrián Montes Linares

Introducción

El programa principal se encuentra en main.cpp donde podremos lanzar el sistema del invernadero y realizar todas las operaciones posibles. Como compilar el main.cpp y ejecutar el programa se enseñara más adelante. De momento muestro todas las clases, una explicación breve de ellas y que SOURCES tiene que tener el MakeFile para probar cada clase

  1. User.cpp = Define los métodos y atributos básicos de un usuario.
SOURCES = User.cpp mainUser.cpp
  1. UserAdmin.cpp = Clase de Usuario administrador
SOURCES = User.cpp UserAdmin.cpp mainUserAdmin.cpp
  1. UserEmployee.cpp = Clase de Usuario employee
SOURCES = User.cpp UserEmployee.cpp mainUserEmployee.cpp
  1. UserGuest.cpp = Clase de Usuario guest
SOURCES = User.cpp UserGuest.cpp mainUserGuest.cpp
  1. UserDatabase.cpp = Define los métodos y atributos básicos de una base de datos que almacena usuarios. (Maneja a cada usuario de manera individual de una base de datos)
SOURCES = User.cpp UsersDatabase.cpp mainUsersDatabase.cpp UserAdmin.cpp UserEmployee.cpp UserGuest.cpp
  1. UsersServer.cpp = Define los métodos y atributos básicos de un servidor que maneja una base de datos. (Maneja al conjunto de usuarios de una base de datos)
SOURCES = User.cpp UsersDatabase.cpp mainUsersServer.cpp UsersServer.cpp UserAdmin.cpp UserEmployee.cpp UserGuest.cpp
  1. Camera.cpp = Define los métodos y los atributos básicos de una cámara (no esta creado un mainCameras.cpp)
SOURCES = Camera.cpp mainCameras.cpp
  1. TemperatureCamera.cpp = Define los métodos y los atributos básicos de una cámara termica
SOURCES = Camera.cpp TemperatureCamera.cpp mainTemperatureCamera.cpp
  1. RGBCamera.cpp = Define los métodos y los atributos básicos de una cámara RGB
SOURCES = Camera.cpp RGBCamera.cpp mainRGBCamera.cpp
  1. ManageCameras.cpp = Define los métodos y los atributos básicos para controlar las cámaras del sistema
SOURCES = Camera.cpp TemperatureCamera.cpp RGBCamera.cpp mainmanageCamera.cpp
  1. Sensor.cpp = Define los métodos y atributos básicos de un sensor
SOURCES = Sensor.cpp mainSensor.cpp
  1. TemperatureSensor.cpp = Define los métodos y atributos de un sensor de temperatura
SOURCES = Sensor.cpp TemperatureSensor.cpp mainTemperatureSensor.cpp
  1. AirQualitySensor.cpp = Define los métodos y atributos de un sensor de aire
SOURCES = Sensor.cpp AirQualitySensor.cpp mainAirQualitySensor.cpp
  1. HydrometerSensor.cpp = Define los métodos y atributos de un hydrometro
SOURCES = Sensor.cpp HydrometerSensor.cpp mainHydrometerSensor.cpp
  1. PressureSensor.cpp = Define los métodos y atributos de un sensor de presión
SOURCES = Sensor.cpp PressureSensor.cpp mainPressureSensor.cpp
  1. LightSensor.cpp = Define los métodos y atributos de un sensor de luz
SOURCES = Sensor.cpp LightSensor.cpp mainLightSensor.cpp
  1. PhSensor.cpp = Define los métodos y atributos de un sensor de pH
SOURCES = Sensor.cpp PhSensor.cpp mainPhSensor.cpp
  1. Hardware.cpp = Define los métodos y atributos de un hardware generico (pantalla/teclado/interruptor)
SOURCES = Hardware.cpp mainHardware.cpp 
  1. ScreenHardware.cpp = Define los métodos y atributos necesarios de una pantalla
SOURCES = Hardware.cpp mainScreenHardware.cpp ScreenHardware.cpp
  1. KeyboardHardware.cpp = Define los métodos y atributos necesarios de un teclado
SOURCES = Hardware.cpp mainKeyboardHardware.cpp KeyboardHardware.cpp
  1. SwitchHardware.cpp = Define los métodos y atributos necesarios de un interruptor
SOURCES = Hardware.cpp mainSwitchHardware.cpp SwitchHardware.cpp
  1. AlarmSensors.cpp = Define los métodos y atributos necesarios para manejar todos los sensores y sus alarmas
SOURCES = Sensor.cpp TemperatureSensor.cpp AirQualitySensor.cpp HydrometerSensor.cpp PressureSensor.cpp LightSensor.cpp PhSensor.cpp mainAlarmSensor.cpp AlarmSensor.cpp
  1. MonitoringSystem.cpp = Define los métodos y atributos necesarios para manejar el sistema implementando un hardware de cada tipo
SOURCES = Hardware.cpp MonitoringSystem.cpp mainMonitoringSystem.cpp KeyboardHardware.cpp ScreenHardware.cpp SwitchHardware.cpp
  1. GreenHouse.cpp = Define los métodos y atributos necesarios para lanzar el sistema del invernadero, controlarlo, ver los sensores, usuarios y el resto de funciones según el rol que tengamos. Por defecto siempre hay tres usuarios, uno de cada tipo
  • Nombre NIF Contraseña Privilegios Correo:
SOURCES =  main.cpp GreenHouse.cpp Camera.cpp TemperatureCamera.cpp RGBCamera.cpp ManageCameras.cpp AlarmSensors.cpp UsersServer.cpp MonitoringSystem.cpp AirQualitySensor.cpp Hardware.cpp HydrometerSensor.cpp KeyboardHardware.cpp LightSensor.cpp TemperatureSensor.cpp UserAdmin.cpp UserGuest.cpp UserEmployee.cpp User.cpp PhSensor.cpp PressureSensor.cpp ScreenHardware.cpp Sensor.cpp SwitchHardware.cpp UsersDatabase.cpp

Objetivos de la práctica

  • Crear el guardar en ficheros binarios, en este caso tanto los datos de los Usuarios como los datos de los Sensores

Usuarios

  • Ya se guardaban en un users.txt, ahora también en un users.dat. Se guardan los usuarios tanto en plano como en binario y se leen actualmente del archvio binario, pero cambiando una línea se puede leer los usuarios del users.txt en vez del users.dat
  1. WriteUsersBinario SaveUsersBinario

  2. ReadUsersBinario ReadUsersBi

Sensores

  • Al igual que los usuarios, se guardan en plano y en binario, y actualmente se cargan los datos en binario, pero cambiando una línera se puede leer los usuarios del sensors.txt en vez del sensors.dat
  1. WriteSensorsBinario SaveSensorsBinario

  2. ReadSensorsBinario ReadSensorsBinario

Doxygen

  • Gracias a Doxygen si nuestro programa tiene comentarios enriquezidos podemos generar una documentación en HTML y en LATEX, a continuación los pasos para generar la documentación:
  1. Comentarios Enriquezidos comentariosDox
  2. Generar fichero configuración Doxyfile
doxygen -g
  1. Configurar el fichero doxygen (ruta donde generar los HTML y el LATEX, idioma, versión de nuestra documentación...)
  2. Ejecutar Doxygen
doxygen Doxyfile
  1. Ahora podemos ver el HTML en la carpeta de HTML generada, el fichero principal es index.html
  2. Ahora con el LATEX podemos compilarlo en un pdf (refman.pdf), es tan sencillo como usar el Makefile:
make

Compilar y ejecutar

Compilar

  • Con el siguiente comando se compila todos los .cpp que se encuntren en SOURCES
make
  • Con el siguiente comando se limpia todos los .o de los .cpp que se encuetren en SOURCES
make clean
  • Con el siguiente comando se le aplican unas normas de estilo a los .cpp y a los .h
make set_style

Ejecutar

Por defecto el SOURCES tiene todo lo necesrio para compilar el programa principal main.cpp. Aquí están los pasos

  1. Comprobar que el SOURCES es el necesario para compilar main.cpp, por defecto esta puesto el SOURCES correcto:
SOURCES =  main.cpp GreenHouse.cpp Camera.cpp TemperatureCamera.cpp RGBCamera.cpp ManageCameras.cpp AlarmSensors.cpp UsersServer.cpp MonitoringSystem.cpp AirQualitySensor.cpp Hardware.cpp HydrometerSensor.cpp KeyboardHardware.cpp LightSensor.cpp TemperatureSensor.cpp UserAdmin.cpp UserGuest.cpp UserEmployee.cpp User.cpp PhSensor.cpp PressureSensor.cpp ScreenHardware.cpp Sensor.cpp SwitchHardware.cpp UsersDatabase.cpp
  1. Compilar con el comando del apartado anterior:
make
  1. Ejecutar el programa, cualquier programa se ejecutara como a continación independientemente del SOURCES del MakeFile
./main

About

Object-oriented greenhouse simulator with sensors, actuators and roles.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors