系统设计(架构师)指南A:PlatformIO云IDE实例

PlatformIO简介

PlatformIO是一个开源的物联网(IoT)开发平台,旨在提供跨平台的软件开发工具和框架,使开发者能够更轻松地构建和部署嵌入式系统和物联网设备。

PlatformIO提供了统一的开发环境,支持多种不同的开发板和微控制器平台,包括Arduino、Raspberry Pi、ESP8266、ESP32等等。开发者可以使用PlatformIO来编写、调试和上传代码到这些平台上。

PlatformIO的主要特点和功能包括:

  • 跨平台支持:PlatformIO可以在Windows、Mac和Linux等操作系统上运行,提供一致的开发体验。

  • 强大的集成开发环境(IDE)支持:PlatformIO可以与多个流行的IDE集成,如Visual Studio Code(VSCode)、Atom等。这些IDE提供了丰富的功能,如代码自动完成、语法高亮、调试工具等,使开发者能够更高效地编写代码。

  • 库管理器:PlatformIO内置了一个库管理器,开发者可以从中获取各种开源库和驱动程序,以便在项目中使用。这些库可以通过简单的命令或图形界面进行安装和更新。

  • 跨平台构建系统:PlatformIO提供了一个强大的构建系统,支持自动化构建和测试。开发者可以使用不同的构建选项,如编译器、优化级别等,以满足特定的需求。

  • 调试支持:PlatformIO支持硬件和仿真调试,可以帮助开发者定位和修复代码中的错误。

  • 应用框架和示例代码:PlatformIO提供了许多应用框架和示例代码,包括Arduino框架、ESP-IDF框架等。这些框架和示例代码可以加速开发过程,帮助开发者快速上手。

IDE技术初步选型

Visual Studio Code是一款轻量级但功能强大的源代码编辑器,可在桌面上运行,适用于 Windows、macOS 和 Linux。它内置了对JavaScript、TypeScript和Node.js的支持,并为其他语言(如 Python、C++、C#、PHP、Go)和运行时(如 .NET 和 Unity)提供了丰富的扩展生态系统。

当今市场上的IDE大多派生于Eclipse或Visual Studio Code,Visual Studio Code后来居上,在GitHub上的星级已经比Eclipse高至少一个数量级,且社区强大、容易上手。从性能和社区等方面综合建议使用Visual Studio Code。

物联网开发IDE,用于以基于VSCode的PlatformIO 用户最多,为此初步选用VSCode作为基础框架。

本项目IDE分为Visual Studio Code(以下简称VS Code) 、桌面IDE(非VS Code)、Cloud IDE(以下简称云IDE) 、command-line interface(以下简称CLI)和管理平台组成,整体架构如图所示:

CLI简介

CLI是整个IDE生态系统的核心。它实现所有命令行操作的串接,并和管理平台互相交互,同时也提供基础UI供VS Code、IDE和云IDE调用。包括但不限于如下功能:

  • 多平台构建系统
  • 统一软件包管理器
  • 库管理
  • 库依赖关系查找器(LDF Library Dependency Finder)
  • 串行端口监控器
  • 集成组件(云和桌面集成开发环境以及持续集成)。

CLI通常由Python编写,具备跨平台支持,初期仅要求支持Ubuntu、麒麟、统信、Windows等操作系统主流版本。
CLI要保持独立性,不仅能支持VS code,也要考虑到后期可能支持其他IDE和云IDE。
实现可参考目前物联网最流行的单板VS code网关:platformio-core,其次是乐鑫公司的esp-idf

参考资料

管理平台简介

管理平台接收CLI请求,进行相应处理,主要功能如下:

  • SDK、中间件、模板等管理
  • 用户管理
  • 组织管理
  • 团队管理
  • License管理

管理平台需要提供Web展示页面,同时提供API和CLI对接。管理平台要具备5个9的稳定性,支持500 TPS,可用Flask、Django、FastAPI、Spring Cloud等实现,参考架构如下:

原型参考 https://registry.platformio.org/

IDE简介

IDE为非基于Visual Studio Code的本地开发工具,后期如果有需要可以基于CLI实现。

云IDE简介

云IDE是基于浏览器的集成式开发环境,为开发者提供了稳定的云端工作站。用户在使用云IDE时无需安装,随时随地打开浏览器就能使用。

待基于Visual Studio Code的IDE稳定后,后期考虑云IDE开发。架构规划如下:

DAP简介

为了通过网络进行调试,并支持多种调试协议,在软实时部署RPC服务,实现( Debug Adapter Protocol )。
IDE可在将调试请求发给RPC,RPC再转发给RTOS,实现多OS同时调试。

热门相关:试婚老公,用点力!   试婚老公,用点力!   星界游民   国破山河在   娇妻太甜:老公,要抱抱