File tree Expand file tree Collapse file tree 4 files changed +39
-0
lines changed
projects/industry_io_gateway Expand file tree Collapse file tree 4 files changed +39
-0
lines changed Original file line number Diff line number Diff line change 33## 简介
44
55本例程为工业网关综合DEMO,使用动态插件方式扩充功能。内置一个web服务器能够通过网页显示开发板的基本信息及插件信息。同时,内置ftp插件,能够通过ftp客户端(如FileZilla)进行操作。
6+ 如果对本例程想进一步了解可以阅读[ 设计思想] ( ./docs/设计思想.md ) 。
67
78## 硬件说明
89
Original file line number Diff line number Diff line change 1+ # INDUSTRY-IO-GATEWAY 设计思想
2+
3+ ## 前言
4+
5+ 在拿到开发板的时候,看到板上那么多资源就想做个好玩的东西。当时胡思乱想了好久,想做好多功能,再一合计还要为未来的拓展性行方便,头都大了。
6+
7+ 这时候正好是在接触Linux应用编程,了解了一点动态模块的知识,发现RT-Thread也有动态模块功能,再一看好家伙 ` 32M SDRAM ` ,放手开干。
8+
9+ 在写代码前思考了一段时间,最终明确了目标:
10+
11+ 1 . 除必要的底层代码外,内核代码最精简,极少改动
12+ 2 . 所有应用代码均可动态实现
13+ 3 . 动态插件可视化配置
14+
15+ 基于以上的目标实现了第一版代码。当然与最终目标还有不少出入,但会在接下来的版本中不断完善。
16+
17+ ## 设计与实现
18+
19+ ### 思路
20+
21+ #### 调试
22+
23+ 调试功能虽说是占整个项目的很小一块,确实极为重要的一块。基于RT-Thread的finsh组件可以很容易的实现这一功能,但在实施过程中却遇到了几个问题:
24+
25+ 1 . 目前只能单一的输入输出
26+ 2 . 不能更方便的进行多通道的扩展
27+
28+ 在仔细研究了一番设备框架后,理解了select的本质实现,进而衍生出了 ` agile_console ` 软件包来对调试设备的多通道输入输出进行管理。同时对 ` agile_telnet ` 作了适配,实现了串口、以太网的同步调试。并且目前已经进一步实现了 ` mqtt ` 适配,实现了远程调试(未开放插件)。
29+
30+ #### 目录结构
31+
32+ ![ 目录结构] ( ../figures/目录结构.png )
33+
34+ 目录结构如图,从图中可以看到 ** 目标2:所有应用代码均可动态实现** 和 ** 目标3:动态插件可视化配置** 的影子。
35+
36+ ### 实现
37+
38+ ![ 流程] ( ../figures/流程.png )
You can’t perform that action at this time.
0 commit comments