public List <MonitoreoDispositivos> parseaTramaAlarmaDispositivo(AlarmasObj alarma)
        {
            List <MonitoreoDispositivos> alarmas    = new List <MonitoreoDispositivos>();
            MonitoreoDispositivos        monitoreoC = new MonitoreoDispositivos();
            MonitoreoDispositivos        monitoreoS = new MonitoreoDispositivos();

            int[] conf = new int[alarma.estado_suministro.Length];
            int[] sum  = new int[alarma.estado_dispositivo.Length];

            /* En este for se saca el estado de cada uno de los dispositivos referenciados en el
             * manual en el capitulo 9 */
            for (int i = 0; i < alarma.estado_suministro.Length - 1; i++)
            {
                conf[i] = int.Parse(alarma.estado_suministro[i].ToString());
            }
            /*Suministros*/
            for (int i = 0; i < alarma.estado_dispositivo.Length - 1; i++)
            {
                sum[i] = int.Parse(alarma.estado_dispositivo[i].ToString());
            }
            monitoreoC.id_atm                = terminal.id_atm;
            monitoreoC.estado_lectora        = conf[3].ToString();// En esta posición se encuentra el estado de lectora
            monitoreoC.estado_dispensador    = conf[4].ToString();
            monitoreoC.estado_impresora      = conf[6].ToString();
            monitoreoC.estado_impresora_jrnl = conf[7].ToString();
            monitoreoC.estado_encriptora     = conf[11].ToString();
            monitoreoC.estado_gaveta1        = conf[15].ToString();
            monitoreoC.estado_gaveta2        = conf[16].ToString();
            monitoreoC.estado_gaveta3        = conf[17].ToString();
            monitoreoC.estado_gaveta4        = conf[18].ToString();
            monitoreoC.estado_gaveta5        = "0";
            monitoreoC.tipo_estado           = "C";
            /*Ver estados severidad en pagina 445 NDC tabla 9-13*/

            monitoreoS.id_atm                = terminal.id_atm;
            monitoreoS.estado_lectora        = sum[3].ToString();// En esta posición se encuentra el estado de lectora
            monitoreoS.estado_dispensador    = sum[4].ToString();
            monitoreoS.estado_impresora      = sum[6].ToString();
            monitoreoS.estado_impresora_jrnl = sum[7].ToString();
            monitoreoS.estado_encriptora     = "0";
            monitoreoS.estado_gaveta1        = sum[15].ToString();
            monitoreoS.estado_gaveta2        = sum[16].ToString();
            monitoreoS.estado_gaveta3        = sum[17].ToString();
            monitoreoS.estado_gaveta4        = sum[18].ToString();
            monitoreoS.estado_gaveta5        = "0";
            monitoreoS.tipo_estado           = "S";
            /*Ver estados en pagina 454 NDC tabla 9-16*/
            alarmas.Add(monitoreoC);
            alarmas.Add(monitoreoS);
            return(alarmas);
        }
Beispiel #2
0
        public List <AlarmasObj> control_buscar_alarma_atm(AlarmasObj alarma)
        {
            conBdd.abrir_conexion_base();
            List <AlarmasObj> alarmas = new List <AlarmasObj>();

            try
            {
                alarmas = conBdd.obtener_alarma(alarma);
            }
            catch (Exception e)
            {
                logSistema.escritura_archivo_string(e.Message);
            }
            finally
            {
                conBdd.cerrar_conexion_base();
            }
            return(alarmas);
        }
Beispiel #3
0
        public void cliente_servicio()
        {
            try
            {
                sincronico = true;
                AlarmasObj mensajeEnvioRecep = new AlarmasObj();
                this.comadoToATM.setPonerEnServicio();
                string datoEnvio     = this.comadoToATM.getTramaComandoTerminal();
                string datoRespuesta = "";
                datoIn("CONEXION NUEVA TERMINAL :" + terminal.codigo);
                enviarDato = true;
                while (sincronico)
                {
                    if (enviarDato)
                    {
                        clienteConectado = true;
                        datoEnvio        = comadoToATM.getTramaComandoTerminal();
                        envio_string(datoEnvio);
                        mensajeEnvioRecep = parseoAlrma.parseaTramaIngreso(datoEnvio.Substring(2, datoEnvio.Length - 2));
                        mensajeEnvioRecep.envio_recepcion = 0;//cero envio, uno recibo

                        terminalArchivo.escritura_archivo_string(">>>[" + datoEnvio.Length + "] : " + datoEnvio);
                        enviarDato = false;
                        datoIn("[" + terminal.codigo + "]:" + datoEnvio.Substring(2, datoEnvio.Length - 2));
                        conBdd.insertar_alarmas(mensajeEnvioRecep);
                        datoEnvio = "";
                    }
                    datoRespuesta = recepcion_de_datos();
                    if (!string.IsNullOrEmpty(datoRespuesta) && datoRespuesta.Length > 2)
                    {
                        terminalArchivo.escritura_archivo_string("<<<[" + datoRespuesta.Length + "] : " + datoRespuesta);
                        datoResp("[" + terminal.codigo + "]:" + datoRespuesta.Substring(2, datoRespuesta.Length - 2));
                        mensajeEnvioRecep = parseoAlrma.parseaTramaIngreso(datoRespuesta.Substring(2, datoRespuesta.Length - 2));
                        mensajeEnvioRecep.envio_recepcion = 1; //cero envio, uno recibo
                        /*Si al momento de inserta devuelve 1 se procede con el envio de la notificacion a los usuarios*/
                        string [] resultado = conBdd.insertar_alarmas(mensajeEnvioRecep);
                        string    enviarStr = resultado[1];
                        string    id_suceso = resultado[0];
                        int       enviar    = int.Parse(enviarStr);
                        if (mensajeEnvioRecep.descriptor != null)
                        {
                            if (mensajeEnvioRecep.descriptor.Equals("F"))
                            {
                                if (mensajeEnvioRecep.id_tipo_dispositivo.Equals("1"))
                                {
                                    List <MonitoreoDispositivos> mts = parseoAlrma.parseaTramaAlarmaDispositivo(mensajeEnvioRecep);
                                    foreach (MonitoreoDispositivos tmp in mts)
                                    {
                                        conBdd.insertar_actualizar_monitoreo_dispositivos(tmp);
                                    }
                                }
                            }
                        }
                        else if (mensajeEnvioRecep.id_tipo_dispositivo != null)
                        {
                            if (mensajeEnvioRecep.id_tipo_dispositivo.Equals("P"))
                            {
                                /*con estado 2 indica si entro o no a modo supervisor*/
                                if (mensajeEnvioRecep.estado_dispositivo.Equals("2"))
                                {
                                    terminal.modoSupervisor = mensajeEnvioRecep.error_severidad == "1";
                                    conBdd.actualizar_terminal(terminal);
                                }
                            }
                        }

                        if (enviar == 1)
                        {
                            mensajeEnvioRecep.id_alarma = int.Parse(id_suceso);
                            if (mensajeEnvioRecep.error_severidad == null)
                            {
                                mensajeEnvioRecep.error_severidad = "99";
                            }
                            DetalleDescripcionObj detalleDes = conBdd.obtener_detalle_por_alarma_terminal(mensajeEnvioRecep);
                            //string mensaje = conBdd.obtener_descripcion_error(int.Parse(mensajeEnvioRecep.error_severidad), mensajeEnvioRecep.id_tipo_dispositivo);
                            detalleDes = parseoAlrma.procesamientoDescripcion(detalleDes);
                            string mensaje = detalleDes.detalle_descripcion;
                            if (string.IsNullOrEmpty(mensaje))
                            {
                                mensaje = "Sin detalle, por favor consulte con el personal tecnico ";
                            }
                            List <UsuarioObj> sendUsuario = new List <UsuarioObj>();
                            sendUsuario = conBdd.obtener_usuario_por_terminal(terminal);
                            mensaje    += " Cajero :" + terminal.codigo;
                            notificacion.enviarNotificacionUsuario(sendUsuario, mensaje, id_suceso);
                        }
                        datoRespuesta = "";
                    }
                }
            }catch (SocketException ex)
            {
                error.escritura_archivo_string(ex.StackTrace);
                //mensaje_error_sistema(ex.Message, Color.Red);
                //mensaje_error_sistema(ex.StackTrace,Color.Red);
                sincronico        = false;
                clienteConectado  = false;
                terminal.conexion = false;
                conBdd.actualizar_terminal(terminal);
            }catch (ErrorConexionTerminal ex)
            {
                //mensaje_error_sistema(ex.Message, Color.Green);
                sincronico        = false;
                clienteConectado  = false;
                terminal.conexion = false;
                error.escritura_archivo_string(ex.Message);
                conBdd.actualizar_terminal(terminal);
            }
            catch (Exception ex)
            {
                error.escritura_archivo_string(ex.StackTrace);
                //mensaje_error_sistema(ex.Message, Color.Red);
                //mensaje_error_sistema(ex.StackTrace,Color.Red);
                sincronico        = false;
                clienteConectado  = false;
                terminal.conexion = false;
                conBdd.actualizar_terminal(terminal);
            }finally
            {
                cerrar_conexion();
            }
        }
Beispiel #4
0
        public void cliente_servicio()
        {
            try
            {
                sincronico = true;
                //conBdd.abrir_conexion_base();
                AlarmasObj mensajeEnvioRecep = new AlarmasObj();
                mensajeEnvioRecep.id_atm = terminal.id_atm;
                this.comadoToATM.setPonerEnServicio();
                string datoEnvio     = this.comadoToATM.getTramaComandoTerminal();
                string datoRespuesta = "";
                //envio_string(datoEnvio);
                datoIn("CONEXION NUEVA TERMINAL :" + terminal.codigo);
                enviarDato = true;
                while (sincronico)
                {
                    //verificarConexion();

                    if (enviarDato)
                    {
                        clienteConectado = true;
                        datoEnvio        = comadoToATM.getTramaComandoTerminal();
                        envio_string(datoEnvio);

                        mensajeEnvioRecep.fecha_registro  = System.DateTime.Now;
                        mensajeEnvioRecep.envio_recepcion = 0; //cero envio, uno recibo

                        terminalArchivo.escritura_archivo_string(">>>[" + datoEnvio.Length + "] : " + datoEnvio);
                        enviarDato = false;
                        datoIn(datoEnvio.Substring(2, datoEnvio.Length - 2));
                        mensajeEnvioRecep.mensaje = datoEnvio.Substring(2, datoEnvio.Length - 2);
                        conBdd.insertar_alarmas(mensajeEnvioRecep);
                        datoEnvio = "";
                    }
                    datoRespuesta = recepcion_de_datos();
                    if (!string.IsNullOrEmpty(datoRespuesta) && datoRespuesta.Length > 2)
                    {
                        terminalArchivo.escritura_archivo_string("<<<[" + datoRespuesta.Length + "] : " + datoRespuesta);
                        datoResp(datoRespuesta.Substring(2, datoRespuesta.Length - 2));
                        mensajeEnvioRecep.mensaje         = datoRespuesta.Substring(2, datoRespuesta.Length - 2);
                        mensajeEnvioRecep.fecha_registro  = System.DateTime.Now;
                        mensajeEnvioRecep.envio_recepcion = 1; //cero envio, uno recibo
                        conBdd.insertar_alarmas(mensajeEnvioRecep);
                        datoRespuesta = "";
                    }

                    /*else {
                     *  comadoNDC.setSolicitarInformacionConfiguracion();
                     *  envio_string(comadoNDC.getTramaComandoTerminal() + "");// Envio para verifficar si esta conectado el terminal
                     * }*/
                }
            }catch (SocketException ex)
            {
                error.escritura_archivo_string(ex.StackTrace);
                mensaje_error_sistema(ex.Message, Color.Red);
                mensaje_error_sistema(ex.StackTrace, Color.Red);
                sincronico       = false;
                clienteConectado = false;
            }catch (ErrorConexionTerminal ex)
            {
                mensaje_error_sistema(ex.Message, Color.Green);
                sincronico       = false;
                clienteConectado = false;
            }
            catch (Exception ex)
            {
                error.escritura_archivo_string(ex.StackTrace);
                mensaje_error_sistema(ex.Message, Color.Red);
                mensaje_error_sistema(ex.StackTrace, Color.Red);
                sincronico       = false;
                clienteConectado = false;
            }finally
            {
                cerrar_conexion();
            }
        }
 public List <AlarmasObj> obtener_alarma_atm(AlarmasObj alarma)
 {
     return(controlUsr.control_buscar_alarma_atm(alarma));
 }
        /* Metodo para procesar las tramas de alarmas del cajero automatico*/
        public AlarmasObj parseaTramaIngreso(string tramaIng)
        {
            AlarmasObj alarma = new AlarmasObj();

            alarma.mensaje = tramaIng;
            alarma.id_atm  = terminal.id_atm;
            string[] campos = tramaIng.Split((char)28);// es el FS  caracter 28
            alarma.id_mensaje     = campos[0];
            alarma.fecha_registro = System.DateTime.Now;
            try
            {
                /*PARA MENSAJES NO SOLICITADOS DE ALARMAS*/
                if (campos[0].Equals("12"))
                {
                    alarma.tipo_alarma = "A";
                    try
                    {
                        //obtenemos el tipo de dispositivo
                        alarma.id_tipo_dispositivo = campos[3].Substring(0, 1);
                        if (alarma.id_tipo_dispositivo.Equals("P"))
                        {
                            alarma.estado_dispositivo = campos[3].Substring(1, 1);// estado de nivel P
                            if (alarma.estado_dispositivo.Equals("2"))
                            {
                                alarma.error_severidad = campos[3].Substring(2, campos[3].Length - 2); // datos adicionales
                                // si es 2 llega el 0 modo supervisor exit, 1 modo supervisor ingreso
                            }
                            else
                            {
                                alarma.estado_suministro = campos[3].Substring(2, campos[3].Length - 2); // aca obtiene datos de los dispositivos
                            }
                        }
                        else
                        {
                            alarma.estado_dispositivo = campos[3].Substring(1, campos[3].Length - 1);
                            alarma.error_severidad    = campos[4];
                            alarma.estado_diagnostico = campos[5];
                            alarma.estado_suministro  = campos[6];
                        }
                    }
                    catch (IndexOutOfRangeException e) {
                        errorNDC.escritura_archivo_string(e.Message);
                        errorNDC.escritura_archivo_strSplit(campos);
                    }
                }
                /*PARA MENSAJES SOLICITADOS DE ALARMAS*/
                else if (campos[0].Equals("22"))
                {
                    /*CODIGO TIPO 8 SIGNIFICA QUE ES UNA ALARMA SOLICITADA,
                     * CODIGO F SOLICITUD DE CONTADORES Y ESTADOS DE DISPOSITIVOS GENERAL*/
                    alarma.descriptor = campos[3];
                    if (campos[3].Equals("8"))
                    {
                        alarma.tipo_alarma = "A";
                        try
                        {
                            alarma.id_tipo_dispositivo = campos[4].Substring(0, 1);
                            alarma.estado_dispositivo  = campos[5].Substring(1, campos[5].Length - 1);
                            alarma.error_severidad     = campos[6];
                            alarma.estado_diagnostico  = campos[7];
                            if (campos[8].Length > 8)
                            {
                                alarma.estado_suministro = campos[8].Substring(0, 8);
                            }
                            else
                            {
                                alarma.estado_suministro = campos[8];
                            }
                        }
                        catch (IndexOutOfRangeException e) {
                            errorNDC.escritura_archivo_string(e.Message);
                            errorNDC.escritura_archivo_strSplit(campos);
                        }
                    }
                    /* ESTADOS DE DISPOSITIVOS */
                    else if (campos[3].Equals("F"))
                    {
                        //alarma.descriptor = campos[3];
                        if (campos[4].StartsWith("1"))// envio de configuracion de informacion
                        {
                            alarma.id_tipo_dispositivo = "1";
                            alarma.tipo_alarma         = "A";
                            alarma.estado_suministro   = campos[5];
                            alarma.estado_diagnostico  = campos[6];
                            alarma.estado_dispositivo  = campos[7];
                        }
                        else if (campos[4].StartsWith("2"))   // envio de estado de contadores
                        {
                            alarma.id_tipo_dispositivo = "2";
                            alarma.estado_suministro   = campos[4];
                        }
                        else if (campos[4].StartsWith("7A"))                   // envio de contadores extendidos
                        {                                                      // envio de estado de contadores
                            alarma.id_tipo_dispositivo = "7";
                            string[] otrosValores = campos[4].Split((char)29); // char 29 GS
                            alarma.estado_suministro  = otrosValores[1];
                            alarma.estado_diagnostico = otrosValores[2];
                        }
                    }
                }
                else if (campos[0].Equals("1"))// comando a terminal
                {
                    alarma.tipo_comando = campos[3];
                }
            }
            catch (IndexOutOfRangeException e) {
                errorNDC.escritura_archivo_string(e.Message);
                errorNDC.escritura_archivo_strSplit(campos);
                //alarma = null;
            }
            return(alarma);
        }
        public void cargar_eventos_usuario(UsuarioObj usr)
        {
            AvanceObj[] avances = Globales.servicio.obtener_avance_by_usuario(usr);
            Session["avancesSistema"] = avances;
            int filaNum = 1;

            foreach (AvanceObj avance in avances)
            {
                HtmlTableRow  fila         = new HtmlTableRow();
                HtmlTableCell celdaNum     = new HtmlTableCell();
                HtmlTableCell celdaEven    = new HtmlTableCell();
                HtmlTableCell celdaTer     = new HtmlTableCell();
                HtmlTableCell celdaFEv     = new HtmlTableCell();
                HtmlTableCell celdaDes     = new HtmlTableCell();
                HtmlTableCell celdaNot     = new HtmlTableCell();
                HtmlTableCell celdaEst     = new HtmlTableCell();
                HtmlTableCell celdaProceso = new HtmlTableCell();
                celdaNum.InnerText = filaNum + "";

                AlarmasObj a = new AlarmasObj();
                a.id_atm            = 0;
                a.id_alarma         = avance.id_alarma;
                celdaEven.InnerText = avance.id_alarma + "";
                try
                {
                    AlarmasObj[] alarma = Globales.servicio.obtener_alarma_atm(a);
                    celdaDes.InnerText = alarma[0].mensaje;
                    celdaFEv.InnerText = alarma[0].fecha_registro.ToString("yyyy-MM-dd");
                    string busqueda = alarma[0].id_atm + ":" + "1";
                    Session["alarmasSistema"] = alarma;
                    AtmObj [] terminales = Globales.servicio.buscar_terminal(busqueda, true);
                    celdaTer.InnerText = terminales[0].codigo;
                }
                catch (IndexOutOfRangeException e) {
                    string s = e.Message;
                    celdaEven.InnerText = "Sin mensaje a mostrar";
                }
                celdaEven.InnerText = avance.id_alarma + "";

                CheckBox cbxAtencio = new CheckBox();
                cbxAtencio.Checked = avance.atendido;
                celdaEst.Controls.Add(cbxAtencio);
                cbxAtencio.Enabled = false;
                CheckBox cbxNotifi = new CheckBox();
                cbxNotifi.Checked = avance.notificacion;
                celdaNot.Controls.Add(cbxNotifi);
                cbxNotifi.Enabled = false;
                Button atender = new Button();
                atender.Text = "ingresar Atencion";
                atender.ID   = "btnAtender_" + filaNum;
                celdaProceso.Controls.Add(atender);
                atender.Click += new EventHandler(this.eventoBtnEditar);
                fila.Cells.Add(celdaNum);
                fila.Cells.Add(celdaEven);
                fila.Cells.Add(celdaDes);
                fila.Cells.Add(celdaTer);
                fila.Cells.Add(celdaFEv);
                fila.Cells.Add(celdaEst);
                fila.Cells.Add(celdaNot);
                fila.Cells.Add(celdaProceso);
                tb_evento.Rows.Add(fila);
                filaNum++;
            }
        }