2 Star 6 Fork 1

hzy15610046011 / LigralPy

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 5.68 KB
一键复制 编辑 原始数据 按行查看 历史
hzy15610046011 提交于 2022-06-23 20:03 . 更新README.md,添加文档

Ligral Frontend 适配Ligral语言的前端

star

项目介绍

什么是Ligral?

Ligral是一个基于文本的仿真语言,旨在替代Simulink进行仿真,通过与框图等效的文本语言描述仿真对象,并解释/编译而后求解。

Ligral项目的地址: https://gitee.com/junruoyu-zheng/ligral

这个项目是?

本项目的开发者曾开发PyMiner项目,目的是建立一个开源的类Matlab程序。但最终我们发现,Matlab的平台本身几无技术难度,内置的算法才是最重要的价值所在。在一系列算法工具箱中,最为不可替代的功能当属Simulink。Simulink被广泛用于控制系统仿真,在工业界、学术界有着几乎不可替代的地位。

因此,我们最终决定瞄准小切口,实现一个类似于Simulink功能、但代码上和其完全无关的开源软件。这个开源软件或许不能直接服务于工业界和实际生产,但可以用在教育教学方面——自然,也可以丰富我国开源软件的生态。

同为PyMiner核心开发者的 junruoyu-zheng 开发了基于C#的Ligral,这样便有了核心算法程序。接下来,如果有一个用户友好的界面,便可以让更多的人来认识Ligral。于是,我便写了一个这样的的前端,希望图形化的界面能够更加用户友好,并且一定程度上促进Ligral的推广。

如果未来Ligral的前端以及Ligral能够获得更为广泛的应用,那么PyMiner项目会重启,服务于Ligral仿真的核心需求。

项目图片预览

流程图编辑器

仿真结果

用户安装

安装Python

首先,需要安装Python。如果你的电脑上还没有Python,可以戳这里下载。

以上的下载链接使用的是华为云的镜像,速度高于官网。

  • 另外,如果你使用的是Linux操作系统,你很可能已经相当熟悉Python。加之Linux操作系统的软件包分发较为复杂,因此安装链接就不在此处放出。

Python语言的安装过程网上已有很多,所以在这里不再赘述。

安装Ligral

Ligral发布在这里:

可以在这个仓库中下载最新版本的Ligral。

安装LigralPy

在你的电脑的终端中,执行如下命令:

python -m pip install LigralPy

如果你看到了Successfully installed ligralpy这样的信息,说明安装成功。如果安装不成功且无法排除问题,请联系本项目开发者。

启动LigralPy

执行如下命令:

python -m LigralPy

会显示这样的信息:

INFO:LigralPy.server.chart_receiver:chart udp receiver started at ('127.0.0.1', 8784)
 * Serving Flask app 'LigralPy.server.server' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
INFO:werkzeug: * Running on http://127.0.0.1:5000 (Press CTRL+C to quit)

以上信息说明LigralPy的主服务已经启动。将信息中的链接http://127.0.0.1:5000复制到浏览器中访问,即可打开仿真页面。

注意,目前不允许本机之外的任何电脑访问以上链接。后面将增加基于口令(token)的验证方式。

页面操作

TODO: 需要完善这些内容!

  • 起始页可新建项目
  • 添加节点:左下角“节点列表”可添加节点
  • 连线:在一个节点的入口处按住鼠标,拖动到另一节点即可
  • 断开连线:连线上按住shift单击
  • 运行、保存和查看图表:右上角三个按钮。

技术属性

开发语言

后端

  • Python语言,基础功能仅使用标准库、Flask服务器框架以及Numpy等科学计算基础设施。
  • 需要安装Ligral的可执行文件,并且添加到系统环境变量

前端

  • Vue3+TypeScript+Element Plus
  • 流程图使用JSPlumb社区版。其中,流程图拖动时添加拐点约束的算法,社区版不集成,为本项目开发者自行实现。

开发者安装

前端安装依赖和启动

yarn install
yarn serve
yarn build

后端安装依赖和启动

cd backend
pip install flask
python run.py

发布

python build_web.py
python setup.py bdist_wheel

项目文档

开源协议

本项目涉及到的开源项目主要有:

  • Python生态系统(GPL)
  • JSPlumb社区版(MIT)
  • ECharts(Apache)
  • Vue(MIT)
  • ElementUI(MIT)

更新日志

  • 0.3.0

    • 增加框选后批量拖动节点的功能
  • 0.2.1

    • 修改徽标
    • 增加新建项目和打开项目时路径校验,优化交互逻辑
  • 0.2.0

    • 支持Ligral中in/out-port-variabletrue的节点变更输入/输出端口的数量。
    • 用户点击自定义的路由的“参数编辑”功能时,会跳转到路由编辑的页面。对于其他类型的节点,网页的行为不变。
    • 增加了中文翻译的内容
    • 增加了界面主题颜色的全局变量,目前仅为演示
  • 0.1.1

    • 从直线改为可自动添加拐点的连线。
    • 增加了UDP转串口的异步数据交换功能。
    • 修改了底层有关节点类型方面的结构。
  • 0.1.0

    • 初始化项目
    • 构建基本的连线系统
    • 增加添加、删除节点以及保存的功能
Python
1
https://gitee.com/hzy15610046011/ligralpy.git
git@gitee.com:hzy15610046011/ligralpy.git
hzy15610046011
ligralpy
LigralPy
master

搜索帮助