2 Star 0 Fork 0

pyminer / Ligralpy

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

Ligral Frontend 适配Ligral语言的前端

star

项目介绍

什么是Ligral?

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

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

什么是LigralPy?

LigralPy是专为Ligral语言打造的可视化仿真系统,基于Web技术搭建。由于服务端使用Python语言编写,且提供Python语言调用的接口,故名为LigralPy。

流程图编辑器

LigralPy的优点

相比其他类型的系统仿真软件,LigralPy主要有以下优点:

  • 下载安装方便
    • 依赖包成熟且下载体积小,Windows/ MacOS/ Linux 全平台支持。
    • 针对MacOS/Linux/WSL,提供基于Docker的容器化部署方案,通过国内镜像源一键快速获取LigralPy。
  • 契合开源数据分析生态
    • 所有接口实现均开源,用户可自行编写程序与Ligral协同工作,从而提升开发效率。

LigralPy项目开发背景

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

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

同为PyMiner核心开发者的 junruoyu-zheng 开发了基于C#的Ligral,这样便有了核心算法程序。如果有一个用户友好的界面,便可以让更多的人来认识Ligral。这也是LigralPy项目启动的初衷。

项目图片预览

流程图编辑器

仿真结果

用户安装

以下的教程为一般的安装步骤,适用于所有平台。

在本节最后部分,我们还展示了基于docker的快速安装方式,如果电脑中装有docker,可以通过docker进行安装。

特别的,由于Ligral主程序依赖于.NET运行时,因此在MacOS/Linux上安装较为繁琐。由是,若您使用的电脑为MacOS/Linux,建议优先使用docker安装此仿真系统

安装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:5394 (Press CTRL+C to quit)

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

使用docker安装

Docker主要适用于Mac OSLinux电脑,或是开启WSLWindows电脑。

  • 如果你是Windows电脑用户,也可安装Linux虚拟机进行体验。
docker pull registry.cn-beijing.aliyuncs.com/pyminer/ligralpy:v0.3.0
# 运行docker镜像,并将ligralpy容器中的5394端口,映射到电脑的8080端口。同时,将希望映射的文件夹映射到容器的/root/simulation文件夹。
docker run -it -p 8080:5394 -v {希望映射的文件夹}:/root/simulation registry.cn-beijing.aliyuncs.com/pyminer/ligralpy:v0.3.0 python3 -m LigralPy

随后可以使用浏览器访问**http://localhost:8080**(注意端口号是8080,而不是5394,这是由命令中`-p`参数指定的)

页面操作

如果你想查看帮助文档,可以查看这里:用户文档

技术属性

开发语言

后端

  • 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.

简介

暂无描述 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/py2cn/ligralpy.git
git@gitee.com:py2cn/ligralpy.git
py2cn
ligralpy
Ligralpy
dev

搜索帮助