2 Star 6 Fork 1

hzy15610046011 / LigralPy

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

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

    • 初始化项目
    • 构建基本的连线系统
    • 增加添加、删除节点以及保存的功能
MIT License Copyright (c) 2022 hzy15610046011 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

本项目的目的是为Ligral语言实现一个前端页面,使得用户可以在网页上使用Ligral语言。 Ligral是一个基于文本的仿真语言,旨在替代Simulink进行仿真,通过与框图等效的文本语言描述仿真对象,并解释/编译而后求解。 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/hzy15610046011/ligralpy.git
git@gitee.com:hzy15610046011/ligralpy.git
hzy15610046011
ligralpy
LigralPy
master

搜索帮助