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
- User.cpp = Define los métodos y atributos básicos de un usuario.
SOURCES = User.cpp mainUser.cpp- UserAdmin.cpp = Clase de Usuario administrador
SOURCES = User.cpp UserAdmin.cpp mainUserAdmin.cpp- UserEmployee.cpp = Clase de Usuario employee
SOURCES = User.cpp UserEmployee.cpp mainUserEmployee.cpp- UserGuest.cpp = Clase de Usuario guest
SOURCES = User.cpp UserGuest.cpp mainUserGuest.cpp- 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- 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- 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- TemperatureCamera.cpp = Define los métodos y los atributos básicos de una cámara termica
SOURCES = Camera.cpp TemperatureCamera.cpp mainTemperatureCamera.cpp- RGBCamera.cpp = Define los métodos y los atributos básicos de una cámara RGB
SOURCES = Camera.cpp RGBCamera.cpp mainRGBCamera.cpp- 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
- Sensor.cpp = Define los métodos y atributos básicos de un sensor
SOURCES = Sensor.cpp mainSensor.cpp- TemperatureSensor.cpp = Define los métodos y atributos de un sensor de temperatura
SOURCES = Sensor.cpp TemperatureSensor.cpp mainTemperatureSensor.cpp- AirQualitySensor.cpp = Define los métodos y atributos de un sensor de aire
SOURCES = Sensor.cpp AirQualitySensor.cpp mainAirQualitySensor.cpp- HydrometerSensor.cpp = Define los métodos y atributos de un hydrometro
SOURCES = Sensor.cpp HydrometerSensor.cpp mainHydrometerSensor.cpp- PressureSensor.cpp = Define los métodos y atributos de un sensor de presión
SOURCES = Sensor.cpp PressureSensor.cpp mainPressureSensor.cpp- LightSensor.cpp = Define los métodos y atributos de un sensor de luz
SOURCES = Sensor.cpp LightSensor.cpp mainLightSensor.cpp- PhSensor.cpp = Define los métodos y atributos de un sensor de pH
SOURCES = Sensor.cpp PhSensor.cpp mainPhSensor.cpp- Hardware.cpp = Define los métodos y atributos de un hardware generico (pantalla/teclado/interruptor)
SOURCES = Hardware.cpp mainHardware.cpp - ScreenHardware.cpp = Define los métodos y atributos necesarios de una pantalla
SOURCES = Hardware.cpp mainScreenHardware.cpp ScreenHardware.cpp- KeyboardHardware.cpp = Define los métodos y atributos necesarios de un teclado
SOURCES = Hardware.cpp mainKeyboardHardware.cpp KeyboardHardware.cpp- SwitchHardware.cpp = Define los métodos y atributos necesarios de un interruptor
SOURCES = Hardware.cpp mainSwitchHardware.cpp SwitchHardware.cpp- 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- 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- 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:
- admin 12345678X admin ADMIN admin@example.com
- employee 12345678Y employee EMPLOYEE employee@example.com
- guest 12345678Z guest GUEST guest@example.com
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- Crear el guardar en ficheros binarios, en este caso tanto los datos de los Usuarios como los datos de los Sensores
- 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
- 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
- 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:
doxygen -g- Configurar el fichero doxygen (ruta donde generar los HTML y el LATEX, idioma, versión de nuestra documentación...)
- Ejecutar Doxygen
doxygen Doxyfile- Ahora podemos ver el HTML en la carpeta de HTML generada, el fichero principal es index.html
- Ahora con el LATEX podemos compilarlo en un pdf (refman.pdf), es tan sencillo como usar el Makefile:
make- 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_stylePor defecto el SOURCES tiene todo lo necesrio para compilar el programa principal main.cpp. Aquí están los pasos
- 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- Compilar con el comando del apartado anterior:
make- Ejecutar el programa, cualquier programa se ejecutara como a continación independientemente del SOURCES del MakeFile
./main



