Paso 3: Escribir un script en Python para mostrar la pantalla de ancho de banda
Se necesita un programa llamado git para descargar el script de Python para ejecutar esto.
Si no tienes git instalado se puede instalar en el Pi usando "sudo apt-get install git"
Ir a un directorio donde desea instalar este script. Utilicé /home/osmc/python/bandwidth / - se puede poner dondequiera que usted tiene gusto.
Escriba en "git clone https://github.com/DarrenBeck/rpi-oled-bandwidth" para clonar el proyecto en su directorio.
Debería tener un archivo en el directorio llamado "net.py". Este es el script en Python que, si todo va bien, mostrará su ancho de banda de red en la pantalla. Usted probablemente tendrá que cambiar por lo menos la IP del router, velocidades máximas y posiblemente el oid utilizado para extraer los datos de ancho de banda del router.
Para editar el archivo utilice "nano net.py". Usar Ctl-x para salir del editor.
Para ejecutar el archivo use "sudo python net.py". El programa mostrará el ancho de banda en la línea de comandos y si está trabajando también muestran el ancho de banda de gráficos en la pantalla OLED.
Para explicar un poco sobre cómo funciona el programa... Este archivo es modificado en el ejemplo de Adafruit código OLED. La mayor parte de la primera página es justo la inicialización de la pantalla y para el búfer de imagen.
A continuación son una serie de funciones tales como getSnmpInt y barra de tracción que son ayudantes del programa. Tenga en cuenta que getSnmpInt convierte el texto como respuesta snmp a un entero que podemos utilizar. Lo hace mediante el uso de data.split() que por defecto se divide el texto en cada carácter de espacio en una lista. Data.pop() devolverá el último elemento de la lista creada por fractura y esto finalmente es devuelta como un tipo int.
A continuación están algunos define (no hay nada como un definir en Python así que sólo usamos variables).
A continuación obtiene el número total de bytes enviados a través de cada interfaz. Esto lo hace al principio para que cuando entra un total nuevo puede trabajar hacia fuera cuántos bytes se han enviado o recibido desde la última vez que estos fueron leídos. También obtiene el tiempo para que pueda calcular cuánto tiempo ha transcurrido entre cada lectura y convertir los totales en tarifas de datos como kbps o mbps.
maxRateIn y maxRateOut son define que son específicas a nuestra conexión de red y que probablemente tendrá que ajustarse para la conexión de red. Lo hice ejecutando el programa desde la línea de comandos y ver cuáles son las tasas más altas para adentro y hacia fuera tráfico que el LAN puerto nunca voluntad llegar a. Estos son importantes ya que fijan el valor máximo que las gráficas de barra pueden levantarse a. Si éstos no se ajustan a derecho sus gráficos de barras será demasiado corto o se extienden fuera de la pantalla. Tomé números ligeramente superiores a la máxima que he visto.
El código de Adafruit para dibujar un rectángulo me había confundido durante bastante tiempo. Estoy acostumbrado a una función de dibujo de rectángulo como draw.rectangle (x, y, ancho, altura) pero éste usa draw.rectangle (x, y, final x fin y).
Por último hay un infinito mientras el bucle que calcula las tarifas de datos y mostrarlos en la pantalla cada vez. Hay un retraso de medio segundo en cada bucle pero también tarda un poco mientras que el programa para enviar el búfer de pantalla nuevo sobre el bus i2c cada vez para que el programa termina por actualizar de una vez por segundo. No importa cuanto tarda ya que también estamos tiempo del lazo.
Muy bien me hubiera gustado usar cron para empezar este programa cuando la Pi comienza pero hasta ahora con la osmc no funciona. Sin embargo tengo otra solución que funciona casi tan bien y el truco es utilizar un programa llamado pantalla.
Yo uso la pantalla todo el tiempo cuando ssh'ing en los dispositivos. Vale la pena la pequeña cantidad de tiempo que tardan en aprender a usarlo. Se puede instalar con 'sudo apt-get install pantalla'. Básicamente la pantalla le permite ejecutar una serie de pantallas de terminal de una pantalla terminal. Está importantemente también le permite ejecutar una sesión de terminal en el PI y luego separar de él y se siga corriendo en el Pi, después de que ha cerrado su conexión.
Son las instrucciones básicas para la pantalla: pantalla a pantalla de inicio. ctl-a c para crear una nueva pantalla. ctl-un espacio para cambiar entre pantallas. 'ctl-un d' a desprenderse del todo de sus pantallas y pantalla de - r a pantallas de curriculum que previamente has separado.
Pantalla también puede utilizarse para comunicarse a través de una secuencia serial o usb, pero eso sería un conjunto otros instructable.
Para ejecutar esta secuencia de comandos y siga funcionando que los pasos son;
pantalla
(vaya a la carpeta donde está el script) sudo python net.py
CTL-a d (para separar - la secuencia de comandos se mantenga funcionando)
Eso debería ser todo que lo necesario para poner a un monitor de ancho de banda poco útil. Espero que esto funciona para usted y esperamos sus comentarios :)
Este instructivo también podría ser adaptado para mostrar los datos de ancho de banda de otras maneras. Dos filas de LEDs o un tipo de pantalla diferente podría ser una opción si se requiere una pantalla más grande.