jueves, 23 de mayo de 2024

PROYECTO - PROCESADOR DE ARCHIVOS DEL SOFTWARE ARGUS

 

PROYECTO - PROCESADOR DE ARCHIVOS DEL SOFTWARE ARGUS

#LIBRERIAS NECESARIAS
%pip install python-docx
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
from scipy.signal import find_peaks
from IPython.display import Image
import docx
from docx import Document
from docx.shared import Inches

import pandas as pd
import numpy as np
from docx import Document


# Iterar sobre cada archivo de la lista
for archivo in archivos:
    ruta_archivo = f'{archivo}'

     # Procesar el archivo CSV
    try:
        data = pd.read_csv(ruta_archivo, encoding='latin-1')

        print(f'Procesando archivo: {archivo}')

        #:::::::::::::::ANALISIS Y SEPARACIÓN DE TIEMPO::::::::::::::::::::

        fracciones_de_tiempo = data['Tiempo'].unique()

        #:::::::: ANALISIS DE LAS FRECUENCIAS AUTORIZADAS Y PIRATAS::::::::

        frecuencias_autorizadas = frecuencias['Frecuencia'].tolist() # Obtener la lista de frecuencias autorizadas
        promedios = data.groupby('Frecuencia (Hz)').agg({'Level (dBµV/m)': 'mean'}).reset_index() # Calcular el promedio de los niveles de frecuencia para cada frecuencia

        #::::::::::::::CONFIGURACIÓN DE IMAGEN DEL GIF::::::::::::::::::::

        fig, ax = plt.subplots(figsize=(24, 6))                       # Ajusta el ancho a 12 pulgadas y el alto a 6 pulgadas
        fig.patch.set_facecolor('white')                              # Configuración del fondo negro y color de elementos del gráfico
        ax.set_facecolor('white')
        plt.grid(True, color='black', linestyle='--', linewidth=0.5)  # Color de las líneas de la cuadrícula

        #::::::::ITERACIÓN PARA OBTENER LAS GRAFICAS PARA CADA TIEMPO::::::

        ims = []
        for tiempo in fracciones_de_tiempo:
            subset_data = data[data['Tiempo'] == tiempo]
            im = plt.plot(subset_data['Frecuencia (Hz)'] / 1e6, subset_data['Level (dBµV/m)'],
                          color='blue')
            ims.append(im)

        #::::::::MARCAR LAS FRECUENCIAS AUTORIZADAS::::::::::::::::::::::

        frecuencias_destacar = frecuencias['Frecuencia'].tolist()     # Obtener las frecuencias y nombres a destacar

        # Buscar las frecuencias a destacar en los datos
        for frecuencia, nombre in zip(frecuencias['Frecuencia'], frecuencias['Nombre']):
            if frecuencia in frecuencias_destacar:
                level = 90  # Define el nivel en el que deseas colocar las líneas
                plt.vlines(frecuencia, -10, level, color='red', linestyles='dashed', linewidth=0.5)
                plt.text(frecuencia, level -8, f'{frecuencia}', ha='center', color='black')

        #::::::::::::::CONFIGURACIÓN DE LA GRAFICA::::::::::::::::::

        # Configurar colores de etiquetas, texto y ejes
        plt.xlabel('Frecuencia (MHz)', color='black')                 # Etiqueta del eje x en MHz
        plt.ylabel('Level (dBµV/m)', color='black')
        plt.ylim(-10, 90)  # Establecer el límite superior del eje y en 60 dBµV/m
        plt.xlim(88, 108)  # Establecer límites del eje x en MHz
        plt.title('Gráfico de Frecuencia vs Nivel', color='black')    # Cambiar el color del título a blanco

        # Configuración de color para los ejes
        ax.spines['bottom'].set_color('black')
        ax.spines['top'].set_color('black')
        ax.spines['left'].set_color('black')
        ax.spines['right'].set_color('black')
        ax.xaxis.label.set_color('black')
        ax.yaxis.label.set_color('black')

        # Configuración del color de los números en los ejes
        ax.tick_params(axis='x', colors='black')
        ax.tick_params(axis='y', colors='black')

        plt.tight_layout(pad=3)


Procesando archivo: FM_LIMA_04-12-2023.csv
Conteo de Frecuencias Autorizadas Activas (MHz): 26
Conteo de Frecuencias No Autorizadas Transmitiendo (MHz): 16









viernes, 6 de marzo de 2020

Comunicaciones

Aplicaciones Móviles

las aplicaciones móviles (app) son  programas diseñados para ser ejecutados en teléfonos, tablets y otros dispositivos móviles, que permiten al usuario realizar actividades profesionales, acceder a servicios, mantenerse informado, entre otro universo de posibilidades. 
En este caso se creo una aplicacion movil para la direccion regional de transportes, visualizando el estado situacional de la estaciones CPACC y PACC, asi como la medición de los Limites Máximos Permisibles RNI.




Codigo fuente: 

Primeramente se crea la actividad principal, y a continuación se muestra el código de xml.


<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="#fff">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="380dp"
        android:layout_height="105dp"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.491"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/logoooooosinfondo" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView"
        app:srcCompat="@drawable/antena" />


    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:scrollbars="vertical"
        android:text="@string/comunicaciones"
        android:textColor="@color/colorPrimaryDark"
        android:textSize="25sp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.444"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imageView" />

    <Button
        android:id="@+id/btn_cpacc"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        android:background="@drawable/button_rounded"
        android:foreground="?attr/selectableItemBackgroundBorderless"
        android:text="ESTACIONES CPACC Y PACC"
        android:textColor="#fff"
        android:textSize="18sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imageView2" />

    <Button
        android:id="@+id/btn_rni"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="boton_rni"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        android:background="@drawable/button_rounded"
        android:foreground="?attr/selectableItemBackgroundBorderless"
        android:text="RADIACIONES NO IONIZANTES"
        android:textColor="#fff"
        android:textSize="18sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btn_cpacc" />

    <Button
        android:id="@+id/btn_banda_ancha"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        android:background="@drawable/button_rounded"
        android:foreground="?attr/selectableItemBackgroundBorderless"
        android:text="BANDA ANCAH ANCASH"
        android:onClick="boton_banda_ancha"
        android:textColor="#fff"
        android:textSize="18sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btn_rni" />

    <Button
        android:id="@+id/btn_nosotros"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        android:background="@drawable/button_rounded"
        android:foreground="?attr/selectableItemBackgroundBorderless"
        android:text="NOSOTROS"
        android:onClick="nosotros"
        android:textColor="#fff"
        android:textSize="18sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btn_banda_ancha" />

    <ImageView
        android:id="@+id/imageView5"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:background="@drawable/button_roundd_border"
        android:scaleType="fitCenter"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btn_nosotros"
        app:srcCompat="@drawable/ancash"
        android:onClick="imagen_ancash"/>

    <ImageView
        android:id="@+id/imageView7"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_marginStart="32dp"
        android:layout_marginLeft="32dp"
        android:layout_marginTop="32dp"
        android:background="@drawable/button_roundd_border"
        android:scaleType="fitCenter"
        app:layout_constraintStart_toEndOf="@+id/imageView5"
        app:layout_constraintTop_toBottomOf="@+id/btn_nosotros"
        app:srcCompat="@drawable/facebook"
        android:onClick="imagen_facebook"/>

    <ImageView
        android:id="@+id/imageView6"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="32dp"
        android:layout_marginRight="32dp"
        android:background="@drawable/button_roundd_border"
        android:scaleType="fitCenter"
        app:layout_constraintEnd_toStartOf="@+id/imageView5"
        app:layout_constraintTop_toBottomOf="@+id/btn_nosotros"
        app:srcCompat="@drawable/google"
        android:onClick="imagen_google"/>



</androidx.constraintlayout.widget.ConstraintLayout>




lunes, 20 de junio de 2016

Programación Java

PROGRAMA DE COMPUTADORA - ¿Qué es?
Un programa informático es un conjunto de instrucciones que una vez ejecutadas realizarán una o varias tareas dentro de una computadora. Estas instrucciones se codifican o escriben siguiendo el vocabulario, reglas sintácticas y semántica de un lenguaje de programación.
LENGUAJE DE PROGRAMACION
  • Es igual a lexemas + sintaxis + semántica
  • Cómo el Español, el lenguaje de programación tiene palabras aceptadas por el lenguaje.
  • Cómo el Español, el lenguaje de programación tiene estructuras para generar oraciones.
  • Como el Español, el lenguaje de programación tiene una  interpretación o significado.

Los lenguajes de programación son de alto nivel cuando tanto los lexemas y sintaxis se parecen más al lenguaje que utilizamos, y son de bajo nivel cuando se parecen más al lenguaje que utiliza el hardware (ceros y unos).  Ejemplos de lenguajes de alto nivel son por ejemplo: Ada, Python, Ruby, Java, C#, Basic,
JAVA

Máquina virtual Java (JVM)
Esquema de la arquitectura general de un programa en ejecución en una Máquina Virtual Java.
Una máquina virtual Java (en inglés Java Virtual Machine, JVM) es una máquina virtual de proceso nativo, es decir, ejecutable en una plataforma específica, capaz de interpretar y ejecutar instrucciones expresadas en un código binario especial (el bytecode Java), el cual es generado por el compilador del lenguaje Java. El código binario de Java no es un lenguaje de alto nivel, sino un verdadero código máquina de bajo nivel, viable incluso como lenguaje de entrada para un microprocesador físico. Como todas las piezas del rompecabezas Java, fue desarrollado originalmente por Sun Microsistems.

ARQUITECTURA BÁSICA DE UN PROGRAMA.

IDE NETBEANS:
NetBeans es un entorno de desarrollo integrado libre, es un IDE, hecho principalmente para el lenguaje de programación Java. Existe además un número importante de módulos para extenderlo. NetBeans IDE2 es un producto libre y gratuito sin restricciones de uso.
NetBeans es un proyecto de código abierto de gran éxito con una gran base de usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo. Sun MicroSystems fundó el proyecto de código abierto NetBeans en junio de 2000 y continúa siendo el patrocinador principal de los proyectos.
La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados módulos. Un módulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como módulo. Las aplicaciones construidas a partir de módulos pueden ser extendidas agregándole nuevos módulos. Debido a que los módulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fácilmente por otros desarrolladores de software.

PREPARAR ENTORNO DE DESARROLLO:
Instale JDK, descargue el instalador del jse de desde:
http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html de acuerdo a la arquitectura de la computadora donde va levantar el ambiente de desarrollo.
Ejecute el instalador de jdk  y siga los pasos por defecto del instalador.

Instale NetBeans; descargue el IDE desde https://netbeans.org/downloads/, luego ejecute el instalador y siga los pasos por defecto.
En este caso el instalador es netbeans-7.2 para Windows
Nota: Para instalar el IDE NetBeans primero se tiene que instalar el JDK.
CONOCIENDO EL AMBIENTE DE DESARROLLO
Para ingresar al entorno, busque desde Inicio, programas, Netbeans 7.0, o Doble clic sobre el icono que esta sobre el escritorio
Una vez cargado el IDE, identifique los siguientes elementos:
  • Menu
  • Barra de Ejecución
  • Explorador de Proyectos, archivos y servicios.

Selección la opción File, luego New Project:
En el diálogo siguiente seleccione Java en Categories, y Java Application en Projects, clic sobre el botón Next.
La opción Categories permite elegir la plataforma de desarrollo, como se puede observar NetBeans puede manejar varios entornos (Java, JavaEE, PHP, C++ y otros).  La opción Projects, permite elegir el tipo de aplicación, por cada categoría existen varios tipos de proyectos.
Para este primer ejemplo, se está eligiendo Java Nativo en Categorías y el tipo de Proyecto es una Aplicación Básica Java.
En el diálogo siguiente ingrese el nombre del proyecto: ejercicio0. Clic sobre Finish.

Listo, el proyecto esta creado, ahora observe:
Parte izquierda: Explorador de Proyecto con el Nombre del Proyecto, El nombre del paquete y la clase inicial del proyecto.
Ejecutar el proyecto.
Puede seleccionar el botón Verde de la Barra de Ejecución, o Seleccionar la opción Run del Menu y luego Run Main Project, o simplemente presionar F6.


Observe que en la parte inferior se apertura la ventana Output: ahí debe verse el mensaje BUILD SUCCESSFUL, esto significa que el proyecto se ha compilado, se ha creado un archivo de tipo class, y además este se ha ejecutado sobre la maquina virtual Java exitosamente.
Ejemplo 1: Hola Mundo; ahora vamos agregar un poco de código, ubíquese dentro del método main, ahí escriba la siguiente línea de código:

Guarde los cambios efectuados y ejecute.
Para guardar puede presionar las teclas combinadas Control + S, o puede seleccionar el icono de guardar o seleccionar Save desde el menú File.
Este debe ser el resultado:


jueves, 15 de octubre de 2015

Calulador de resistencia

De acuerdo con la ley de Ohm la resistencia de un material puede definirse como la razón entre la diferencia de potencial eléctrico y la corriente en que atraviesa dicha resistencia: R=V/I, Donde R es la resistencia en ohmios, V es la diferencia de potencial en voltios e I es la intensidad de corriente en amperios.
Esta herramienta se utiliza para decodificar información para las resistencias con conductores axiales en una banda de colores. Seleccione la cantidad de bandas y, luego, sus colores para determinar el valor y la tolerancia de las resistencias o vea todas las resistencias que tiene para ofrecerle. Cada color corresponde a un valor. Calculador de Resistencias tiene soporte para esquemas de colores para 4 bandas que son las mas comerciales. Podemos especificar cuál es el color de cada una de las tres primeras bandas, y de la última que es la tolerancia (en caso de que existan). para descargar Clic aqui

Programacion

DESARROLLO WEB

Desarrollo web o Programacion web permite la creación de sitios dinámicos en Internet. Esto se consigue generando los contenidos del sitio a través de una base de datos mediante lenguajes de script como pueden ser PHP, ASP o ASP.NET. La programación web podrá crear sitios dinámicos como periódicos digitales o tiendas virtuales.

DISEÑO WEB

El diseño web es una actividad que consiste en la planificación, diseño e implementación de sitios web. No es simplemente una aplicación de diseño convencional, ya que requiere tener en cuenta la navegabilidad, interactividad, usabilidad, arquitectura de la información y la interacción de medios como el audio, texto, imagen, enlaces y vídeo.

El diseño web ha visto amplia aplicación en los sectores comerciales de Internet especialmente en la World Wide Web. A menudo la web se utiliza como medio de expresión plástica en sí. Artistas y creadores hacen de las páginas en Internet un medio más para ofrecer sus producciones y utilizarlas como un canal más de difusión de su obra.


Ejemplo de login:



viernes, 30 de enero de 2015

CONEXION MYSQL Y C# PASO A PASO


Evento Click : btn_aceptar_Click Autentificar manera 1 de hacer conexion:

try
{
MySqlConnection conectar = new MySqlConnection("server=127.0.0.1; database=ferreteria; Uid=root; pwd=;");
  // MySqlConnection conectar = new MySqlConnection("server=localhost;User Id=root;database=ferreteria");
MySqlCommand cmd = new MySqlCommand("SELECT * FROM usuarios WHERE usuario='" + txt_usuario.Text + "'AND password='" + txt_password.Text + "' ", conectar); //Realizamos una selecion de la tabla usuarios.
 conectar.Open();
 MySqlDataReader leer = cmd.ExecuteReader();
 if (leer.Read()) //Si el usuario es correcto nos abrira la otra ventana.
 {
   this.Hide();
   Menu_Principal ss = new Menu_Principal();
   ss.Show();
 }
 else
 {
   //Si no lo es mostrara este mensaje.
   MessageBox.Show("Error - Ingrese sus datos correctamente");
   conectar.Close(); //Cerramos la conexion.
 }
 }
 catch( Exception ex)
 {
  MessageBox.Show(ex.Message);
 }
 //this.timer1.Start();
 }
hora lo que vamos hacer es agregar una nueva clase a la cual le llamaremos BdComun, dicha clase nos servirá para tener la cadena de conexión hacia MySQL. por lo cual tendrá el siguiente código:
public class BdComun
    {
        
       public static MySqlConnection ObtenerConexion()
       {
           MySqlConnection conectar = new MySqlConnection("server=127.0.0.1; database=Tutorial; Uid=root; pwd=;");
               conectar.Open();
               return conectar;        
       }                     
    }
Explicación del código: 

ObtenerConexion = Nombre del método que nos conectara a la base de datos. 
Server = Servidor de MySQL.
database = Nombre de la base de datos a la cual nos conectamos. 
Uid = Nombre del usuario de Mysql (por defecto "root") 
pwd = Contraseña del usuario (dejar en blanco sino tiene) .

CRUD : INSERTAR, ACTUALIZAR, ELIMINAR Y CONSULTAR REGISTROS EN MYSQL DESDE C#


Bienvenidos nuevamente aun nuevo articulo relacionado a C# y MySQL, anteriormente aprendimos a conectarnos a MySQL desde C# puedes ver el post, lo que aprenderemos ahora sera a insertar registros desde C# hacia la base de datos MySQL, pues ya teniendo listas las conexiones, de seguro recuerdan que creamos una clase llamada BdComun esta a su vez contiene un método llamado ObtenerConexion el cual tiene la cadena de conexion, entonces ahora lo que vamos hacer sera crear un nueva clase llamada Cliente que basicamente en programación Orientada a Objetos representaría un objeto cliente, en este sentido debe tener datos relacionados al cliente, debemos agregar los mismo campos que tenemos en la tabla Clientes de la base de datos. 

Este seria el código de la clase Cliente:




public class Cliente
    {
       public int Id { get; set; }
       public string Nombre { get; set; }
       public string Apellido { get; set; }
       public string Fecha_Nac { get; set; }
       public string Direccion { get; set; }

       public Cliente() { }

       public Cliente(int pId, string pNombre, string pApellido, string pFecha_Nac, string pDireccion)

       {
     this.Id = pId;
           this.Nombre = pNombre;
           this.Apellido = pApellido;
           this.Fecha_Nac = pFecha_Nac;
           this.Direccion = pDireccion;       
       }

    }
Como ven tiene cinco propiedades que son equivalentes a los cinco campos de la tabla, al igual tiene un constructor vació public Cliente() { } el cual se utiliza para crear los objetos ya que de esta forma no recibe parámetros y podemos invocarlo sin problemas, por otra parte tenemos otro constructor el cual tiene cinco parámetros, podemos interpretar que los parametros nos servirán para enviar o trasportar los datos hacia las propiedades y posteriormente donde nosotros los queramos utilizar. Lo siguiente que haremos ser agregar un nueva clase ahora le llamaremos ClientesDAL esta clase tendrá métodos que nos ejecutaran comandos hacia MySQL tales como un Insert, delete, update, entre otros, por el momento vamos añadir el método agregar el cual insertara un cliente a la BD, la clase quedaría así:
 Public class ClientesDAL
    {

       public static int Agregar(Cliente pCliente)
       {

       int retorno = 0;

           MySqlCommand comando=new MySqlCommand(string.Format("Insert into clientes (Nombre, Apellido, Fecha_Nacimiento, Direccion) values ('{0}','{1}','{2}', '{3}')",
               pCliente.Nombre, pCliente.Apellido, pCliente.Fecha_Nac, pCliente.Direccion), BdComun.ObtnerCOnexion());
       retorno = comando.ExecuteNonQuery();
         return  retorno;
       }
       
    }
Ya teniendo esto, nos dirigimos al formulario y programamos en el evento clic del botón, lo que se debe hacer es crear un cliente, es decir llenar sus respectivas propiedades y ejecutar el método agregar para que nos inserte el cliente.