Exemplo n.º 1
0
        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;
        }
Exemplo n.º 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;
 }
 public List<AlarmasObj> obtener_alarma_atm(AlarmasObj alarma)
 {
     return controlUsr.control_buscar_alarma_atm(alarma);
 }
Exemplo n.º 4
0
        /* 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;
        }
Exemplo n.º 5
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();

            }
        }
Exemplo n.º 6
0
 public List<AlarmasObj> obtener_alarma(AlarmasObj alarma)
 {
     SqlCommand cmd;
     cmd = new SqlCommand("obtener_alarma_sp", conn);
     cmd.CommandType = CommandType.StoredProcedure;
     cmd.Parameters.AddWithValue("@id_alarma", alarma.id_alarma);
     cmd.Parameters.AddWithValue("@id_atm", alarma.id_atm);
     List<AlarmasObj> lista = new List<AlarmasObj>();
     try
     {
         SqlDataAdapter da = new SqlDataAdapter(cmd);
         DataTable tb = new DataTable("lsAlarma");
         da.Fill(tb);
         for (int i = 0; i < tb.Rows.Count; i++)
         {
             AlarmasObj alarmatmp = new AlarmasObj();
             alarmatmp.id_alarma = int.Parse(tb.Rows[i][0].ToString());
             alarmatmp.mensaje = tb.Rows[i][1].ToString();
             alarmatmp.id_atm = int.Parse(tb.Rows[i][2].ToString());
             alarmatmp.fecha_registro = DateTime.Parse(tb.Rows[i][3].ToString());
             alarmatmp.envio_recepcion = int.Parse(tb.Rows[i][4].ToString());
             lista.Add(alarmatmp);
         }
         return lista;
     }
     catch (IndexOutOfRangeException ex)
     {
         logs.escritura_archivo_string(ex.Message);
         throw new ExpObtenerRegistro(MensajeSistema.reg_no_existe);
     }
     catch (ArgumentNullException ex)
     {
         logs.escritura_archivo_string(ex.Message);
         throw new ExpObtenerRegistro(MensajeSistema.reg_no_existe);
     }
     catch (Exception ex)
     {
         logs.escritura_archivo_string(ex.Message);
         throw new Exception(MensajeSistema.error_Conexion);
     }
 }
Exemplo n.º 7
0
 public void insertar_alarmas(AlarmasObj alarmas)
 {
     SqlCommand cmd = new SqlCommand("insertar_alarmas_sp", conn);
     cmd.CommandType = CommandType.StoredProcedure;
     cmd.Parameters.AddWithValue("@mensaje_alarma", alarmas.mensaje);
     //cmd.Parameters.AddWithValue("@fecha_registro", alarmas.fecha_registro);
     cmd.Parameters.AddWithValue("@id_atm", alarmas.id_atm);
     cmd.Parameters.AddWithValue("@envioRecepcion", alarmas.envio_recepcion);
     try
     {
         cmd.ExecuteNonQuery();
     }
     catch (ArgumentException ex)
     {
         logs.escritura_archivo_string(ex.Message);
         throw new ExInsertarRegistro(MensajeSistema.reg_no_existe);
     }
     catch (InvalidOperationException ex)
     {
         logs.escritura_archivo_string(ex.Message);
         throw new ExConexionBase(MensajeSistema.error_Conexion);
     }
 }
Exemplo n.º 8
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();

            }
        }
Exemplo n.º 9
0
        public string[] insertar_alarmas(AlarmasObj alarmas)
        {
            SqlCommand cmd = new SqlCommand("insertar_alarmas_sp", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@mensaje_alarma", alarmas.mensaje);
            //cmd.Parameters.AddWithValue("@fecha_registro", alarmas.fecha_registro);
            cmd.Parameters.AddWithValue("@id_atm", alarmas.id_atm);
            cmd.Parameters.AddWithValue("@envioRecepcion", alarmas.envio_recepcion);
            if (alarmas.id_mensaje == null)
            {
                cmd.Parameters.AddWithValue("@idMensaje", DBNull.Value);
            }
            else {
                cmd.Parameters.AddWithValue("@idMensaje", alarmas.id_mensaje);
            }
            if (alarmas.id_tipo_dispositivo == null) {
                cmd.Parameters.AddWithValue("@idTipoDispositivo", DBNull.Value);
            }
            else
            {
                cmd.Parameters.AddWithValue("@idTipoDispositivo", alarmas.id_tipo_dispositivo);
            }
            if (alarmas.estado_dispositivo == null) {
                cmd.Parameters.AddWithValue("@estadoDispositivo", DBNull.Value);
            } else {
                cmd.Parameters.AddWithValue("@estadoDispositivo", alarmas.estado_dispositivo);
            }
            if (alarmas.error_severidad == null)
            {
                cmd.Parameters.AddWithValue("@errorServeridad", DBNull.Value);
            }
            else {
                cmd.Parameters.AddWithValue("@errorServeridad", alarmas.error_severidad);
            }
            if (alarmas.estado_diagnostico == null)
            {
                cmd.Parameters.AddWithValue("@estadoDiagnostico", DBNull.Value);
            }
            else {
                cmd.Parameters.AddWithValue("@estadoDiagnostico", alarmas.estado_diagnostico);
            }
            if (alarmas.estado_suministro == null)
            {
                cmd.Parameters.AddWithValue("@estadoSuministro", DBNull.Value);
            }
            else {
                cmd.Parameters.AddWithValue("@estadoSuministro", alarmas.estado_suministro);
            }
            if (alarmas.tipo_comando == null)
            {
                cmd.Parameters.AddWithValue("@tipoComando", DBNull.Value);
            }else{
                cmd.Parameters.AddWithValue("@tipoComando", alarmas.tipo_comando);
            }
            if (alarmas.tipo_alarma == null)
            {
                cmd.Parameters.AddWithValue("@tipoAlarma", DBNull.Value);
            }
            else
            {
                cmd.Parameters.AddWithValue("@tipoAlarma", alarmas.tipo_alarma);
            }
            if (alarmas.descriptor == null)
            {
                cmd.Parameters.AddWithValue("@descriptor", DBNull.Value);
            }
            else
            {
                cmd.Parameters.AddWithValue("@descriptor", alarmas.descriptor);
            }
            SqlParameter envioNotificacion = new SqlParameter("@envio","sin valor");
            envioNotificacion.Direction = ParameterDirection.Output;
            cmd.Parameters.Add(envioNotificacion);
            SqlParameter id_alarma = new SqlParameter("@id_alarma", 0);
            id_alarma.Direction = ParameterDirection.Output;
            //envioNotificacion.Value = "0:sinValor";
            cmd.Parameters.Add(id_alarma);

            try
            {
                cmd.ExecuteNonQuery();
                string id_ = cmd.Parameters["@id_alarma"].Value.ToString();
                string envio_ = cmd.Parameters["@envio"].Value.ToString();
                string [] datos = {id_,envio_};
                return datos;
            }
            catch (ArgumentException ex)
            {
                logs.escritura_archivo_string(ex.Message);
                throw new ExInsertarRegistro(MensajeSistema.reg_no_existe);
            }
            catch (InvalidOperationException ex)
            {
                logs.escritura_archivo_string(ex.Message);
                throw new ExConexionBase(MensajeSistema.error_Conexion);
            }
        }
Exemplo n.º 10
0
        public DetalleDescripcionObj obtener_detalle_por_alarma_terminal(AlarmasObj alarma)
        {
            SqlCommand cmd = new SqlCommand("obtener_resumen_alerta_terminal_sp", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@id_suceso", alarma.id_alarma);
            DetalleDescripcionObj detalle = new DetalleDescripcionObj();
            try
            {
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable tb = new DataTable("detalles");
                da.Fill(tb);
                for (int i = 0; i < tb.Rows.Count; i++)
                {
                    detalle.descripcion_mensaje = tb.Rows[i][0].ToString();
                    //detalle.mensaje_ndc = tb.Rows[i][1].ToString();
                    //detalle.mensaje_ndc = tb.Rows[i][1].ToString().Replace(char)28,(char));
                    //detalle.mensaje_ndc = "";
                    detalle.fecha_registro = DateTime.Parse(tb.Rows[i][2].ToString());
                    detalle.tipo_estado = tb.Rows[i][3].ToString();
                    detalle.tipo_mensaje = tb.Rows[i][4].ToString().Replace((char)0, (char)94).Replace((char)28, (char)127).Replace((char)29, (char)128);
                    detalle.tipo_dispositivo = tb.Rows[i][5].ToString();

                }
                return detalle;
            }
            catch (IndexOutOfRangeException ex)
            {
                logs.escritura_archivo_string(ex.Message + "\t" + ex.StackTrace);
                //logs.cerrar_archivo();
                throw new ExpObtenerRegistro(MensajeSistema.reg_no_existe);
            }
            catch (ArgumentNullException ex)
            {
                logs.escritura_archivo_string(ex.Message);
                //logs.cerrar_archivo();
                throw new ExpObtenerRegistro(MensajeSistema.reg_no_existe);
            }
            catch (Exception ex)
            {
                logs.escritura_archivo_string(ex.Message);
                //logs.cerrar_archivo();
                throw new Exception(MensajeSistema.reg_no_existe);
            }
        }