Visual Framework是一款专门用来进行视觉开发的软件。最好用的视觉开发软件久友下载站小编觉得还是Visual Framework。软件主要用于使用LCD显示屏,旋转编码器和按钮为arduino创建迷你GUI,它为Arduino ATmega微处理器生成基于消息的快速代码;该软件目前处于PRE Alpha的早期阶段,更像是概念证明,它可以让您快速设计GUI项目,然后生成源代码,这对于Arduino或其他兼容的ATmega板项目是一个很好的起点;支持整个GUI的设计以及菜单,屏幕,数据输入屏幕等之间的关系。LCD显示,支持旋转编码器,按钮,小键盘等;支持其他硬件,例如RTC,用户还可以通过他添加代码块,可以根据需要进行编辑,非常灵活;需要的用户可以下载体验。
软件特色:
Visua Framework编码优势,100%非阻塞代码;
显示事物不会停止程序的执行
智能刷新显示;
仅在需要时刷新显示,因此不会因重复显示相同内容而浪费时间
该框架基于消息传递(类似于大型操作系统的概念),可以生成非常轻量级的响应代码
与其他micro micro GUI框架不同。在动态分配数组的结构中,
VF生成的代码是静态的,几乎没有RAM空间(ATmega328仅具有2kb RAM)
此版本将生成以下代码:
带I2C背包的16x02液晶显示器(最常见的类型)
旋转编码器,每个定位器支持1个脉冲,每个定位器支持2个脉冲
尽管该按钮可以将LCD切换为更大的40x02显示屏,但尚未为此编写任何代码。
显示一般的工作方向和概念。
您已经可以设计基本菜单和屏幕流程,然后生成代码以显示一般的工作方向和概念。
您已经可以设计基本的菜单和屏幕流程,然后生成代码
安装步骤:
1.用户可以单击本网站提供的下载路径下载相应的程序安装包
2.只需要使用解压功能打开压缩包,双击主程序进行安装,弹出程序安装界面
3.同意上述协议的条款,然后继续安装该应用程序,单击“同意”按钮
4.您可以单击浏览按钮以根据需要更改应用程序的安装路径。
5.弹出以下界面,用户可以直接用鼠标点击下一步按钮
6.可以根据用户需要创建桌面快捷键。
7.现在准备安装主程序,单击安装按钮开始安装
8.根据提示单击“安装”,弹出程序安装完成界面,单击“完成”按钮
软件功能:
基于光电反应器的设计器界面和逻辑作为基于节点的编辑器。
您在“画布”上拖动一个项目,然后将其输出连接到另一个项目。
由于这是基于响应动作的GUI系统,因此“触发”了连接
例如,按下按钮将产生SEL触发,或者转动旋转编码器将产生NEXT或PREV触发。
您实际上并未连接到显示器,按钮或旋转编码器等硬件项目,
而是将它们放在画布上并设置其属性,以便系统知道哪些硬件触发了这些触发器。
拖动旋转编码器将自动创建一个硬件连接,并显示它使用了PINS 2、3和4。之后,您可以拥有一个硬件连接视图,以帮助您轻松地将项目直观地连接到arduino。
还显示了可以触发硬件的触发原因:显示SEL,PREV和NEXT
现在,如果我们添加一个软件模块-例如,屏幕显示它可以潜在地响应当前支持的所有四个触发器BACK,SEL,PREV和NEXT。
这意味着当此显示打开时,用户可以单击旋转按钮或向一个方向或另一个方向滚动,然后程序可以转到我们连接这些触发引脚的位置。
使用说明:
值得一提的是,整个生成的代码都是100%无阻塞的,因此当屏幕“等待”您的输入时,程序循环将照常执行(以便您的arduino可以进行测量,测试等)。
此外,屏幕实际上将使用智能代码,在该代码上,屏幕仅在需要时才向显示器发送行,这样就不会浪费循环中的循环(以相同方式连续重绘显示器会降低其他响应速度
速度是一个常见错误。)
现在,让我们看一下屏幕(在屏幕右侧)上的对象选项,它显示了一些属于对象属性的内容。第一个是对象ID。
这是对象的重要唯一句柄。因此,例如,在代码中,如果我想随时手动显示此对象,则只需要调用VF_DisplayObject(ID_SCREEN8);
下一个选项是“显示刷新”,它可以是自动的,因此仅当显示发生变化时才刷新显示-这对于典型的静态屏幕很有用。
如果需要,我们可以随时通过调用VF_Invalidate()手动刷新代码。
每隔设定的时间(以毫秒为单位)以设定的间隔定期刷新显示。
如果我们要显示不断变化的数据(温度,时间等),这是一个不错的选择。
设置时间间隔可以避免初学者遇到的常见错误:以最快的速度在循环中显示和测量实时数据(ATMega 328以16MHz运行!),这将减慢其他所有内容的爬行速度。
假设我们想在用户按下旋转编码器时从此屏幕转到菜单。
我们要做的就是添加一个菜单,然后将Screen连接到菜单。
只需单击触发针(在本例中为黄色圆圈SEL),然后按住鼠标按钮并将线拖到菜单即可完成与光反应器相同的操作。
我们可以看到菜单确实响应了SEL和BACK触发器。
没有NEXT或PREV触发器,因为它们是由菜单代码在内部处理的,以便在项目之间移动,因此我们不必担心。
每个项目SEL触发器都可以执行某些操作,例如转到另一个菜单,进入屏幕,调用功能等...
使用Empty Function块或Code块可以轻松调用该函数。 (现在所有人都做同样的事情)。
该能块具有一个特殊的未命名PIN,但它是一个直通引脚,您将在函数返回时结束。
因此,我们可以将SEL引脚从菜单项连接到此功能,然后从此功能连接到另一个屏幕,菜单,或者仅返回某些初始屏幕。
这将在最终代码中为我们提供一个唯一的函数,该函数具有与在对象属性mySetSomething()中设置的名称完全相同的名称,我们可以在其中添加要执行的操作。
也许该提到Visual Framework在触发后使用基于微消息的系统转到显示对象了;
在大型操作系统中使用类似的概念。
因此,按下按钮将不会直接调用“ display_screen()”函数,它将触发一条消息(屏幕的对象ID),然后在可用时在适当的时间显示该屏幕。
这有很多好处;它产生超轻的代码,并且感觉“快速”,因为一切都具有正确的时间和正确的结构。
(您可以在显示函数中而不是在任何地方显示代码)这还使程序员摆脱了不良习惯,例如有意增加代码延迟。
LCD显示屏,最常见的带有I2C的1602或4004(来自eBay的显示屏)。可以将该对象切换到较大的4004(4行显示),但是VF当前在v 0.1中不支持该对象。
您也可以在属性中设置I2C地址。旋转编码器。这将在引脚2和3上自动设置中断,以实现平稳和超灵敏的驱动。开关引脚将始终为4。此属性可用于设置每个脉冲1次点击(例如12P / 12D)或每个脉冲2次点击(例如15P30D)。您还可以指定编码器已经具有一个内部上拉电阻。只需运行铣削按钮。
该代码将为您处理所有的反跳和触发操作。您只需要指定触发按钮“ triggers”的触发模式和触发模式。该代码还将检查是否存在冲突,例如在同一引脚上使用两个具有不同功能的按钮,或者与编码器发生冲突。 )
铣削按钮的简单操作。该代码将为您处理所有的反跳和触发操作。您只需要指定触发按钮“ triggers”的触发模式和触发模式。
该代码还将检查是否存在冲突,例如在同一引脚上使用两个具有不同功能的按钮,或者与编码器发生冲突。 )屏幕可以自动更新,也可以按设定的间隔更新。
它为INO文件中的屏幕显示代码生成一个函数,其中包含一些基本的文本处理示例,您可以用自己的示例替换这些示例。间隔可以直接在生成的代码中设置。
该对象将告诉您哪个显示对象应首先出现(如果不存在,它将是您首先添加的对象)。
将在代码中生成一个函数,该函数将由触发的动作调用。例如,按菜单中的“选择”按钮,先调用您的函数,然后再转到另一个
菜单或屏幕。
这和上面一样。将来,此块将允许用户使用某种可视化设计器直接在设计器中添加代码(我在DVD-lab中有类似的东西,我可以在其中可视化设计VM命令-类似这样)可以在代码中。 VF_Invalidate()使用的命令每次调用时都会刷新当前显示的屏幕。
例如,您可能要测试模拟引脚上的电压,将其放入变量中,然后在屏幕上显示该变量。
仅当发生更改时(例如,将其平均10个周期后),才可以调用VF_Invalidate,而不是按特定的时间间隔显示屏幕。
VF_DisplayObject(int nObjectID)您可以切换到显示对象(当前是屏幕或菜单)。只需使用特定对象的对象ID调用它,您就可以随时从代码中获取代码而无需触发。
(ID在生成的objectIDs.h文件中列出或在设计器中显示。)例如,如果模拟输入上出现特殊的电压阈值,则只需调用一个屏幕即可显示其值,警告等。
对最终用户非常简单和透明bool VF_NeedRefresh()bool VF_RefreshTimer(长nMs)bool VF_TimerExpired(长nMs)VF_CleanLineBuffer(int nL)帮助函数将用于自定义屏幕显示功能。
添加Screen时,在INO文件中生成的代码说明了如何正确使用这些功能。这些功能将避免不必要地重绘显示内容,从而避免草图重要部分的流通。