Juega con los componentes de LiteOS: Juega con Librws

Resumen: Librws es un cliente websocket multiplataforma escrito en lenguaje C.

Este artículo es compartido por la comunidad HUAWEI CLOUD " Acceso anticipado al componente LiteOS - Jugando con Librws ", autor: W922.

En este número, el editor le brinda las instrucciones para usar el componente Librws de la versión de código abierto de LiteOS. ¡Siga los pasos del editor para ingresar al viaje de exploración!

introducción básica

Librws es un cliente websocket multiplataforma escrito en C. Tiene las siguientes características:

  • ninguna otra dependencia
  • Una biblioteca de métodos públicos independiente librws.h con métodos públicos
  • seguridad del hilo
  • Enviar/recibir lógica en subproceso de fondo

Para obtener más información, consulte: https://github.com/OlehKulykov/librws.

WebSocket es un protocolo para la comunicación full-duplex sobre una única conexión TCP.

Para obtener más información, consulte: https://baike.baidu.com/item/WebSocket/1953845?fr=aladdin.

Habilitar demostración de Libras

  • En el directorio raíz del código fuente de LiteOS, copie el archivo de configuración predeterminado ${platform}.config en el directorio tools/build/config/ al directorio raíz y cámbiele el nombre a .config de acuerdo con la placa de desarrollo real.

Nota: De acuerdo con los recursos requeridos por Librws, solo se puede ejecutar LibrwsDemo en la placa de desarrollo STM32F769 por el momento.

  • Ejecute el comando make menuconfig en el directorio raíz del código fuente de LiteOS y habilite la demostración de Librws de acuerdo con la siguiente ruta del menú .
Demos  --->
   Librws Demo  --->
          [*] Enable Librws Demo

Nota: los componentes de Librws y LWIP se habilitan automáticamente después de habilitar la demostración de Librws.

  • Después de guardar y salir, el código fuente de Librws se descargará automáticamente de github , y el paquete de parches adaptado al sistema LiteOS se descargará de gitee y se insertará en el parche. El proceso detallado se encuentra en el archivo components/download.sh.

Nota: La descarga requiere un host Linux con acceso a Internet y git instalado.

Compilar y ejecutar la demostración de Librws

Configuración del servidor

La ruta del código del servidor es LiteOS/demos/librws/websocketserver.py, que requiere un entorno python3 para ejecutarse. Los pasos para iniciar el servidor son los siguientes (operación de línea de comando):

  • Modifique la ip de la variable en el código del servidor a la dirección ip del servidor.
# creat websockets server, please change ip as your ip address.
ip = ''
startServer = websockets.serve(MainLogic, ip, 8000)
  • Instale el paquete websocket a través del comando python pip .
pip install websockets
  • Ejecute el script websocketserver.py .
python websocketserver.py

Configuración del cliente

La demostración de Librws requiere una conexión de red, inserte el cable de red en la placa de desarrollo STM32F769 y asegúrese de la conexión de red. Los pasos de la operación del cliente son los siguientes:

  • Modifique WEBSOCKET_DEMO_SERVER en LiteOS/demos/librws/librws_demo.c a la IP del servidor o nombre de dominio.
#define TEXT_BUFF_LEN                   1024
#define BIN_BUFF_LEN                    1024
#define WEBSOCKET_DEMO_SERVER           "your.ip.address"
#define WEBSOCKET_DEMO_PORT             8000
#define LIBRWS_TASK_PRIORITY            6
#define LIBRWS_TASK_STACK_SIZE          0x1400

Nota: LWIP_DHCP debe estar habilitado para cambiar el nombre de dominio (DNS necesita DHCP para inicializarse, compilado bajo Linux, habilitar LWIP habilitará DHCP de manera predeterminada).

  • Modifique el tamaño predeterminado de la pila de tareas en el Kernel . Ejecute el comando make menuconfig en el directorio raíz del código fuente de LiteOS , configure la ruta del menú de la siguiente manera y modifíquela a 4096 .
Kernel  --->
    Basic Config  --->
        Task  --->
            (4096) Task Defalut Stack Size

Compilar y grabar

  • Ejecute el comando make clean; make -j en el directorio raíz del código fuente de LiteOS para compilar el proyecto LiteOS. Después de una compilación exitosa, los archivos lilibrws.a y lilibrws_demo.a se generarán en la ruta out/{platform}/lib El archivo de imagen del sistema es Huawei_LiteOS.bin.
  • Consulte https://gitee.com/LiteOS/LiteOS/blob/master/doc/LiteOS_Quick_Start.md para la operación de grabación .
  • Después de iniciar LiteOS, inicializará la red, activará DHCP y luego ejecutará la demostración de Librws para establecer una conexión websocket y enviar datos al servidor. Después de recibir los datos, el servidor devolverá los datos. Los resultados son los siguientes:
********Hello Huawei LiteOS********
LiteOS Kernel Version : 5.1.0
build data : Jul 14 2021 17:15:39
**********************************
OsAppInit
cpu 0 entering scheduler
app init!
Hello, welcome to liteos demo!
lwip_init OK!!
dhcp start...
Librws demo start to run.
Huawei LiteOS #
Websocket connected
Websocket receive text:
your submit context: LiteOS Websocket demo data


Lo anterior es todo el contenido del manual de usuario de "Librws". Bienvenido a aprender e intercambiar.

Epílogo

En el futuro, continuaremos agregando más componentes, placas de desarrollo, arquitecturas, funciones, etc.

Gracias por leer, si tiene alguna pregunta o sugerencia, puede dejarnos un mensaje, avancemos juntos:  

https://gitee.com/LiteOS/LiteOS/issues

Para encontrar el repositorio de código "LiteOS" más fácilmente, se recomienda visitar https://gitee.com/LiteOS/LiteOS , seguir "Watch", como "Star" y "Fork" en su cuenta, como se muestra en la figura.

 

Haga clic en Seguir para conocer las nuevas tecnologías de HUAWEI CLOUD por primera vez~

{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/4526289/blog/5516645
Recomendado
Clasificación