/*Constructor para enviar los datos del servicio considerando el objeto richText Box */ public ConexionTCP(TcpClient clie, ConfiguracionServicio serviceConf, RichTextBox visor, AtmObj terminalObj, BddSQLServer conexion) { try { this.terminal = terminalObj; cliente = clie; stream = new NetworkStream(cliente.Client); sincronico = true; stream.ReadTimeout = 10000; // Tiempo esperado para lectura stream.WriteTimeout = 10000; // Tiempo esperado para la escritura terminalArchivo = new LecturaEscrituraArchivo(); error = new LecturaEscrituraArchivo(); terminalArchivo.archivo_guardar("MENSAGE_TERMINAL", terminal.codigo); error.archivo_guardar("ERROR", terminal.codigo); configurarServicio = serviceConf; //this.visor = visor; comadoToATM = new ComandoNdcTerminal(); sincronico = true; enviarDato = false; conBdd = conexion; verificacionConexion = new System.Timers.Timer(); verificacionConexion.Elapsed += new System.Timers.ElapsedEventHandler(verificarConexion); verificacionConexion.Interval = segSondeo * 1000; verificacionConexion.Enabled = true; verificacionConexion.Start(); parseoAlrma = new ProcesamientoTrama(this.terminal); this.terminal.conexion = true; this.terminal.modoSupervisor = false; conBdd.actualizar_terminal(this.terminal);// actualiza el estado a conectado mt = new MonitoreoDispositivos(); mt.id_atm = terminal.id_atm; mt.estado_gaveta1 = "0"; mt.estado_gaveta2 = "0"; mt.estado_gaveta3 = "0"; mt.estado_gaveta4 = "0"; mt.estado_gaveta5 = "0"; mt.estado_impresora = "0"; mt.estado_impresora_jrnl = "0"; mt.estado_dispensador = "0"; mt.estado_encriptora = "0"; mt.estado_lectora = "0"; mt.tipo_estado = "C"; conBdd.insertar_actualizar_monitoreo_dispositivos(mt); // Como incia conexion se rocede a encerar mt.tipo_estado = "S"; conBdd.insertar_actualizar_monitoreo_dispositivos(mt); // Como incia conexion se rocede a encerar string parametroEnvio = conBdd.obtenerParametro(3).valor; string parametroMsg = conBdd.obtenerParametro(6).valor; string parametroCorreo = conBdd.obtenerParametro(1).valor; string pathGuardado = conBdd.obtenerParametro(5).ToString(); notificacion = new NotificacionEnviar(parametroCorreo.Split(':'), parametroMsg.Split(':'), pathGuardado, parametroEnvio.Split(':')); } catch (Exception ex) { error.escritura_archivo_string(ex.Message); //mensaje_error_sistema(ex.Message,Color.Red); this.terminal.conexion = false; this.terminal.modoSupervisor = false; conBdd.actualizar_terminal(this.terminal); } }
public void cerrar_conexion() { try { terminal.conexion = false; conBdd.actualizar_terminal(terminal); verificacionConexion.Enabled = false; verificacionConexion.Stop(); sincronico = false; clienteConectado = false; cliente.Close(); stream.Close(); } catch (NullReferenceException ex) { error.escritura_archivo_string("Error al cerrar conexion :" + ex.StackTrace); } catch (Exception ex) { error.escritura_archivo_string("Error al cerrar conexion" + ex.StackTrace); } /*try * { * conBdd.cerrar_conexion_base(); * } * catch (ExConexionBase ex) * { * error.escritura_archivo_string("Error al cerrar conexion base datos" + ex.StackTrace); * }*/ }
public void ActualizarEstadoConexionTerminal() { foreach (AtmObj atm in atmsAutorizados) { atm.conexion = false; conBdd.actualizar_terminal(atm); } }
public void aceptar_conexion() { try { IPlocal = IPAddress.Parse(parametrosconfig.ip); servidor = new TcpListener(IPlocal, parametrosconfig.puerto); servidor.Start(); opc = true; /*Monitorea el estado de la conexion*/ hiloMonitor = new Thread((ThreadStart)verificarEstadoConexion); hiloMonitor.Start(); /*Ingresa a un lazo repetitivo para validar esperar varias conexiones*/ while (opc) { cliente = servidor.AcceptTcpClient(); mensaje_error_sistema("Conexion ip " + cliente.Client.RemoteEndPoint.ToString().Split(':')[0] + " remota", Color.Blue); AtmObj atmIng = verificarIpAutorizada(cliente.Client.RemoteEndPoint.ToString().Split(':')[0]); if (atmIng != null) { //conBdd.abrir_conexion_base(); atmIng.conexion = true; conBdd.actualizar_terminal(atmIng); //conBdd.cerrar_conexion_base(); mensaje_error_sistema("Ip " + cliente.Client.RemoteEndPoint.ToString().Split(':')[0] + " remota - aceptada ", Color.Green); ConexionTCP clien = new ConexionTCP(cliente, parametrosconfig, this.visor, atmIng, conBdd); clien.datoIn += new datoIngresoServicio(obtener_tramaIn); clien.datoResp += new datoIngresoServicio(obtener_tramaRespuesta); terminalesConectadas.Add(clien); if (opc) { try { hiloServidor = new Thread((ThreadStart)clien.cliente_servicio); hiloServidor.Start(); } catch (Exception excli) { mensaje_error_sistema(excli.Message, Color.Red); } } } else { cliente.Close(); mensaje_error_sistema("No autorizada para conectarse ...", Color.Red); } } } catch (SocketException ex) { mensaje_error_sistema(" " + ex.Message, Color.Red); } finally { servidor.Stop(); } }
public string control_guardar_actualizar_terminal(AtmObj terminal, bool actualizar) { conBdd.abrir_conexion_base(); string mensaje = string.Empty; try { if (actualizar) { conBdd.actualizar_terminal(terminal); mensaje = "Actualizacion de datos terminal correcto"; } else { conBdd.insertar_atm(terminal); mensaje = "Ingreso de nuevo terminal correcto"; } } catch (ExInsertarRegistro ex) { logSistema.escritura_archivo_string(ex.Message); mensaje = ex.Message; } catch (ExActualizarRegistro ex) { logSistema.escritura_archivo_string(ex.Message); mensaje = ex.Message; } catch (Exception ex) { logSistema.escritura_archivo_string(ex.Message); mensaje = ex.Message; } finally { conBdd.cerrar_conexion_base(); } return(mensaje); }
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(); } }