Olivia_v2017/Olivia/olv_reco.h

84 lines
2.9 KiB
C++

#pragma once
#ifdef OLIVIA_COMPILA
#include "olv_limp.h"
#include "olv_sens_ws.h"
class COlivia;
class Colv_reco_thr;
#define OLV_RECO_GRUPO_SENS "CAMPOS_SENS"
#define OLV_RECO_PARAM_FN "fn"
#define OLV_RECO_PARAM_ID "id"
#define OLV_RECO_PARAM_USR "usr"
#define OLV_RECO_PARAM_PWD "pwd"
#define OLV_RECO_PARAM_STRD "startd"
#define OLV_RECO_PARAM_ENDD "endd"
#define OLV_RECO_PARAM_FN_STAT "fn_status"
#define OLV_RECO_PARAM_USR_USR "usr_usr"
#define OLV_RECO_PARAM_PWD_PWD "pwd_pwd"
#define OLV_RECO_PARAM_JS_ID "js_id"
#define OLV_RECO_PARAM_JS_HISTO "js_histo"
#define OLV_RECO_PARAM_JS_PORC "js_porc"
#define OLV_RECO_PARAM_JS_R_CODE "js_r_cd"
#define OLV_RECO_PARAM_JS_R_CODE_ERR "js_r_cd_err"
#define OLV_RECO_PARAM_JS_R_DATA "js_r_dt"
/**
* @file olv_reco.h
* Archivo de definiciones y variables de la utilidad de recogida de residuos del programa Olivia.
*/
/**
* Estructura que contiene los nombres de los campos a leer
*/
typedef struct Campos_dbf_reco
{
char campo_uds[OLV_LIMP_MAX_CAMP];
char campo_capa[OLV_LIMP_MAX_CAMP];
char campo_kgcont[OLV_LIMP_MAX_CAMP];
}Campos_dbf_reco;
/**
* Enumeración para identificar si es instalación de salida llegada o planta de descarga
*/
enum InstalPlant{
OLV_INSTAL,
OLV_PLANT,
};
/**
* Clase de definiciones y variables de la utilidad de recogida de residuos del programa Olivia.
*/
class Colv_reco : public Colv_limp
{
public:
//*************************************************************************************
//Variables
Colv_reco_thr *thr_reco; ///<Instancia del thread de recogida, que hace las operaciones
Campos_dbf_reco camps_r; ///<Campos a leer de la dbf
short *ptos_vaci; ///<Array de tamaño Namb, donde indica si en ese ámbito va a vaciar o a descargar
int *info_carg; ///<Array para guardar la info de carga de los sensores
int t_vaci; ///<Tiempo de vaciado de cada contenedor, en segundos
int t_descarg; ///<Tiempo de descarga en planta, en segundos
double dens_frac; ///<Densidad de la fracción a recoger, en kg/m3
double kg_max; ///<Kg máximos de recogida por vehículo en cada ruta
double kg_reco_def; ///<Kg por defecto que se recogen en cada contenedor
double anch_vehi; ///<Ancho del vehículo, en metros
double giro_vehi; ///<Giro mínimo del vehículo, en º
double coor_plant[3]; ///<Coordenadas de la planta donde va a descargar
Info_sens info_sens; ///<Información para la conexión al ws de los sensores
//*************************************************************************************
//Funciones
Colv_reco(COlivia *olv);
~Colv_reco(void);
void rellena_campos();
int pon_config(char *config);
void inicia_limp();
BOOL inicia();
void dame_cost(double ltot, int ia, float *cost, float *cost2);
void cancela();
void rellena_campos_sens();
BOOL lee_campos_sens_ini(char *path);
BOOL guarda_campos_sens_ini(char *path);
};
#endif