Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - mario290386

#1
Hola a todos, tengo un problema con unos bucles y me estoy volviendo loco ya que he intentado varios metodos y no consigo solucionarlo.

De forma muy resumida lo que hace mi código es pedirle a un usuario que introduzca unos valores que son los GPIO de una raspberry, que posteriormente manejaré mediante un bucle for para ir encendiéndolos, hasta aquí bien, el problema viene cuando intento parar el bucle for mediante un while.

Lo que pretendo es que el bucle for siga contando de 1 hasta 27, en 27 debería  salir del bucle for, es decir, aunque el usuario introduzca un valor superior a 27, siempre debería de finalizar el bucle for en 27.
Este es el código:

read -p "introduce valor inicial: " gini

read -p "introduce valor final: " gfin

max=0

while [ $max -le 27 ];do
   
ssh $hotkey pi@192.168.5.1 "sudo bash -c;   for ((  i=$gini; i<=$gfin; i++ )); do echo \$i; echo \$i >/sys/class/gpio/export;sleep 0.1; echo out >/sys/class/gpio/gpio\$i/direction; echo \$max; let "max++"; done"

break

done


Lo que me sucede con este código es que el for sigue contando después de llegar al valor 27, he añadido una variable "max" para intentar frenar al for, pero ni con esas, cualquier pista me seria de gran ayuda, gracias y un saludo!
#2
Hola a todos!!  :D
Tengo un problema que quizas sea algo sencillo de hacer pero no consigo resolver.
Tengo un archivo llamado config.sh que contiene lo siguiente:
export Ip1=60
export Ip2=100


Y en otro script llamado envia.sh tengo esto:
source config.sh
echo $ip1  $ip2


Lo que pretendo es que al ejecutar el script "envia.sh" se guarden estas variables de modo que pueda usarlas en la shell principal.
Cuando ejecuto el script "envia.sh" el comando echo me lo realiza correctamente y me muestra el valor de las 2 variables, pero cuando en la shell principal hago un "echo $ip1" el valor me aparece vacio, he intentado varios metodos pero no consigo que el proceso principal reconozca las variables pese a que han sido exportadas. No se si hay otro metodo especifico para hacer esto. Por supuesto el script tiene permisos de ejecución y lo ejecuto de esta manera ". envia.sh"
Espero que alguien pueda arrojarme algo de luz, saludos!!
#3
Hola a todos!! :D Necesito hacer algo que creo que es muy sencillo pero no encuentro el comando adecuado para llevarlo a cabo.

Tengo un archivo de texto del cual necesito copiar una serie de lineas para pegarlas en otro archivo, sustituyendo una serie de lineas de este archivo por las lineas que yo he copiado anteriormente.
He intentado usar SED, el problema es que no consigo sustituir varios párrafos con los saltos de linea correspondientes.

Gracias y un saludo!
#4
Hola de nuevo! :D Necesito saber como puedo consultar si un puerto USB esta conectado o no, intentado el método este:

if [ -f /dev/ttyUSB0 ];


Pero supongo que no me funciona porque no es ni un directorio ni una carpeta, no se si esto se podrá realizar con el comando cat..
Saludos!
#5
Hola a todos!! :D tengo una duda en python con respecto al manejo de las variables, agradeceria que alguien me echara una mano.

Tengo un script de python en el cual tengo que importar una variable que esta definida en otro script, y la verdad no se importar el valor de esta variable sin tener que definir la variable de nuevo en el script.

No se si existe alguna forma de tratar las variables en python sin tener que definirlas de nuevo, es decir necesito poder importar de otro fichero.


Gracias!!
#6
Hola a todos!! Necesito que alguien me eche una mano con un sencillo programa de Arduino que me está volviendo loco.
He creado un sencillo programa con el que usando el monitor serie voy mandando un 1 o un 2 para imprimir una serie de estados.

Este es el codigo que he realizado de prueba:
int va;
void setup() {
  Serial.begin(9600);
}


void loop() {

  while (Serial.available()== 0){
    Serial.println("OFF");
    delay (400);
    }


 
  if(Serial.available()>0){
     va=Serial.read();



     while(va=='1') {
   
   Serial.println("Modo 1");
   delay (400);
      }
  }

 
  while (va=='2') {
     Serial.println("Modo 2");
     delay (400);
   
    }   
  }





Os resumo lo que hace mi programa:

  Si no se detecta comunicación por el puerto serie se imprime "OFF"
  Si se detecta un "1" por el puerto serie se imprime "Modo 1"
  Si se detecta un "2" por el puerto serie se imprime "Modo 2"


En principio el programa me funciona, el problema lo tengo en el tratamiento de los bucles.
Resulta que si le envío "1" me imprime "Modo 1" pero al enviar un "2" no consigo que me entre al "Modo 2" realmente no sé de qué manera puedo hacerlo, lo he intentado con bucles while o if else e incluso he usado un GOTO para intentar redirigir el programa al otro bucle pero nunca consigo que me cambie al modo 2 una vez que entra en el primer bucle.

No sé de qué manera proceder, y no sé si debería probar con un switch case o interrumpir el programa de alguna manera,
Por favor necesito una mano, solo me falta esta parte para completar la comunicación de forma correcta.

Gracias!!

#7
Hola a todos!! :D, tengo una duda que no soy capaz de resolver, y espero que alguien conozca la respuesta.

Estoy haciendo un proyecto en el que una Raspberry se comunica con un Arduino nano mediante los GPIO de las Raspberry, esto lo hago cableando los GPIO de las Raspberry a las entradas digitales del Arduino nano y cuando detecto que se ponen en HIGH o LOW las uso en el mi sketch. Mi pregunta es la siguiente:

¿Se puede hacer lo mismo usando un cable USB haciendo uso de la comunicación serie entre las dos placas?

He visto tutoriales sobre como activar la comunicación serie entre el Arduino y la Raspberry pero no se explica nada sobre como usar las activaciones de los GPIO y compartir su estado para usarlos en mi sketch de Arduino.

Gracias y un saludo.
#8
Hola a todos!! tengo un problema que no consigo resolver, haber si le ha pasado a alguien y me puede echar una mano :D

Tengo un script de configuración llamado config.sh en el que defino diferentes variables de uso temporal, por ejemplo:
export ip1=99
export ip2=100


Y luego tengo un script llamado general.sh desde el cual quiero ejecutar el script anterior config.sh, este es su contenido
#!/bin/bash

echo exportando variables

. config.sh

source config.sh


Pues el problema es que no consigo exportar esas variables, al ejecutar desde la terminal el script "general.sh" se ejecuta todo sin problemas pero si hago un "echo $ip1" la variable no tiene ningún valor, lo curioso es que si desde la terminal añado "source config.sh" entonces la variable $ip1 si que me devuelve su valor.

No entiendo porque al poner "source config.sh" desde el script no se asignan las variables y al hacerlo desde la terminal si se añaden, que estoy haciendo mal? he probado varias cosas como " echo 'source config.sh' " pero no consigo que funcione desde el script. Entonces, ¿de que manera se añaden ejecutan comandos desde un script como si fuesen desde la terminal?
Gracias!
#9
Holaa a todos!! :D necesito por favor que alguien me eche una mano pues no encuentro la solución de un comando que me esta volviendo loco y apenas hay información en la red de como llevarlo a cabo.

Necesito realizar un script que sea capaz de ejecutar tareas en linux (ubuntu) para posteriormente conectarse a una Raspberry mediante SSH y ejecutar un determinado script dentro de la raspberry y al terminar volver al  entorno de ubuntu.

Puede parecer lioso pero es sencillo, pongo un  ejemplo:

En linux he creado un script llamada "prueba.sh" que contiene lo siguiente:

#!/bin/bash
sshpass -p contraseña1 ssh pi@192.168.1.40


Con esto lo que hago es acceder a la Raspberry sin que me pida el password, hasta ahí bien.
Pero una vez dentro de la conexión con la Raspberry no consigo desencadenar los siguientes comandos del script, en este caso he intentado mandarle el comando para que se actualice nada mas entrar:

#!/bin/bash
sshpass -p contraseña1 ssh pi@192.168.1.40

sudo apt-get update

exit ssh


He probado colocando "&&" o colocando "echo" delante de las instrucciones pero no funciona.

La idea es que con un mismo script desde linux poder enviar ficheros a la raspberry y ademas ejecutar comandos dentro para hacerlo todo de forma automatizada.
No se si lo mas correcto seria usar protocolo SCP, ya que desde windows con el programa WinSCP si que conseguía realizar estas tareas.

Muchas gracias y espero obtener alguna solución.


#10
Necesito por favor ayuda de algún experto en access o VBA ya que hay un error que me lleva de cabeza y seguro que es alguna chorrada pero que no alcanzo a solucionar.

Tengo una base de datos con un formulario en la que tengo una serie de registros con sus campos, si yo me desplazo por los registros mediante las flechas y cambio los datos de cualquier campo, no tengo ningún problema y los datos se guardan,

En cambio si uso la lista desplegable y selecciono un registro cualquiera y luego intento escribir un dato en un campo comienza a salir una ventana continuamente con el siguiente mensaje: "Update o CancelUpdate sin AddNew o Edit" lo peor de todo es que no se puede cerrar la base de datos y me toca apagarlo todo de mala manera.

He estado buscando información y parece ser que hay que poner algo en el VBA para que se guarden los registros de esos campos, pero yo de VBA se mas bien poco y no entiendo porque al desplazarme con las flechas si me funciona todo pero al elegir el mismo elemento del cuadro desplegable me da el error al intentar modificar los campos.
#11
Necesito ayuda de algun experto en scripts en batch.

Resulta que  necesito grabar varias SD de forma simultanea que contienen una imagen de linux, yo hasta ahora he estado usando el programa Win32DiskImager, el problema que solo me permite grabar una imagen, entonces mi pregunta es:

¿hay alguna manera mediante script en batch de pasar una imagen de mi pc a varias unidades extraibles mediante un hub y asi copiar por ejemplo 4 SD de golpe?
Llevo dias probando codigos y me estoy volviendo loco. :o
Un saludo y gracias.

Mario. :D
#12
Hola, lo primero saludar a toda la comunidad :-*, Me llamo Mario y tengo un problema que espero me pueda ayudar algún entendido del tema.

Resulta que por el trabajo que desempeño a diario necesito estar continuamente copiando información de bases de datos  que se encuentra almacenada en varios ordenadores y las paso a diferentes USB o unidades extraíbles,  por lo que estoy usando la siguiente rutina para hacer el proceso más cómodo, y la verdad que funciona muy bien:

IF NOT EXIST ".\cosas\"%USERNAME% MD ".\cosas\"%USERNAME%cd ".\cosas\"%USERNAME%

for /R %USERPROFILE%\Pictures\ %%x in (*.accdb) do copy "%%x" "%NOMBRE%BASE-DATOS"

Pues bien, el  problema que tengo es que necesito sólo copiar algunos archivos que no superen un cierto tamaño, por ejemplo solo necesito copiar que se copien los archivos que pesen menos de 200 mb.

He visto por internet algunos ejemplos de cómo se hace el comando, pero no consigo insertarlo en la rutina mia anterior, por ejemplo,  he intentado utilizar esto:

for /R %USERPROFILE%\Pictures\ %%x in (*.accdb) do copy "%%x" "%NOMBRE%BASE-DATOS"/MAX:1000

Pero no me funciona, no sé si hay que colocar el parametro "MAX:" en otro lugar o es que no se hace de esta manera, pero yo necesito que en el script que utilizo pueda insertar ese parámetro de alguna manera.

Espero que alguien me pueda ayudar porque esto me lleva de cabeza ya bastante tiempo y es un engorro que se me copien todos los archivos y no poder separarlos por fecha o por tamaño.

Un saludo y gracias!!.