1.自制组态软件(30)lua编译器之语法分析
2.Doxygen组态
3.组态软件国内品牌
4.自制组态软件(64)lua编译器之关键字or
5.如何把c++源代码打包为exe可执行程序呢
6.组态软件之万维组态介绍(web组态、组态组态html组态、源码源码vue2/vue3组态、软件组态软件、组态组态组态编辑器)
自制组态软件(30)lua编译器之语法分析
前文已经完成了词法分析,源码源码将lua源码切割成一系列的软件阳江翔源码头招聘token,接下来我们将处理这些token。组态组态以下是源码源码我们需要分析的lua文件内容:
该文件首先定义了一个lua函数,并随后调用它。软件为了简化处理,组态组态我们先支持以下lua文件内容,源码源码我们移除了函数定义和调用,软件突出显示if语句。组态组态
首先,源码源码我们定义了block,软件因为所有语句都在block中。例如,下面的block中包含了两条if语句。
block的定义如下:stats是语句数组,表示该block中的所有语句,retExps是返回语句的表达式。
接下来,我们定义if语句。exps是表达式的数组,用于记录if语句的表达式,blocks用于表示if语句的语句块。现在,让我们来看看函数调用表达式。prefixExp为前缀,在此例中为"setValue",args为函数的参数。
语句分析完毕,我们再来看表达式的解析,我们要支持的表达式为:加法和相等判断都是二元运算,因此我们定义了二元运算。achartengine 源码 下载
材料已经准备就绪,我们现在来实现语法分析。从block开始。
上述内容都很好理解,我们通过循环调用parseStat函数处理一条条语句,生成block。接下来看看处理语句的parseStat。
可以看出,我们现在支持两种语句:一是if语句,二是函数调用语句。先看看if语句。
nextTokenOfKind函数用于判断当前token是否为参数中的类型,如果不是,则直接报错。
然后调用parseExp解析if的表达式,表达式将在语句解析完成后处理。
parseBlock函数用于解析if条件满足时运行的语句。
如果if语句有else语句,则同样调用parseBlock函数来解析else条件满足时运行的语句。
解析完if语句,再看看函数调用语句的解析,即parseAssignOrFuncCallStat函数。
首先会创建nameExp表达式,因为函数名是一个标识符,将在parsePrefixExp中被处理。然后调用_finishPrefixExp函数,由于标识符后是"("符号,所以会调用_finishFuncCallExp函数,在这个函数中会调用_parseArgs处理函数调用的参数,最后生成funcCallExp表达式,函数解析完成。
语句分析完毕,我们再来看表达式的解析,即parseExp函数。窗口排列源码
这段逻辑与系列()讲的内容一致,这里不再过多解释,不明白的可以参考()讲。
最后,我们来看看函数参数的解析,即_parseArgs函数。
_parseArgs函数首先跳过函数调用开头的"(",然后调用parseExpList函数,这个函数调用parseExp函数完成函数参数的解析。
好了,本文到此结束。
项目地址:GitHub - zhzhz/iscada
Doxygen组态
在配置Doxygen以生成文档时,需要遵循三个关键步骤。首先,创建项目配置文件,它是一个简单的键值对设定,其中以井号(#)开头的行被视为注释,会被忽略。配置格式有两种:TAG = value [value, ...],用于设定单一键值,值可以包含空格,用双引号括起来。
TAG += value [value, ...],适用于表列型的TAG,多个值以逗号分隔,后续定义会合并前面的值。
了解了基本格式后,选择适合的TAG进行设置,如PROJECT_NAME(项目名,可能需用双引号包含多字)、PROJECT_VERSION(版本号)、OUTPUT_DIRECTORY(输出路径)等。Doxygen提供了方便的工具,如`doxygen Doxygen`,阿里妈妈源码生成初始配置文件,然后用文本编辑器进行修改。 接下来,介绍几个关键的TAG设置示例:PROJECT_NAME: 项目名(用双引号括住多字)
PROJECT_VERSION: 项目版本号
OUTPUT_DIRECTORY: 输出文件的根路径
OUTPUT_LANGUAGE: 输出语言,如Chinese-Traditional
INPUT: 指定处理的源代码文件路径,支持目录和文件,使用逗号分隔
FILE_PATTERNS: 指定处理特定文件类型,如".c, .cpp, .h"
RECURSIVE: 是否递归查找子目录的源代码
EXCLUDE和EXCLUDE_PATTERNS: 排除不希望处理的文件或目录
SOURCE_BROWSER: 是否生成源文件列表
INLINE_SOURCES: 是否在文档中包含源代码
ALPHABETICAL_INDEX: 是否生成字母索引
GENERATE_HTML: 是否生成HTML文档
每个TAG的详细说明和更多选项,建议查阅Doxygen的官方文档。若嫌手动编辑繁琐,可使用Doxygen Wizard工具来简化配置过程。扩展资料
Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java、Objective-C和IDL语言,部分支持PHP、C#。注释的语法与Qt-Doc、KDoc和JavaDoc兼容。Doxgen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。组态软件国内品牌
在中国组态软件市场中,几家领先的品牌各有其特色。世纪星由北京世纪长秋科技有限公司开发,自年开始销售,为用户提供基础的组态服务。三维力控则由北京三维力控科技有限公司创立于年,其核心软件产品有着丰富的历史背景。 组态王KingView,由北京亚控科技发展有限公司开发,swt jface源码自年成立以来,尤其以年推出的组态王1.0版本开始,其6.和6.版本在市场上广受欢迎,年销量超过,套,市场占有率居国产软件之首。紫金桥Realinfo则由紫金桥软件技术有限公司开发,该公司由中石油大庆石化总厂支持,专注于为特定行业提供解决方案。 MCGS由北京昆仑通态自动化软件科技有限公司开发,主要与硬件相结合销售。态神由南京新迪生软件技术有限公司创造,作为国内首款3D组态软件,其核心技术在3D组态和跨平台能力上独树一帜,包括3D立体组态功能和全球首创的跨PC、嵌入式等平台特性。 3D组态软件的重要特点包括逼真的3D视觉效果和源代码级的跨平台支持,使得系统可以在不同平台之间无缝移植。网络分布式特性使得设备工程可以通过Web浏览器远程监控,不同平台间的资源可以互相访问。态神软件的开放性体现在丰富的开发包,如IO驱动、图形开发和内核访问开发包,极大地扩展了其应用领域。 uScada作为一款免费的组态软件,针对中小型企业,具备基础的监控功能,以其小巧、高效和易用性深受好评。此外,Controx(开物)、易控和E-Form++可视化源码组件库也值得关注,它们分别提供了不同层次的组态源码解决方案和全面的实时数据库支持。扩展资料
组态软件,又称组态监控软件系统软件。译自英文SCADA,即 Supervisory Control and Data Acquisition(数据采集与监视控制)。它是指一些数据采集与过程控制的专用软件。它们处在自动控制系统监控层一级的软件平台和开发环境,使用灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。组态软件的应用领域很广,可以应用于电力系统、给水系统、石油、化工等领域的数据采集与监视控制以及过程控制等诸多领域。在电力系统以及电气化铁道上又称远动系统(RTU System,Remote Terminal Unit)。自制组态软件()lua编译器之关键字or
本文将讲解关键字"or"在lua编译器中的应用。"or"是一个二元运算符,其逻辑规则为:当左侧值(a)为真时,返回a;当a为假时,返回b。在lua中,除了null和false为假,其他值如0都被视为真。为了支持or运算,我们需对表达式解析函数parseExp进行调整,确保左侧表达式的优先级高于右侧。
实现词法分析后,我们在parseExp中实现了对or表达式的解析。接下来,处理binOpExp部分,首先计算左侧表达式的值。若左侧值为假,则计算右侧表达式的值,并执行move指令;若左侧值为真,则跳转至move指令的下一条语句。在emitTestSet函数中,我们支持了OP_TESTSET虚拟机指令。如果右侧表达式(b)为真,则将b的值复制至a对应的寄存器;若b为假,则跳过jmp语句。
在lua中,只有null和false视为假值。为了支持lua文件中的true、false、nil关键字,我们需在表达式解析阶段处理这些关键字。现有访问表达式的处理逻辑上,我们将添加对true、false、nil的处理。具体实现如下:
本文结束,通过本篇介绍,希望读者对lua编译器中的关键字"or"及其应用有了一定的了解。项目源代码可访问GitHub仓库:GitHub - zhzhz/iscada
如何把c++源代码打包为exe可执行程序呢
1. 完成C++源代码编写后,在菜单栏找到“构建”选项(如果您的Visual Studio进行了汉化,可能显示为“组态”)。
2. 在构建子菜单中,选择“生成项目”,这会执行预编译过程。如果代码没有错误(没有出现error和warning),预编译会顺利完成。
3. 接着,再次在构建菜单中选择“创建.exe文件”。
4. 观察菜单中是否有带有红色“!”标志的选项,如果有,点击它,这样就可以运行您刚刚创建的可执行文件了。
希望这些步骤能对您有所帮助。如果您这样做的话,对我来说只是举手之劳,感谢您的采纳!
组态软件之万维组态介绍(web组态、html组态、vue2/vue3组态、组态软件、组态编辑器)
一、什么是组态软件
组态软件是一种创建、配置和管理监控及控制系统的软件工具。它通过配置而非编程实现工业应用开发,广泛应用于工业自动化领域,用于实时监控和控制工业过程。这种软件具备丰富的功能,包括用户界面创建、数据采集和通信配置、报警和事件处理、数据分析与报告生成等。它允许用户实时监控和控制设备与过程,对数据进行可视化分析,以优化决策和生产效率。组态软件支持多种通信协议和设备接口,便于与不同设备系统集成。
二、什么是万维组态
随着工业自动化的发展,组态软件的重要性日益凸显。然而,传统组态软件价格昂贵、集成复杂,技术门槛高,因此万维组态应运而生。万维组态是一款基于Web的强大可视化组态编辑器,使用标准HTML5技术和Vue2/Vue3语言,基于B/S架构开发,支持WEB端显示。它支持快速集成,操作简便,可在浏览器端完成人机交互,通过简单拖拽设计可视化页面。万维组态可快速构建和部署SCADA、HMI、仪表板或LoT系统,满足自动化工业工厂个性化控制仪表设计需求。它内置丰富的图元组件,二次开发敏捷,支持MQTT、WebSocket、Http三种链接方式。
三、万维组态组件库
万维组态拥有超过个组件,包括控制组件、系统组件、扩展图标、可视化大屏组件等。用户还可通过在线上传功能自定义组件。控制组件涵盖切换开关、状态、变量文本、流动条等;系统组件包括基本、通用、杂项、高级等;扩展图标涉及电器、管道、罐体等;可视化大屏组件包括边框、装饰直方图、折线图等。
四、万维组态功能点
万维组态提供多种功能,如我的收藏、图纸设置、图元层次、编辑快捷按钮、图元样式、图元文本、图元数据、图纸保存、图纸预览、虚拟变量配置、图纸页面管理、数据链接、自适应屏幕等。
五、万维组态文档
万维组态文档包括本地部署文档、线上部署文档、操作说明文档、接口说明文档、绑点示例文档、培训视频、接入源代码说明、扩展图元示例文档、大屏图元示例文档等。
六、万维组态后端DEMO
万维组态管理后端包含组态管理、模版管理、图元收藏、组态编辑器所需接口。
七、示例