studio programacion herramientas fundamentos con avanzado aplicaciones android unix serial-port at-command

programacion - manual de android en pdf



cómo lidiar con el puerto serie en el móvil Android? (2)

/dev/smd0 y /dev/ttyS0 son archivos de dispositivo . Dichos archivos son archivos virtuales que proporcionan una interfaz de operación de E / S para trabajar con elementos subyacentes como, por ejemplo, recursos de hardware como puertos serie, discos duros y memoria, o con recursos que no son de hardware, como información de proceso, entrada aleatoria de números, pantalla de terminal salida, etc.

Los archivos del dispositivo vienen en dos sabores, carácter y bloque. Los puertos serie son dispositivos de caracteres, puede verificar que c sea ​​el primer caracter en salida de ls -l :

$ ls -l /dev/ttyS0 crw-rw----. 1 root dialout 4, 64 Apr 7 00:25 /dev/ttyS0 $

/dev/ttyS0 es el nombre del dispositivo utilizado para puertos serie en las computadoras de escritorio linux, correspondiente a COM1 en DOS / Windows (en los primeros días de linux /dev/cua se utilizó, puede encontrar ocasionalmente referencias a eso) . Para interfaces de USB virtuales en serie para teléfonos móviles, se utilizan /dev/ttyACM0 y /dev/ttyACM1 . Algunos otros dispositivos usan / dev / ttyUSB0. Para Android, hay algunos nombres de archivos de dispositivo diferentes en uso, donde /dev/smd0 es uno de ellos. Su teléfono puede usar otro, por lo que debe verificar qué debe usar específicamente para su teléfono.

El comando echo -e "AT" > /dev/smd0 no tiene sentido. La opción -e habilita la interpretación de caracteres escapados de barra invertida, pero dado que la siguiente cadena no contiene tales caracteres, es equivalente al echo "AT" > /dev/smd0 .

Sin embargo, al enviar comandos AT a un módem, la línea de comando debe terminar con solo /r y nada más. Esto es obligatorio por V.250 .

Entonces, el comando apropiado para enviar el comando "AT" al módem debe ser

echo -n -e "AT/r" > /dev/smd0

Pero incluso cuando se llega tan lejos como para enviar correctamente el comando AT al módem, debe volver a leer las respuestas del módem. Cerrar y (volver) a abrir el archivo del dispositivo varias veces mientras lo hace (lo cual hará ejecutando una secuencia de comandos de shell) no es una buena forma de proceder, por lo que le recomendaría que use mi programa en el que está específicamente escrito para ser utilizado para la comunicación de comando AT de línea de comando:

$ echo AT | atinout - /dev/smd0 - AT OK $

o

$ echo AT > input.txt $ atinout input.txt /dev/smd0 output.txt $ cat output.txt AT OK $

De esta forma obtendrá todas las comunicaciones del módem realizadas correctamente.

en realidad, no sé nada sobre el puerto serie. pero veo un ejemplo de enviarlo como un comando:

echo -e "AT" > /dev/smd0

¿Qué es / dev / smd0 y por qué a veces lo reemplazan con / dev / ttyS0.


  1. Usando c4droid
  2. Abra el archivo .c
  3. Modifique la línea 173 a printf ("atinout version ... / n"); ... es el número de versión
  4. Ahora compila tu código en c4droid
  5. recuperar el archivo del directorio c4droid cp data / data / com.n0n3m4.droidc / files / temp / sdcard