segunda-feira, 12 de agosto de 2024

FIBOCOM - L610 - RT-THREAD - AT COMMANDS

 


RT-THREAD

RT-Thread nascido em 2006, é um sistema operacional em tempo real (RTOS) de código aberto, neutro e baseado na comunidade. O software tem as características de ocupação de recursos muito baixa, alta confiabilidade, alta escalabilidade, pode ser muito utilizado em nós de detecção, chips de conexão sem fio e muitas cenas com restrição de recursos, também amplamente aplicadas em gateway, IPC, alto-falantes inteligentes e muitas outras aplicações de alto desempenho.

O RT-Thread também é considerado uma plataforma IoT com seus ricos componentes de camada intermediária e ótimo ecossistema de hardware e software, com quase todos os principais componentes básicos necessários para dispositivos IoT, como protocolos de rede, sistemas de arquivos, gerenciamento de baixa energia, etc. Ele suporta todas as ferramentas de compilação convencionais, como GCC, Keil, IAR, etc., e uma variedade de interfaces padrão, como POSIX, CMSIS, ambiente de aplicativos C++, Micropython e Javascript, fácil para os desenvolvedores portarem uma ampla gama de aplicativos. O RT-Thread também oferece excelente suporte comercial para todas as arquiteturas de CPU convencionais, como ARM Cortex-M/R/A, RISC-V, MIPS, X86, Xtensa, etc.

Nós e a comunidade nos esforçamos para criar uma nova classe de sistema operacional IoT com ótimo ecossistema de hardware e software, conectar tudo, manter o fluxo de informações e fazer com que o projeto de código aberto beneficie mais pessoas!

Instalação Raspberry  Pico (autor tinha esta placa para testes)

Instalando SDK PICO

Projeto com PICO



Compilamd

Selecione PICO

Pacotes

Dispositivo AT

1. Introdução

O pacote de software do dispositivo AT é composto pelos arquivos de transplante e códigos de amostra do componente RT-Thread AT para diferentes dispositivos AT. Os dispositivos AT atualmente suportados são: ESP8266, ESP32, M26, MC20, RW007, MW31, SIM800C, W60X, SIM76XX, A9/A9G, BC26, AIR720, ME3616, M6315, BC28, EC200X, M5311, dispositivos da série L610, etc. , os dispositivos acima completaram o transplante da função AT socket, e o dispositivo implementa a interface de programação de socket padrão por meio de comandos AT para completar a comunicação do socket. Para introdução detalhada da função, consulte o capítulo de comando AT "Guia de programação RT-Thread" .

1.1. Estrutura de diretório

NameDescription
srcAT device implementation source code directory
incAT device header file directory
sampleSample file directory for different devices
classMigration and adaptation catalog of AT components for different devices
class/esp8266ESP8266 device's migration directory for AT components, realizing AT Socket function
class/esp32ESP32 device's migration directory for AT components to realize AT Socket function
class/rw007RW007 device is a migration directory for AT components, realizing AT Socket function
class/sim800cSIM800C device for AT component transplantation directory, realize AT Socket function
class/sim76xxSIM76XX device's migration directory for AT components, realizing AT Socket function
class/m26M26/MC20 device's migration directory for AT components, realizing AT Socket function
class/ec20EC20 device's migration directory for AT components, realizing AT Socket function
class/mw31Migration directory for AT components of MW31 equipment, realizing AT Socket function
class/w60xW60X device's migration directory for AT components, realizing AT Socket function
class/a9gA9G device's migration directory for AT components, realizing AT Socket function
class/bc26The migration directory of bc26 device aiming at AT components to realize AT Socket function
class/air720Air720 device is aimed at AT component transplantation catalog, realizes AT Socket function
class/me3616The me3616 device is aimed at the transplantation directory of AT components, and realizes the AT Socket function
class/m6315The migration directory of m6315 equipment for AT components, realizes the AT Socket function
class/bc28The migration directory of bc28 equipment for AT components, realizes AT Socket function
class/ec200xEC200T, EC200S equipment for AT component migration catalog, realize AT Socket function
class/n21N21 device's transplantation directory for AT components to realize AT Socket function
class/n58N58 device's migration directory for AT components, realizing AT Socket function
class/m5311M5311 device is aimed at AT component transplantation catalog, realizes AT Socket function
class/l610A migration directory for AT components of L610 equipment, realizing AT Socket function
class/ml305A migration directory for AT components of ML305 equipment, realizing AT Socket function

1.3 Dependência

  • RT_Thread 4.0.2+
  • Componente RT_Thread AT 1.3.0+
  • Componente SAL RT_Thread
  • Componente netdev RT-Thread




Instale o consome ENV








Atualizar AT_DEVICE (já no repositório oficial do RT-THREADS)

2. Como obter

O pacote de software do dispositivo AT é um "transplante" do componente AT e da função do socket AT. Você precisa ativar a biblioteca de componentes AT e a função de socket AT para obter o pacote de software do dispositivo AT.

Descrição do número da versão

Atualmente, o pacote de software do dispositivo AT foi lançado em várias versões, e o método de configuração de opções entre cada versão e a versão do sistema correspondente é diferente. A seguir listamos principalmente as informações de versão do pacote de software atualmente disponíveis:

V1.2.0 : aplicável à versão RT-Thread inferior a V3.1.3, versão do componente AT igual a V1.0.0;
V1.3.0 : aplicável à versão RT-Thread inferior a V3.1.3, versão do componente AT igual a V1.1.0;
V1.4.0 : aplicável à versão RT-Thread inferior a V3.1.3 ou igual a V4.0.0, versão do componente AT igual a V1.2.0;
V1.5.0 : Adequado para versão RT-Thread inferior a V3.1.3 ou igual a V4.0.0, versão do componente AT igual a V1.2.0;
V1.6.0 : aplicável à versão RT-Thread igual a V3.1.3 ou igual a V4.0.1, versão do componente AT igual a V1.2.0;
V2.0.0/V2.0.1 : aplicável à versão RT-Thread superior a V4.0.1 ou superior a 3.1.3, versão do componente AT igual a V1.3.0;
Mais recente : Aplicável apenas à versão RT-Thread superior a V4.0.1 ou superior a 3.1.3, versão do componente AT igual a V1.3.0;

O julgamento da versão acima é concluído automaticamente no menuconfig. Quando o pacote de software at_device seleciona a versão, ele fornecerá o melhor suporte de versão de acordo com o ambiente atual do sistema. A introdução da versão é usada como referência para o ambiente operacional.

Para diferentes números de versão, a configuração da opção no ENV também é diferente, dividida principalmente nas seguintes partes:

Introdução às opções de configuração da versão V1.XX

Abra o pacote de software do dispositivo AT. Esta versão suporta apenas Habilitar um dispositivo AT ao mesmo tempo . As opções de configuração são as seguintes:

RT-Thread online packages --->
     IoT-internet of things --->
        -*- AT DEVICE: RT-Thread AT component porting or samples for different device
        [] Enable at device init by thread
              AT socket device modules (Not selected, please select) --->
              Version (V1.6.0) --->

Habilitar na inicialização do dispositivo por thread : Configure se deseja habilitar a inicialização da rede do dispositivo para ser concluída criando um thread;

Módulos de dispositivo de socket AT : seleção de dispositivo AT, atualmente suporta apenas RW007、ESP8266、M26/MC20、EC20、SIM800C、SIM76XX. Mais suporte a dispositivos deve escolher a ramificação V2.XX.

Versão : baixe a versão do pacote de software;

Introdução às opções de configuração da versão V2.XX (mais recente)

Abra o pacote de software do dispositivo AT, esta versão suporta a abertura de vários dispositivos AT ao mesmo tempo, as opções de configuração são as seguintes:

RT-Thread online packages --->
     IoT-internet of things --->
        -*- AT DEVICE: RT-Thread AT component porting or samples for different device
        [*] Quectel M26/MC20 --->
          [*] Enable initialize by thread
          [*] Enable sample
          (-1) Power pin
          (-1) Power status pin
          (uart3) AT client device name
          (512) The maximum length of receive line buffer
        [] Quectel EC20 --->
        [] Espressif ESP32 --->
        [*] Espressif ESP8266 --->
          [*] Enable initialize by thread
          [*] Enable sample
          (realthread) WIFI ssid
          (12345678) WIFI password
          (uart2) AT client device name
          (512) The maximum length of receive line buffer
        [] Realthread RW007 --->
        [] SIMCom SIM800C --->
        [] SIMCom SIM76XX --->
        [] Notion MW31 --->
        [] WinnerMicro W60X --->
        [] AiThink A9/A9G --->
        [] Quectel BC26 --->
        [] Luat air720 --->
        [] GOSUNCN ME3616 --->
        [] ChinaMobile M6315 --->
        [] Quectel BC28 --->
        [] Quectel ec200x --->
        [] Neoway N21 --->
        [] Neoway N58 --->
        [] ChinaMobile M5311 --->
        [] ChinaMobile ML305 --->
        Version (latest) --->
  • Como exemplo, o Quectel M26/MC20 : habilita suporte a dispositivos M20/MC20 (módulo 2G);
Habilitar inicialização por thread : habilita o uso de threads para inicializar o dispositivo (inicialização em modo sem bloqueio);
Habilitar exemplo : Abra o código exemplo, o código exemplo tem o registro do dispositivo de código exemplo;
Pino de alimentação : Configure o pino de inicialização do dispositivo de código exemplo;
Pino de status de energia : Configure o pino de status de energia do código exemplo;
Nome do dispositivo cliente AT : Configure o nome do dispositivo serial usado pelo dispositivo de código exemplo;
O comprimento máximo do buffer da linha de recepção : Configure o comprimento máximo dos dados recebidos em uma linha do código exemplo;
  • Quectel EC20 : habilita o suporte ao dispositivo EC20 (módulo 4G);
  • Espressif ESP8266 : habilita o suporte ao dispositivo ESP8266 (módulo WIFI);
Habilitar inicialização por thread : habilita o uso de threads para inicializar o dispositivo (inicialização em modo sem bloqueio);
Habilitar amostra : Abra o código de amostra, o código de amostra possui o registro do dispositivo de amostra;
WIFI ssid : Configure o nome de usuário WIFI conectado ao dispositivo de amostra;
Senha WIFI : Configure a senha WIFI conectada ao dispositivo de amostra;
Nome do dispositivo cliente AT : Configure o nome do dispositivo serial usado pelo dispositivo de amostra;
O comprimento máximo do buffer da linha de recepção : Configure o comprimento máximo dos dados recebidos em uma linha do dispositivo de amostra;
  • Espressif ESP32 : habilita o suporte ao dispositivo ESP32 (módulo WIFI);
  • Realthread RW007 : habilita o suporte ao dispositivo RW007 (módulo WIFI);
  • SIMCom SIM800C : habilita o suporte ao dispositivo SIM800C (módulo 2G);
  • SIMCom SIM76XX : habilita o suporte ao dispositivo SIM76XX (módulo 4G);
  • Notion MW31 : habilita o suporte ao dispositivo MW31 (módulo WIFI);
  • WinnerMicro W60X : habilita o suporte ao dispositivo W60X (módulo WIFI);
  • AiThink A9/A9G : habilita o suporte ao dispositivo A9/A9G (módulo 2G);
  • Quectel BC26 : habilita o suporte ao dispositivo BC26 (módulo NB-IOT);
  • Luat Air720 : habilita o suporte ao dispositivo air720 (módulo 4g);
  • GOSUNCN ME3616 : habilita o suporte ao dispositivo ME3616 (módulo NB-IOT);
  • ChinaMobile M6315 : habilita o suporte ao dispositivo M6315 (módulo 2G);
  • Quectel BC28 : habilita o suporte ao dispositivo BC28 (módulo NB-IoT);
  • Quectel EC200X : habilita suporte a dispositivos EC200T, EC200S (módulo 4G);
  • Neoway N21 : habilita suporte a dispositivos N21 (módulo NB-IoT);
  • Neoway N58 : habilita suporte a dispositivos N58 (módulo 4G);
  • ChinaMobile M5311 : habilita suporte ao dispositivo M5311 (módulo NB-IoT);
  • ChinaMobile ML305 : habilita o suporte ao dispositivo ML305 (módulo 4G);
  • Version : baixe a versão do pacote de software;
As opções de configuração acima tomam as opções do módulo 2G e do módulo WIFI como exemplos para apresentar o método de configuração do pacote de software do dispositivo AT da V2.X.Xversão. 

Os seguintes pontos são dignos de nota:
  • V2.X.Xversão suporta vários dispositivos AT para serem ligados ao mesmo tempo. Você pode visualizar as informações dos dispositivos ligados através do comando ifconfig  no FinSH;
  • Os dispositivos da V2.X.Xversão precisam ser registrados antes de poderem ser usados. Atualmente, o registro do dispositivo é concluído no arquivo de diretório de amostras e os usuários também podem personalizar o registro do dispositivo na camada de aplicativo.
  • Opções de pinos como Power Pin e Power Status Pin são configuradas de acordo com a conexão de hardware do dispositivo específico. Se a função de inicialização do hardware não for usada, ela poderá ser configurada como -1;
  • Um dispositivo AT corresponde a um nome de porta serial, e o AT client device name configurado para cada dispositivo deve ser diferente.

Introdução às opções de configuração relacionadas ao componente AT

Depois que o pacote de software do dispositivo AT for selecionado e o suporte do dispositivo relacionado for habilitado, a função cliente do componente AT será selecionada por padrão. A seguir estão as opções de configuração do componente AT.

RT-Thread Components --->
    Network --->
        AT commands --->
    [] Enable debug log output
    [] Enable AT commands server
    -*- Enable AT commands client
    (1) The maximum number of supported clients
    -*- Enable BSD Socket API support by AT commnads
    [*] Enable CLI(Command-Line Interface) for AT commands
    [] Enable print RAW format AT command communication data
    (128) The maximum lenght of AT Commonds buffer


Entre elas, as opções de configuração relacionadas ao pacote de software do dispositivo AT:
  • O número máximo de clientes suportados : O número máximo de clientes AT suportados (vários dispositivos selecionados no pacote de software do dispositivo AT precisam ser configurados com o valor correspondente);
  • Habilite o suporte da API BSD Socket por comandos AT : habilite o suporte à função AT Socket, selecione o pacote de software do dispositivo AT e selecione esta opção por padrão;
  • O comprimento máximo do buffer dos comandos AT: O comprimento máximo suportado para envio de dados de comando.
3. Assuntos que precisam de atenção
  • O módulo adaptado ao pacote de software do dispositivo AT não suporta servir como Servidor TCP para completar operações relacionadas ao servidor (como aceitar, etc.);
  • O tipo de dispositivo padrão do pacote de software do dispositivo AT não está selecionado e o modelo do dispositivo precisa ser especificado ao usá-lo;
  • A latestversão suporta o acesso de vários dispositivos AT selecionados para realizar a função AT Socket. A V1.X.Xversão suporta apenas o acesso de um único dispositivo AT.
  • Atualmente, múltiplas versões do pacote de software do dispositivo AT são usadas principalmente para se adaptar às mudanças nos componentes e sistemas AT. Recomenda-se utilizar a última versão do sistema RT-Thread e selecionar a latestversão na opção menuconfig;
  • Consulte a descrição em at_sample_xxx.c, algumas funções precisam aumentar o valor de configuração de AT_CMD_MAX_LEN,.RT_SERIAL_RB_BUFSZ
4. Documentos relacionados
Aplique componentes AT para conectar ao módulo ESP8266

5. Contato
Manutenção: Equipe de desenvolvimento do RT-Thread e desenvolvedores da comunidade

6. Compilação (log)

12:58:28 **** Incremental Build of configuration Debug for project pico ****
scons.bat -j6 
scons: Reading SConscript files ...
Newlib version: 3.0.0
scons: done reading SConscript files.
scons: Building targets ...
scons: building associated VariantDir targets: build
CC build\applications\main.o
CC build\board\board.o
CC build\drivers\drv_gpio.o
CC build\drivers\drv_uart.o
CC build\kernel\components\drivers\ipc\completion.o
CC build\kernel\components\drivers\ipc\dataqueue.o
CC build\kernel\components\drivers\ipc\pipe.o
drivers\drv_gpio.c:52:5: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
     pico_pin_mode,
     ^~~~~~~~~~~~~
drivers\drv_gpio.c:52:5: note: (near initialization for 'ops.pin_mode')
drivers\drv_gpio.c:53:5: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
     pico_pin_write,
     ^~~~~~~~~~~~~~
drivers\drv_gpio.c:53:5: note: (near initialization for 'ops.pin_write')
drivers\drv_gpio.c:54:5: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
     pico_pin_read,
     ^~~~~~~~~~~~~
drivers\drv_gpio.c:54:5: note: (near initialization for 'ops.pin_read')
CC build\kernel\components\drivers\ipc\ringblk_buf.o
CC build\kernel\components\drivers\ipc\ringbuffer.o
CC build\kernel\components\drivers\ipc\waitqueue.o
CC build\kernel\components\drivers\ipc\workqueue.o
CC build\kernel\components\drivers\misc\pin.o
CC build\kernel\components\drivers\serial\serial.o
CC build\kernel\components\finsh\cmd.o
CC build\kernel\components\finsh\msh.o
CC build\kernel\components\finsh\msh_parse.o
CC build\kernel\components\finsh\shell.o
CC build\kernel\components\libc\compilers\common\cstdlib.o
CC build\kernel\components\libc\compilers\common\cstring.o
CC build\kernel\components\libc\compilers\common\ctime.o
CC build\kernel\components\libc\compilers\newlib\syscalls.o
CC build\kernel\components\net\at\at_socket\at_socket.o
CC build\kernel\components\net\at\src\at_cli.o
CC build\kernel\components\net\at\src\at_client.o
CC build\kernel\components\net\at\src\at_utils.o
CC build\kernel\components\net\netdev\src\netdev.o
CC build\kernel\components\net\netdev\src\netdev_ipaddr.o
CC build\kernel\components\net\sal\impl\af_inet_at.o
CC build\kernel\components\net\sal\socket\net_netdb.o
CC build\kernel\components\net\sal\src\sal_socket.o
CC build\kernel\libcpu\arm\common\showmem.o
CC build\kernel\src\clock.o
CC build\kernel\src\components.o
CC build\kernel\src\device.o
CC build\kernel\src\idle.o
CC build\kernel\src\ipc.o
CC build\kernel\src\irq.o
CC build\kernel\src\kservice.o
CC build\kernel\src\mem.o
CC build\kernel\src\mempool.o
CC build\kernel\src\object.o
CC build\kernel\src\scheduler_up.o
CC build\kernel\src\thread.o
CC build\kernel\src\timer.o
AS build\libcpu\context_gcc.o
CC build\libcpu\cpuport.o
CC build\packages\at_device-latest\class\l610\at_device_l610.o
CC build\packages\at_device-latest\class\l610\at_socket_l610.o
CC build\packages\at_device-latest\samples\at_sample_l610.o
CC build\packages\at_device-latest\src\at_device.o
LINK rtthread-pico.elf
arm-none-eabi-objcopy -O binary rtthread-pico.elf rtthread.bin
arm-none-eabi-size rtthread-pico.elf
   text    data     bss     dec     hex filename
 153704       0    2884 156588   263ac rtthread-pico.elf
C:\RT-ThreadStudio\workspace\pico\libraries\generated\elf2uf2.exe rtthread-pico.elf rtthread-pico.uf2
scons: done building targets.

12:58:38 Build Finished. 0 errors, 3 warnings. (took 9s.745ms)

7.0 Testes Iniciais até receber o L610

Deverá então retornar o valor correto em nos campos 0.0.0.0

Ref


Sobre a SMARTCORE

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portfólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.

Mais detalhes em www.smartcore.com.br

Nenhum comentário:

Postar um comentário