Пример #1
0
        public static Lectura FinRondaManual(string tag)
        {
            Lectura l = new Lectura();

            l.Status = 0;
            //--- Montar descarga asociada
            SqlCeConnection conn = CntCN50.TSqlConnection();

            CntCN50.TOpen(conn);
            l.DescargaLinea = new TDescargaLinea();
            l.DescargaLinea.descargaLineaId = CntCN50.GetSiguienteDescargaLineaId(conn);
            l.DescargaLinea.tag             = tag;
            l.DescargaLinea.tipo            = null;
            l.DescargaLinea.tipoId          = 0;
            l.DescargaLinea.nombre          = null;
            l.DescargaLinea.fechaHora       = DateTime.Now;
            //---------
            l.InAuto  = "INCIDENCIA";
            l.Leido   = "FIN RONDA MANUAL";
            l.ObsAuto = "Ha finalizado la ronda manualmente, pulse <CONTINUAR> para seguir con las lecturas.";
            // cambiamos en el estado la ronda
            Estado.Ronda = null;
            Estado.RondaPuntoEsperado = null;
            Estado.Orden = 0;
            return(l);
        }
Пример #2
0
        public static Lectura Observacion()
        {
            if (Estado.RondaPuntoEsperado == null)
            {
                return(null);
            }
            SqlCeConnection conn = CntCN50.TSqlConnection();

            CntCN50.TOpen(conn);
            Lectura l = new Lectura();

            l.Status        = 0;
            l.DescargaLinea = new TDescargaLinea();
            l.DescargaLinea.descargaLineaId = CntCN50.GetSiguienteDescargaLineaId(conn);
            l.DescargaLinea.tag             = "OBSERVACION";
            l.DescargaLinea.tipo            = "OBSERVACION";
            TRondaPunto rp = Estado.RondaPuntoEsperado;

            l.DescargaLinea.tipoId    = 0;
            l.DescargaLinea.nombre    = rp.Punto.nombre;
            l.DescargaLinea.fechaHora = DateTime.Now;
            CntCN50.TClose(conn);
            //---------
            l.InAuto  = "OBSERVACION";
            l.Leido   = rp.Punto.nombre;
            l.ObsAuto = "Introduzca incidencia y/o comentario";
            return(l);
        }
Пример #3
0
        public static Lectura LeidaRonda(TRonda r, string tag)
        {
            Lectura l = new Lectura();

            l.Status = 0; // por defecto no hay tratamiento especial
            // Debería haberse leido previamente un vigilante
            l.Leido = r.nombre;
            //--- Montar descarga asociada
            SqlCeConnection conn = CntCN50.TSqlConnection();

            CntCN50.TOpen(conn);
            l.DescargaLinea = new TDescargaLinea();
            l.DescargaLinea.descargaLineaId = CntCN50.GetSiguienteDescargaLineaId(conn);
            l.DescargaLinea.tag             = tag;
            l.DescargaLinea.tipo            = "RONDA";
            l.DescargaLinea.tipoId          = r.rondaId;
            l.DescargaLinea.nombre          = r.nombre;
            l.DescargaLinea.fechaHora       = DateTime.Now;
            //---------
            if (Estado.Vigilante == null)
            {
                l.InAuto  = "INCIDENCIA";
                l.ObsAuto = "Usuario NO IDENTIFICADO. Realizar lectura de codigo personal.";
            }
            else
            {
                l.InAuto  = "CORRECTO";
                l.ObsAuto = "Inicio de ronda " + r.nombre + ".";
            }
            if (Estado.Ronda != null)
            {
                l.InAuto  = "INCIDENCIA";
                l.ObsAuto = "Ronda anterior SIN CERRAR. Pulsa <Volver> para seguir con la ronda anterior. Pulsa <Continuar> para cerrar la ronda anterior SIN FINALIZAR.";
                l.Status  = 2; // ronda no cerrada
            }
            // salvamos datos de ronda anterior en previsión de cancelar
            Estado.Ronda2 = Estado.Ronda;
            Estado.RondaPuntoEsperado2 = Estado.RondaPuntoEsperado;
            Estado.Orden2 = Estado.Orden;
            // cambiamos en el estado la ronda
            Estado.Ronda = r;
            Estado.RondaPuntoEsperado = r.RondasPuntos[0];
            Estado.Orden = 0;
            return(l);
        }
Пример #4
0
        public static Lectura TagDesconocido(string tag)
        {
            Lectura l = new Lectura();

            l.Status = 0;
            //--- Montar descarga asociada
            SqlCeConnection conn = CntCN50.TSqlConnection();

            CntCN50.TOpen(conn);
            l.DescargaLinea = new TDescargaLinea();
            l.DescargaLinea.descargaLineaId = CntCN50.GetSiguienteDescargaLineaId(conn);
            l.DescargaLinea.tag             = tag;
            l.DescargaLinea.tipo            = null;
            l.DescargaLinea.tipoId          = 0;
            l.DescargaLinea.nombre          = null;
            l.DescargaLinea.fechaHora       = DateTime.Now;
            //---------
            l.InAuto  = "INCIDENCIA";
            l.Leido   = "DESCONOCIDO";
            l.ObsAuto = "El codigo leido no figura en la base de datos.";
            return(l);
        }
Пример #5
0
        public static Lectura ComprobarTag(string tag)
        {
            SqlCeConnection conn = CntCN50.TSqlConnection();

            CntCN50.TOpen(conn);
            // comprobamos si el tag corresponde a un vigilante
            TVigilante v = CntCN50.GetVigilanteFromTag(tag, conn);

            if (v != null)
            {
                CntCN50.TClose(conn);
                return(LeidoVigilante(v, tag));
            }
            // comprobamos si es una ronda
            TRonda r = CntCN50.GetRondaFromTag(tag, conn);

            if (r != null)
            {
                CntCN50.TClose(conn);
                return(LeidaRonda(r, tag));
            }
            // comprobamos si es punto
            TPunto p = CntCN50.GetPuntoFromTag(tag, conn);

            if (p != null)
            {
                CntCN50.TClose(conn);
                return(LeidoPunto(p, tag));
            }
            // cierre manual de ronda
            if (tag == "*99*")
            {
                return(FinRondaManual(tag));
            }
            // desconocido
            CntCN50.TClose(conn);
            return(TagDesconocido(tag));
        }
Пример #6
0
        public static Lectura LeidoPunto(TPunto p, string tag)
        {
            Lectura l = new Lectura();

            l.Status = 0;
            //--- Montar descarga asociada
            SqlCeConnection conn = CntCN50.TSqlConnection();

            CntCN50.TOpen(conn);
            l.DescargaLinea = new TDescargaLinea();
            l.DescargaLinea.descargaLineaId = CntCN50.GetSiguienteDescargaLineaId(conn);
            l.DescargaLinea.tag             = tag;
            l.DescargaLinea.tipo            = "PUNTO";
            l.DescargaLinea.tipoId          = p.puntoId;
            l.DescargaLinea.nombre          = p.nombre;
            l.DescargaLinea.fechaHora       = DateTime.Now;
            // marcar el punto como controlado en la ronda activa
            CntCN50.SetPointLastControl(p.puntoId, conn);
            //---------
            // comprobar si hay una ronda activa
            if (Estado.Ronda == null)
            {
                l.InAuto  = "INCIDENCIA";
                l.Leido   = p.nombre;
                l.ObsAuto = "No hay ninguna ronda activa. Realizar la lectura del Codigo de la ronda deseada.";
                MarcarControlado(Estado.Ronda, p);
                return(l);
            }
            // comprobar si el punto está en secuencia
            TRondaPunto rp = Estado.RondaPuntoEsperado;

            if (p.puntoId == rp.Punto.puntoId)
            {
                l.InAuto  = "CORRECTO";
                l.Leido   = p.nombre;
                l.ObsAuto = "Punto control [" + p.nombre + "] leido en secuencia correcta.";
                MarcarControlado(Estado.Ronda, p);
                // Verificar si es el último punto de la ronda
                return(UltimoEnRonda(l, p));
            }
            // comprobar si pertence a esa ronda
            bool enRonda  = false;
            bool repetido = false;

            for (int i = 0; i < Estado.Ronda.RondasPuntos.Count; i++)
            {
                rp = Estado.Ronda.RondasPuntos[i];
                if (rp.Punto.puntoId == p.puntoId)
                {
                    enRonda = true;
                    if (rp.Controlado)
                    {
                        repetido = true;
                    }
                }
            }
            MarcarControlado(Estado.Ronda, p);
            if (enRonda)
            {
                l.InAuto = "INCIDENCIA";
                l.Leido  = p.nombre;
                if (repetido)
                {
                    l.ObsAuto = "Punto repetido, ya ha leido este punto en la ronda. Pulsa <Volver> para realizar la lectura del Punto Control esperado [" + Estado.RondaPuntoEsperado.Punto.nombre + "]. Pulsar <Continuar> para seguir con la ronda desde el Punto Control leido.";
                    l.Status  = 4; // punto repetido
                }
                else
                {
                    l.ObsAuto = "Punto control leido pertenece a la ronda pero no se ha leido en el orden esperado. Pulsa <Volver> para realizar la lectura del Punto Control esperado [" + Estado.RondaPuntoEsperado.Punto.nombre + "]. Pulsar <Continuar> para seguir con la ronda desde el Punto Control leido.";
                    l.Status  = 1; // punto no en orden.
                }
                // puede que sea el último
                l = UltimoEnRonda(l, p);
            }
            else
            {
                l.InAuto  = "INCIDENCIA";
                l.Leido   = p.nombre;
                l.ObsAuto = "Punto control [" + p.nombre + "] leido NO pertenece a esta ronda.";
            }
            return(l);
        }