CN106170764B - 用于自动设备程序生成的方法和装置 - Google Patents
用于自动设备程序生成的方法和装置 Download PDFInfo
- Publication number
- CN106170764B CN106170764B CN201580003781.2A CN201580003781A CN106170764B CN 106170764 B CN106170764 B CN 106170764B CN 201580003781 A CN201580003781 A CN 201580003781A CN 106170764 B CN106170764 B CN 106170764B
- Authority
- CN
- China
- Prior art keywords
- pin
- user
- controller
- remote
- physical controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
- Telephonic Communication Services (AREA)
Abstract
用于自动生成设备程序的方法和装置,包括:从显示在用户设备上的图形用户界面(GUI)中的多个控制器之中确定控制器,其中用户设备通信耦接至相应的外部控制器;在GUI中生成用于控制器的用户交互引脚布局;在GUI中显示由控制器执行的多个操作;从用于控制器的多个操作之中确定操作;将选择的引脚关联至操作的参数;从GUI中的至少一个数据入口域接收用于操作的参数数据;基于用户交互引脚布局、接收的参数数据和操作生成用于控制器的程序;以及发送程序以用于存储在控制器上的存储器中。
Description
技术领域
本发明的实施方式大体涉及用于自动设备程序生成的方法和装置。
背景技术
现场可编程门阵列(FPGA)和微控制器的使用已相当普遍。控制器的低制造成本、实用性和专用化增加了微控制器(例如,PIC或ARDUINO等)在商业公司和类似制造各种设备的业余爱好者中的使用。微控制器是在包括处理器核和存储器的单个集成电路上的小型计算机,其中处理器核和存储器是可编程的,以用于处理与外围设备通信的输入/输出数据。微处理器芯片上通常还包括NOR FLASH或OTP ROM形式的程序存储器,通常也包括少量的随机存取存储器(RAM)。微控制器通常被设计成用于嵌入式应用。
然而,微控制器通常受限于必须处于机上存储器的容量内的给定代码组。随着程序复杂性的增长,需要在存储器中存储的代码的规模也在增大。通常,程序员借助于牺牲潜在程序来保存可用的存储空间。另外,程序还受到由微控制器本机的本地库限定的本地功能和受限能力以及处理器的性能的限制。最好的情况下,基本外部通信被限制为与极小范围的应用进行交互(例如,本地存储在微控制器的程序)。此外,对微控制器进行编程对用户来说是富有挑战性的,因为用户需要记住编码命令、理解分级结构、使用适当的调用语法等。否则,所写的程序将不能运行或会产生错误。
因此,在本领域中存在简化微控制器编程并在保持最小内存占用的同时扩展微控制器能力的必要。
发明内容
如结合至少一个附图所示和/或所描述的,本发明的实施方式大体涉及用于自动设备程序生成的方法和装置。
本公开的这些和其它特征和优点可通过结合附图回顾本公开的以下详细描述来理解,在全文中相似的附图标记指示相似的组件。
附图说明
为了能够详细理解本发明的上述特征,可以通过参考实施方式,对以上简要概括的发明进行更具体的描述,其中的一些实施方式在附图中示出。然而应注意,附图仅示出了本发明的典型实施方式,并且因为本发明可承认其他等同效果的实施方式,因而不应被认为限制本发明的范围。
图1是根据本发明的一个或多个实施方式的自动设备程序生成系统的概述图;
图2是根据本发明的一个或多个实施方式的、用于以交互式硬件可视化对设备专用硬件进行编程的示例性图形用户界面(GUI)的视图;
图3是根据本发明的一个或多个实施方式的用于交互式硬件可视化的示例性图形用户界面(GUI)的视图;
图4是根据本发明的一个或多个实施方式的、通过控制器执行的方法的流程图,其中控制器用于执行与远程服务进行交互的自动生成的设备程序;
图5是根据本发明的一个或多个实施方式的、用于与图2中的示例性GUI进行交互的自动设备程序生成的示例性方法的流程图;
图6是根据本发明的一个或多个实施方式的、通过用于远程进程调用的编码服务器和通过经由图2中的示例性GUI编程的外部控制器执行的示例性方法的流程图;
图7是根据本发明的一个或多个实施方式的示例性计算系统内的模块的框图。计算机系统包括与上述实施方式中的结构大体类似的具有服务器或电子设备的结构。
具体实施方式
本发明的实施方式涉及自动设备代码生成器,且更具体地涉及通过图形界面自动生成用于外部控制器的程序。图形界面允许物理控制器的可视化,以用于在生成的程序中快速选择物理属性(例如,经由引脚布局)并将物理属性分配为输入或输出参数以用于操作。视觉提示减少了跟随网表或使电路图与控制器配对以在外部控制器上适当地执行程序用户所花费的时间。
在一些实施方式中,生成的程序通过执行远程进程调用将电子设备中的外部控制器的功能扩展到编码服务器或服务器组。电子设备是具有执行任务的至少一个处理器或微控制器的设备。电子设备的一些实施方式包括程序设计板,诸如:ARDUINO、TEXASINSTRUMENTS LAUNCHPAD、FREESCALE BOARDS KINETIS、ST MICROELECTRONICS STM32、INTEL EDISON等。电子设备的用于控制器的一些实施方式可以为诸如NEST THERMOSTAT、PHILIPPS HUE、BELKIN、WITHINGS等的其他组装设备和系统的程序控制器。
编码服务器执行巨大的处理负荷以执行更复杂的程序,由于硬件和软件限制(例如,低功率处理器、有限的存储器容量、简化的操作系统、缺乏指令集合等)从而限制外部控制器执行更复杂的程序。编码服务器还可执行命令以验证和访问附加的第三方数据库和服务(例如,AMAZON、EBAY、FACEBOOK、APPLE PUSH NOTIFICATION服务器、文本消息服务器、电子邮件服务器等)。
经由自定义的图形用户界面(GUI)自动生成代码以用于外部控制器和操作。代码与远程编码服务器协调,该远程编码服务器还可具有将自动生成的用于控制器的代码镜像的程序,以操控用于外部控制器的输入和输出处理的数据。GUI呈现所选控制器以及预定的操作列表和用于控制器的库,以访问远程编码服务器上的进程并生成对远程编码服务器上的进程的调用。GUI包括控制器的实际引脚表示。在引脚布局中选择引脚被解释为待插入到预生成的代码中的数据,该预生成的代码与用于所选控制器的进程调用相对应。在一些实施方式中,进程调用为存在于远程服务器或编码服务器上的进程。在控制器上存储的自动生成的控制器程序(AGCP)可包括多个进程调用。利用来自AGCP的变量数据将用于变量的相关数据和进程调用通信至存储并执行代码的远程编码服务器。在执行预生成的代码之后,远程编码服务器过滤、处理并返回格式化的数据,该格式化的数据对外部控制器类型来说是本机的。在其他实施方式中,AGCP还包括传统代码和进程调用。其他实施方式包括在远程编码服务器上生成代码以传输至控制器,用于后续的进程调用。
在所描述的以下实施方式中,“进程”应指的是随时可运行的代码基或已在执行计算机(例如,服务器、个人计算机、移动设备等)上配置的预生成的代码。通过名称、进程ID、图标或其他针对用户的标识符,用户唯一地识别每个进程。“执行”应指的是启动(本地或远程的,或基于云的)计算机上的进程。“丛”应指的是通过公共属性(API名称、公共参数、SDK、参数名称、远程服务器等)编组的进程的集合。本文中所讨论的示例不限制范围,而是为了区分具体的实施方式以用于说明的目的。
图1是根据本发明的一个或多个实施方式的自动设备程序生成系统100的概述图。系统100包括用户设备105、集成电路设备(即,电子设备)130、远程编码服务器135和外部服务器140。在一些实施方式中,远程编码服务器135是多个远程编码服务器中的至少一个。类似地,在一些实施方式中,外部服务器140是多个外部服务器中的至少一个。在一些实施方式中,用户设备105与集成电路设备130经由互联网154或其他网络通信耦接。然而,为了便于说明,下文的实施方式旨在将用户设备105直接连接(例如,经由USB、并行/串行数据电缆、网络电缆等)至集成电路设备130。
集成电路设备130包括外部控制器110和存储器115。在一些实施方式中,集成电路设备130还包括耦接至外部控制器110的外围电子器件120。外围电子器件120包括但不限于传感器、发光体、音频扬声器、致动器、显示器、打印机、扫描仪、I/O设备等。外部控制器110可以是微型控制器(例如,PIC、ARDUINO YUN等)。外部控制器110经由互联网154、CLOUD、网络等通信耦接至远程编码服务器135。在一些实施方式中,通过用户设备105进行自动程序生成之后,将外部控制器110耦接至远程编码服务器135,和/或将相应的头文件和库存储在存储器115中以在远程编码服务器135上执行指令。头文件允许在远程编码服务器135上执行远程进程调用。
远程编码服务器135存储库、应用程序接口(API)和软件开发工具包(SDK),以执行在用户设备上选择的所提供的操作,所提供的操作已集成至存储在外部控制器110上的AGCP中。在一些实施方式中,远程编码服务器135存储用户账户、证书和其他数据,以执行存储在外部控制器110上的AGCP中的远程进程调用。远程编码服务器135还使用程序逻辑库、存储的API和证书来与外部服务器140接口,以执行远程进程调用。远程编码服务器135接收嵌入到远程进程调用中的参数数据以配置存储在程序逻辑库中的函数。在一些实施方式中,进程调用对应于可以标记语言(例如,XML、JAVASCRIPT等)预生成的预定的代码。标记语言允许将变量数据和参数分配、解析和插入到包括预生成的代码的、预定提供的操作。然而,替代实施方式包括在接收到参数和变量数据之后基于预定的代码语法生成代码。
跟随远程编码服务器135上的进程和执行,远程编码服务器135可根据远程进程调用和/或存储在远程编码服务器135上的用户账户的预定指令将接收到的数据转化为外部控制器110的本机代码。在一些实施方式中,远程编码服务器135还可包括代码生成器和运行时引擎(未示出),以执行远程进程调用。在这样的实施方式中,从集成电路设备130接收的远程进程调用触发远程进程,该远程进程还通过运行时引擎生成用于配置的代码。程序可包括代码,以通过代码工具访问外部服务器140,其中代码工具可以是外部或内部的并且包括外部API。代码工具是解决诸如日期转化、文件转化、加密、调试等技术问题的例行程序。
外部服务器140包括计算机,其中计算机掌管经由可执行指令访问的第三方数据库和服务。外部服务器140包括私人的和公共的服务器,诸如AMAZON、EBAY、TWITTER、电子邮件服务器、文本消息服务器、银行账户等。外部服务器140直接连接至远程编码服务器135(如箭头160所示)。在其他实施方式中,外部服务器140经由互联网154或其他网络通信耦接至远程编码服务器135。
用户设备105可以是计算机、膝上计算机、平板电脑或具有用户界面和集成开发环境(IDE)的其他电子处理设备。用户设备105包括CPU 108、支持电路112和包含指令和算法的存储器114。CPU 108处理针对用户设备105的输入和输出。CPU 108可以是任何市场上可买到的处理器、微处理器、微型控制器等。支持电路112包括向CPU108提供功能的公知电路,诸如用户界面、时钟电路、网络通信、高速缓冲存储器、电源供给、I/O电路等。替代实施方式可在定制的专用集成电路(ASIC)上使用控制算法。在一些实施方式中,用户界面包括键区、电子按钮、扬声器、触摸屏、显示器或者其他用户交互机构。在一些实施方式中,用户界面可与集成电路设备130通信。
存储器114可以是用于存储数据和可执行软件的任意形式的数字存储器。这样的存储器包括(但不限于)随机存取存储器、只读存储器、磁盘存储器、光学存储器等。存储器114存储对应于操作系统116、IDE 118和可视化控制器模块122的计算机可读指令。为了便于说明,将可视化控制器模块122描述成单个模块,然而其他实施方式包括与分离模块隔离的特定进程,以提高存储或处理效率。
可视化控制器模块122与远程编码服务器(多个远程编码服务器)135通信(箭头150),以检索预生成的丛和可以由远程编码服务器135执行的操作。远程编码服务器135在程序逻辑库中存储API、SDK,以及在一些实施方式中存储与远程进程调用对应的预生成的代码。可视化控制器模块122经由互联网154和/或其他网络与远程编码服务器135通信。可视化控制器模块122生成可选操作的库,以供用户选择以并入到用于外部控制器110的AGCP中。可通过互联网154从远程编码服务器135下载库(如箭头150所示)。
在一些实施方式中,可视化控制器模块122和IDE 118还将用于AGCP的进程或程序存储在远程编码服务器135上。存储与AGCP对应的程序允许远程编码服务器135监听来自外部服务器140的数据并执行额外的处理和向外部控制器110发送数据。例如,每当用户接收到TWEET时,即可生成AGCP,以点亮耦接至外部控制器110的引脚的LED。TWEET不是由外部控制器110直接接收的。而是,接收至用户账户的TWEET可触发对远程编码服务器135的通知,该远程编码服务器135具有用户账户验证证书以访问TWITTER。跟随来自可视化控制器模块122的程序的远程编码服务器将TWEET通知转化成“引脚7高”的命令并将该命令通信至外部控制器110。跟随AGCP的外部控制器110等待引脚7高的命令,随后设置引脚6低,以关断所连接的LED。因而在以上示例中,远程编码服务器135上的程序必须准备好以在外部控制器110上适当实现AGCP。
可视化控制器模块122还生成外部控制器110的可视化表示,该可视化表示代表外部控制器110的拓扑。如下文将进一步讨论的,可视化表示可以是引脚布局。在引脚布局中进行选择以将所选引脚与程序中的变量相关联。例如,用户可对耦接至引脚的诸如传感器(例如,温度计、光电二极管、麦克风、伏特计等)和致动器(电动机、继电器等)的一些外围电子器件的引脚布局进行指定。
可视化控制器模块122接收附加参数,该附加参数用于与所选操作的功能对应的预定域中的程序。然后可视化控制器模块122与IDE118通信,以利用所选操作、引脚数据和控制器的本机语言形式的参数自动生成打包程序,并将程序通信至外部控制器110(如箭头145所示)以存储在存储器115中。在一些实施方式中,IDE可发送相应的头文件和简化的指令,以访问用于执行远程进程调用的远程编码服务器135。
在操作中,当耦接的温度传感器到达某一温度值时,用户可选择操作以发送文本消息(例如,域中指定的)。用户选择与外部控制器110物理耦接并耦接至温度传感器的引脚。用户还可选择与所连接的通信电路有关的引脚以访问互联网154。一旦完成,IDE 118将利用相关联的引脚和域数据自动编译程序,以使用远程进程调用将文本消息发送至存储在远程编码服务器135上的文本消息进程。然后,远程编码服务器135通过互联网154接收指令,并访问预定的API以通过外部服务器140(如箭头160所示)发送文本消息。外部控制器110可与用户设备断开连接,以独立执行自动生成的控制器程序(AGCP)。
在外部控制器110将接收来自互联网154的数据的实施方式中,远程编码服务器135存储相应的程序以与AGCP相协调。在每当接收到FACEBOOK邮件外部控制器110便使LED闪烁的示例中,远程编码服务器135具有预生成的进程或存储的程序,以基于用户证书登录到FACEBOOK。随后程序监听FACEBOOK通知,并以控制器的本机语言将通知转化成相应的外部控制器110命令(例如,引脚8高)。程序通过互联网154将引脚8高的命令传输至外部控制器110。然后,外部控制器110利用存储在存储器115中的AGCP处理引脚8高的命令。
图2是根据本发明的一个或多个实施方式的示例性图形用户界面(GUI)200的视图,其中该示例性图形用户界面(GUI)200用于以交互式硬件可视化对设备专用硬件进行编程。GUI 200用于图1中的上述系统100中的操作。
GUI 200示出为上述图1中的IDE 118的一部分。GUI 200包括服务模块205、引脚布局210、操作参数模块215和225、控制器布局模块230、应用选择模块235、编码窗口240和部署按钮245。服务模块205包括这样的指令,该指令用于组织和呈现可由用户经由GUI 200选择的操作,以使得可仅利用由用户输入的参数对具体操作进行编程。服务模块205生成由IDE 118、远程编码服务器135和外部服务器140提供的用户可选择的操作丛。在一些实施方式中,服务模块205从远程编码服务器135下载并更新的操作列表。
控制器布局模块230存储并识别可由IDE 118编程的各种控制器类型。控制器布局模块230确定编译语言和数据通信指令以在各种控制器上接合并存储程序。控制器布局模块128还包括指令和细节,以用于在编程期间由用户将生成引脚布局210与IDE 118和UI接合。如将在下文进一步描述的,由用户选择引脚,以与所选择的操作220关联。其他实施方式包括所需数目的引脚的计数特征,以如引脚布局210中所示来配置所选的操作。通过控制器布局模块230(示出为ARDUINO YUN(阿尔杜伊诺云))识别用户选择的或自动确定的外部控制器110。
应用选择模块235用于命名和存储将被自动生成的至少一个程序,以用于与外部控制器110对应的控制器布局模块。在所述的实施方式中,当由耦接至外部控制器110的温度传感器感知到特定温度时,应用发送文本消息。在编码窗口240中显示与待生成的程序对应的代码。还可由用户编辑编码窗口240,以在存储于外部控制器110和存储器115上之前,使代码特定专用化。部署按钮245的选择以外部控制器110的本机语言转换和通信程序。在一些实施方式中,转换可以是编译功能。可选实施方式包括下载按钮250,以用于将自动生成的代码输出为不同的文件格式(例如,.js、.txt、.xml等)。本领域中的一个普通技术人员将了解本文中所描述的按钮包括任意的用户可选图标、文本或可视化界面。
例如,选择的操作220为发送短讯服务(SMS)文本消息。文本消息的目标数量被输入到参数模块225的相应域中。另外,所选引脚与模拟温度传感器对应,在参数模块225中的预定域中还指定了该模拟温度传感器,以用于从服务模块205选择的操作(例如,温度感知)。在操作参数模块215中请求温度感知所需的附加参数。GUI 200仅显示用于所选操作所需的参数数据。
在操作中,通过调用远程编码服务器135上的远程进程来发送SMS文本消息。外部控制器110经由存储的指令(例如,头文件)与远程编码服务器135通信。进程配置预定的代码,以通过为用户指定的电话号码定位网关和查找表来发送SMS文本消息,并访问SMS服务器。
在示例性系统中,系统可使用TEMBOO服务作为代码生成服务。TEMBOO客户端(GUI200)被用作ARDUINO控制器中的连接客户端,其中ARDUINO控制器正在运行快闪到ARDUINO控制器上的SKETCH程序。本系统使用示例性HTTPS通信协议以到达具有预生成的代码和操作(例如,2000多个“智能编码进程”)的TEMBOO代码生成服务器。预生成的代码利用数据库、编码工具、API和常规进程来实现快闪到ARDUINO控制器的包括对TEMBOO服务器上的智能进程的调用的SKETCH。ARDUINO表示各种可能的微处理器和控制器的示例,这些可能的微处理器和控制器可利用且可变得适于与本文中所讨论的实施方式一起使用。
图3是根据本发明的一个或多个实施方式的用于交互式硬件可视化的示例性图形用户界面(GUI)的视图。该视图是与以上图2中描述的引脚布局210类似的示例性引脚布局305。引脚布局305包括突出显示的或着重指出的引脚3和引脚4,引脚3和引脚4已选择为与上述AGCP的操作相关联。着重指出的引脚可以为各种颜色、标记、闪烁、形状和与未选择的引脚区分开或与操作对应的其他可视化形式。在一些实施方式中,着重强调的引脚采用着重强调的组合以指示编程中的进程。换句话说,当缺少用于外围连接的变量参数时引脚可以是闪烁的红色,且如果已输入变量参数则为绿色。例如,所选的用于耦接至电动机的引脚可闪烁红色,直到所有的参数均输入到相应的操作参数模块215为止,诸如在测量电动机载荷的操作中检测到电流消耗。
可以在自动生成的程序中为所选择的引脚310指定角色,诸如输入引脚315、输出引脚、时钟信号等。在一些实施方式中,引脚可以被标以自定义的功能以使用户更快地识别引脚布局(例如,灯、温度计、电动机等)。所选择的引脚310还设置成接收或输出诸如模拟信号或数字信号的信号类型320。所选择的引脚、信号类型和操作数据在GUI 200中被整合到上述AGCP中。
因此,总的来说,GUI 200允许通过引脚布局332使外部控制器110可视化并且简化在外部控制器110上对用户期望的所选操作220的编程。在所显示的引脚布局305上进行选择允许物理引脚功能以及如果引脚被指定为输出引脚、输入引脚、时钟等的可视化协调。视觉提示减少了跟随网表或使电路图与控制器配对以在外部控制器110上适当地执行程序所花费的时间。
图4是根据本发明的一个或多个实施方式的通过外部控制器110执行的方法400的流程图,其中外部控制器110用于执行与远程服务交互的自动生成的设备程序。方法400通过远程编码服务器135、外部控制器110和GUI 200实现。在一些实施方式中,GUI 200位于用户设备105上(诸如主计算机)。
方法400从步骤405处开始并继续到步骤410。在步骤410,基于所选控制器布局、所选操作、参数经由GUI 200和IDE 118自动生成程序。通过GUI 200,用户能够在所选控制器的可视化引脚布局219上选择引脚,并且选择连接至引脚的外围设备类型且在IDE 118中键入变量数据以生成用于外部控制器110的代码。所生成的程序包括对远程编码服务器135上的操作以及与本地控制器功能有关的本机代码的进程调用。例如,生成的程序可用于每当外部控制器110检测到温度超过如图2所示的31摄氏度时发送文本消息。因而程序包括发送文本消息的进程调用,其中基于读取耦接至温度传感器的外部控制器110的特定引脚上的电压的本地命令,由远程编码服务器135(例如,经由运行时引擎)执行该进程调用。
AGCP可以被无线(例如,Wi-Fi、蜂窝等)或有线(例如,USB、CAT5等)传输至外部控制器110。在一些实施方式中,存储器115是“FLASHED”,或以其他方式通过包括头文件的程序完全重写,以访问远程编码服务器135。在一些实施方式中,将程序存储在外部控制器110上包括将代码转化或编译成不同的计算机语言(例如,机器语言)。
在步骤415,用于外部控制器110的程序被存储在存储器115上。在步骤420,在外部控制器110上开始执行AGCP。在一些实施方式中,外部控制器110从相关联的所附接的外围电子器件120采样并生成数据。继续该示例,外部控制器110开始读取通过温度传感器生成的用于周围温度状况的模拟电压水平。
方法400继续到步骤425,以利用诸如TEMBOO服务的代码生成服务将远程进程调用和相关联的变量数据发送至远程编码服务器135。继续该示例,一旦读取到温度超过温度阈值,则外部控制器110执行远程进程调用,以通过向在远程编码服务器135上存储为预生成代码的文本消息操作通信调用而发送文本消息。
在步骤430,远程编码服务器135通过将变量数据插入到存储在远程编码服务器135上的预生成代码中来执行预生成的代码。继续该示例,远程编码服务器135检索用于发送SMS文本消息的预生成代码,并利用GUI 200在自动程序生成期间插入文本串消息和指定的接受者电话号码。然后,远程编码服务器135利用相关联的互联网和蜂窝协议将代码配置到网络,以使得与电话号码相关联的接收者设备接收该文本消息。
在步骤435,外部控制器110以外部控制器110的本机语言从远程编码服务器135服务接收数据,诸如相关联的变量数据。远程编码服务器135可将数据从用于执行进程调用的编程语言转化成本机语言。外部控制器110接收已由代码生成服务格式化成本地格式(例如,二进制数据、高或低信号、字符串等)的相关联的变量数据,以用于在编程期间由用户所选的外部控制器110进行有效处理。继续该示例,用户程序141还可包括当成功发送文本消息时点亮耦接至引脚5的LED的指令。在这样的情况下,变量数据包括用于将引脚5设置成高的代码。在替代实施方式中,变量数据可以是由外部控制器110译码成数值以执行AGCP的数据。在这样的示例中,可以将“51”发送至监听与数字51对应的数据的外部控制器110,随后使用本地存储的逻辑,以将第一个数字解析或译码成引脚数并将第二个数字解析或译码成高(“1”)或者低(“0”)。
在步骤440,外部控制器110利用从远程编码服务器135接收的数据继续执行AGCP。完成该示例时,外部控制器110选择性地重定向耦接至外部控制器110的本地电源,以在引脚5上设置电压偏置,使得点亮耦接至引脚5和地的LED。方法400在步骤445处结束。
图5是根据本发明的一个或多个实施方式用于与图2中的示例性GUI 200进行交互的自动设备程序生成的示例性方法500的流程图。通过用户设备105实现GUI 200以对外部控制器110进行编程。
方法从步骤505开始并继续至步骤510。在步骤510,将控制器类型确定为从显示成列表、可选图标组等的多个预定的控制器中选择的一种。通过选择控制器,可视化控制器模块122检索并增添所选控制器所特有的细节,诸如已知的库、引脚配置、引脚操作、最大耐受电压/电流、时钟频率等。在一些实施方式中,选择是基于自动检测连接至用户设备105的外部控制器110的类型而确定的。
接下来在步骤515,所选控制器的可视化布局显示在GUI 200中。可视化布局包括引脚布局210,该引脚布局210对于为外部控制器110编程来说是可选的和交互性的。在一些实施方式中,突出显示引脚以用于已分配的、已在程序中的其他所选操作中被使用的功能。在其他实施方式中,可提取并增添来自伴随的微型控制器数据表中的附加显示数据,以辅助用户编程和生成外部控制器110的可视化。
接下来,在步骤520,确定在GUI 200中接收到预定的操作的选择。预定的操作包括从由服务模块205表示的服务丛之中进行选择,以用于外部服务器140上的电子服务以及用于外部控制器110的预定的本地功能或者电子服务与本地功能的组合。例如,TWEETING可以被选择成外部服务,并且监听来自附接的按钮的输入(例如,跨越两个引脚的短路电流)可以为本地功能。因此,组合的示例将是每当按压按钮则TWEETING特定的消息。
接下来在步骤525,利用预先确定的域或将由用户输入的下拉菜单接收参数数据以用于操作。附加的实施方式包括选择IDE 118中的单选按钮、复选框、文件附件和其他输入界面。在其他实施方式中,从外部数据库检索参数数据。仅通过接受操作数据作为用于生成程序的变量数据,因为仅需要知道期望的操作和操作参数,从用户的角度来说可视化地简化了编程过程。更多先进软件的开发者或用户可编辑所生成的代码,其中生成的代码与在相关联的编码窗口240中进行的输入和选择相对应。随后方法500延续至步骤530。
在步骤530,除了用于所选操作的一般基本操作(例如,电力、时钟、通信、存储器等)之外,确定是否具有至外部控制器110的各个引脚的本地外部连接。如果确定将不具有附加的连接,则方法500继续至步骤550,以确定是否向AGCP中插入另一操作。
然而,如果将对所选操作进行附加的连接,则方法500继续至步骤535。在步骤535,在引脚布局210上选择引脚,以用于所选操作的相应引脚。接下来在步骤540,通过与代表用于所选操作中的外部控制器110的引脚的语言相关联而将引脚选择分配至操作。例如,如果在控制器中选择引脚5用于输入,则用于所选控制器的命令可以为“PIN IN 5”并被插入到用于所选操作的编码窗口345中。在附加的实施方式中,诸如当超过一个操作可能要求使用外部控制器110上的引脚时,步骤540还在所生成的程序中为其他所选操作分配引脚选择。
随后方法500继续至步骤545,以将引脚选择和分配与来自各域的所需数据参数整合,以完成操作调用。继续该示例,通过插入所选引脚生成用于进程操作的“if then”语句。在编码窗口240中,示例代码可以显示为:“IF PIN IN 5==1THEN Temboo.Tweet(LittleRed Button Pushed!)”。替代实施方式可取决于所选操作是否使用更多引脚,从而可包括更多引脚选择。方法继续至步骤550。
在步骤550,方法500确定是否将向AGCP增加附加的操作。如果将增加附加的操作,则方法500回到步骤520。然而如果不增加附加的操作,则在步骤555打包或整合操作(多个操作)和操作数据。
在步骤555,将所有操作打包以存储或快闪在外部控制器110上。打包包括将文件编译或转化成所选控制器接受的本机格式。附加实施方式包括头文件,头文件包含用于访问远程编码服务器135的指令。在一些实施方式中,当打包待编译的程序时,也打包执行程序和所选操作所必须的代码库。例如,如果操作要求互联网连接,则包括HTTP或HTPPS库,或者如果操作需要多线程,则包括不同的库,以在转化程序以用于所选控制器之前编译并链接在一起。
在步骤560,生成的程序被存储或快闪至外部控制器110。在步骤565,控制器在外部控制器110上执行AGCP。在一些实施方式中,AGCP的执行包括对与上文讨论的所选操作对应的进程进行远程进程调用。经由互联网154或其他网络将进程从外部控制器110配置到远程编码服务器135上。对其他实施方式来说,在通过远程编码服务器135进行处理之后,将本机语言形式的响应数据返回至外部控制器110。方法500在步骤570处结束。
图6是根据本发明的一个或多个实施方式的通过用于远程进程调用的编码服务器以及通过经由图2中的示例性GUI编程的外部控制器执行的示例性方法600的流程图。
当远程编码服务器135从外部服务器140上的外部服务接收数据时发生方法600。远程编码服务器135基于存储在远程编码服务器135上的程序处理接收的数据并相应地向外部控制器110返回转化的数据。在一些实施方式中,存储的程序与外部控制器110上的AGCP协调。
方法600层步骤605开始并继续至步骤610,在步骤610,外部服务器140从互联网接收服务数据或生成与远程编码服务器135上的进程对应的数据。可通过远程编码服务器135预先验证外部服务。例如每当电子邮件服务器接收新的电子邮件消息时,AGCP可令耦接至外部控制器110的LED闪烁,并且必须验证远程编码服务器135以检查/接收电子邮件收件箱通知。当对FACEBOOK状态进行评论时替代的示例将会令LED闪烁,其中该FACEBOOK状态还需要存储FACEBOOK验证证书。在步骤615,外部服务器140数据向远程编码服务器135发送通知(例如,TEMBOO服务)。
在步骤620,远程编码服务器135从外部服务器140接收服务数据。在步骤625,远程编码服务器135将服务数据匹配至程序逻辑库中的进程和存储在远程编码服务器135上的用户程序。程序逻辑库可包括预生成的代码。根据相关联的服务(例如,电子邮件、FACEBOOK、文本消息等)或逻辑操作(例如,计数、if/then条件语句等)组织预生成的代码。继续该示例,根据基于GUI 200和外部控制器110存储的程序,进程为与用户账户匹配的电子邮件通知或存储在远程编码服务器135上的接收者电子邮件地址。在以上示例中,用户可具有存储在监听来自外部服务的服务数据的远程编码服务器135上的用户账户或程序。
在步骤630,根据程序逻辑库从服务提取/解析用于变量的参数数据。用于变量的数据或参数数据被过滤,以用于准备插入到用于附加处理的预生成的代码中。过滤和插入基于编码语法(例如,IF-THEN、变量类型、等式等)中的预定的关系以及程序中指定的操作。继续以上示例,电子邮件通知服务数据可包括诸如接收时间、消息主题、消息主体的附加信息,附加信息是未由程序逻辑库中预先确定的进程要求的。
在步骤635,根据所存储的与程序关联的功能和预生成进程,通过执行附加的操作基于解析的服务数据执行附加的处理,以通过运行时引擎生成程序数据。程序与在远程编码服务器135上的方法400和方法500中讨论的AGCP相关联。例如,程序逻辑库可具有参数,以同时检查用于消息的其他电子邮件账户。
在步骤640,远程编码服务器135确定存储在远程编码服务器135上的程序是否将调用来自一个或多个外部服务器140(例如,TWITTER、EBAY、紧急文本通知等)的附加服务数据。如果确定程序需要附加的服务数据,则方法600返回到步骤610。然而,如果确定无需附加的服务数据,则方法转到步骤645。
在步骤645,来自步骤635中的程序逻辑的程序数据被转化成本机语言或信号,以用于程序的目标控制器。可以在程序中或根据用户账户优先权指定目标控制器。在步骤650,将转化的程序数据发送至外部控制器110。利用远程编码服务器135的通信电路传输数据。转化的程序数据可以大体上不与将由外部控制器110期望的和/或内部生成数据区分开来,以进一步提供有效处理。
在步骤655,外部控制器110接收转化的程序数据。可通过网络、互联网或直接连接接收转化的程序数据。接下来,在步骤660,在外部控制器110上容易地处理转化的程序数据。在步骤665,外部控制器110执行存储器115中存储的指令。在一些实施方式中,利用转化的数据使存储的指令与AGCP对应。随后方法600在步骤670处结束。
图7是根据本发明的一个或多个实施方式的示例性计算系统700内的模块的框图。计算机系统包括与上述实施方式中的结构大体类似的包括服务器或电子设备的结构。
方法和装置的各种实施方式用于自动电子设备程序生成。一个这样的计算机系统为图1所示的系统100,该系统100可在各个实施方式中实现图1至图6所示的任一元件或功能。在各个实施方式中,计算机系统700可配置为实现上述方法。计算机系统700可用来实现上述实施方式的任意其他系统、设备、元件、功能或方法。在所示实施方式中,计算机系统700可配置为在各个实施方式中将方法400、方法500和方法600实现为处理器可执行的可执行程序指令722(例如,处理器(多个处理器)710可执行的程序指令)。
在所示的实施方式中,计算机系统700包括通过输入/输出(I/O)接口730耦接至系统存储器720的一个或多个处理器710a-710n。计算机系统700还包括耦接至I/O接口730的网络接口740以及诸如光标控制设备760、键盘770和显示器780的一个或多个输入/输出设备750。在一些实施方式中,键盘770可以是触摸屏输入设备。
在各个实施方式中,任一组件可由系统使用,以可视化上述固件。在各个实施方式中,可在显示器780上生成和显示用户界面。在一些情况下,设想可利用计算机系统700的单个实例实现各实施方式,而在其他实施方式中,可配置多个这样的系统或构成计算机系统700的多个节点,以主管各实施方式的不同部分或实例。例如,在一个实施方式中,可通过计算机系统700的一个或多个节点实现一些元件,其中这些节点与实现其他元件的那些节点不同。在另一示例中,多个节点可以以分布式方式实现计算机系统700。
在不同的实施方式中,计算机系统700可以是包括但不限于个人计算机系统、主框架计算机系统、手持式计算机、工作站、网络计算机、应用服务器、存储设备、外围设备(诸如变换器、调制解调器、路由器)或者通常任意类型的计算或电子设备的多种类型的设备中的一种。
在各种实施方式中,计算机系统700可以是包括一个处理器710的单处理器系统,或者包括多个处理器710(例如,两个、四个、八个或其他适当的数量)的多处理器系统。包括一个处理器710的单处理器系统可划分单处理器的功能以表现为用于处理和执行程序的同步数据的多个处理器。处理器710可以是能够执行指令的任何适当的处理器。例如,在各种实施方式中,处理器710可以是实现各种指令集体系结构(ISA)中的任一结构的通用处理器或嵌入式处理器。在多处理器系统中,处理器710中的每个通常(但非必须地)可实现相同的ISA。
系统存储器720可配置成存储处理器710可访问的程序指令722、固件733和/或数据732。在各种实施方式中,可利用任意适当的存储器技术实现系统存储器720,存储器技术例如,静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)、非易失性/闪存型存储器或任意其他类型的存储器。在所示的实施方式中,可以将实现上述实施方式的任一元件的程序指令和数据存储在系统存储器720内。在其它实施方式中,程序指令和/或数据可被接收、发送或存储在不同类型的计算机可访问媒介上或与系统存储器720或计算机系统700分离的类似媒介上。
在一个实施方式中,I/O接口730可配置成协调处理器710、系统存储器720与设备中的任意外围设备之间的I/O通信量,包括网络接口740或诸如输入/输出设备750的其他外围接口。在一些实施方式中,I/O接口730可执行任意必要的协议、时序或其他数据交换以将来自一个组件(例如,系统存储器720)的数据信号转换成适合于另一组件(例如,处理器710)使用的格式。在一些实施方式中,I/O接口730可包括对通过各种类型的外围总线附接的设备的支持,例如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变型。在一些实施方式中,可以将I/O接口730的功能划分成两个或更多单独的组件,例如,北桥和南桥。此外,在一些实施方式中,可以将I/O接口730(例如,连接至系统存储器720的接口)的一些或所有功能直接合并到处理器710中。
网络接口740可被配置成允许在计算机系统700与附接至网络(例如,网络790)的其他设备(例如,一个或多个外部系统)之间或计算机系统700的节点之间交换数据。在各种实施方式中,网络790可包括一个或多个网络,包括但不限于局域网(LAN)(例如,以太网或企业网)、广域网(WAN)(例如,因特网)、无线数据网络、蜂窝式网络、Wi-Fi、一些其他的电子数据网络或它们的一些组合。在各种实施方式中,网络接口740可通过以下网络支持通信:有线或无线通用数据网络(例如,任意适当类型的以太网);通过诸如模拟语音网络或数字光纤通信网络的无线电通信/电话网络;通过诸如光纤信道SAN的存储区域网络;或通过任意其他适当类型的网络和/或协议。
在一些实施方式中,输入/输出设备750可包括一个或多个显示终端、键盘、键区、触摸板、触摸屏、扫描设备、声音或光识别设备、或者适于通过一个或多个计算机系统700输入或访问数据的任意其他设备。多输入/输出设备750可存在于计算机系统700中或可分布在计算机系统700的各个节点上。在一些实施方式中,类似的输入/输出设备可与计算机系统700分离并可通过有线或无线连接(例如,利用网络接口740)与计算机系统700的一个或多个节点交互。
在一些实施方式中,所示的计算机系统可实现上述方法中的任意方法,如图3至图5的流程图所示的方法。在其他实施方式中,可包括不同元件和数据。
本领域技术人员将理解,计算机系统700仅是说明性的并且并非旨在限制实施方式的范围。具体地,计算机系统和设备可包括可执行各种实施方式所指示的功能的硬件或软件的任意组合,包括计算机、网络设备、因特网应用、智能电话、平板电脑、PDA、无线电话、传呼机等。计算机系统700还可连接至未示出的其他设备,或可替代地作为独立系统操作。另外,在一些实施方式中,所示组件提供的功能可与一些组件结合或分配到其他组件中。同样地,在一些实施方式中,可以不提供所示组件中的一些的功能和/或其它附加的功能可能是可用的。
本领域技术人员还应理解,尽管各个项被说明为在被使用时存储在存储器中或存储设备上,但是这些项或这些项的各部分可在存储器和其他存储设备之间转移以用于存储器管理和数据完整性的目的。可替代地,在其他实施方式中,软件组件中的一些或全部可在另一设备的存储器中执行并通过计算机间通信与所示的计算机系统通信。系统组件或数据结构中的一些或全部还可(例如,作为指令或结构数据)存储在计算机可存取介质上或便携式物体中以由适当的驱动器读取,它们的各个实施例已在上文中描述。在一些实施方式中,存储在与计算机系统700分离的计算机可存取介质上的指令可经由传输介质或经由通过诸如网络和/或无线链接的通信介质传送的信号(例如,电信号、电磁信号或数字信号)被传输至计算机系统700。各种实施方式还可包括基于计算机可存取介质或经由通信介质接收、发送或存储根据上文描述实现的指令和/或数据。通常,计算机可存取介质可包括诸如磁性或光学介质的存储介质或存储器介质(例如磁盘或DVD/CD-ROM)、诸如RAM(例如,SDRAM、DDR、RDRAM、SRAM等)的易失或非易失介质、ROM等。
在不同的实施方式中,本文中描述的方法可以软件、硬件或软件和硬件的组合实现。另外,可以改变方法的顺序,且可以增加、重新排序、组合、省略或以其他方式修改各种元件。本文中描述的所有实施例均以非限制性的方式给出。对本领域中的技术人员显而易见的是可以对本公开进行各种修改和变化。在具体实施方式的上下文中已描述了根据各实施方式的实现。这些实施方式旨在为说明性的而非限制性的。多种变型、修改、增加和改进是可行的。相应地,可为本文作为单个示例描述的组件提供多个示例。各种组件、操作和数据存储之间的边界是一定程度上是任意的,具体的操作是在特定说明性配置的背景下被说明的。可预想到功能的其他分配,并且其落入下面权利要求的范围内。最终,示例性配置中的作为独立组件给出的结构和功能可实现为组合的结构或组件。这些和其他变型、修改、添加和改进可落入如所附权利要求所限定的实施方式的范围内。
尽管前面是针对本发明的实施方式,但是在不背离本发明的基本范围的情况下,可想到本发明的其他或进一步的实施方式,并且本发明的范围由所附权利要求限定。
Claims (14)
1.一种用于自动设备程序生成的方法,包括:
从显示于用户设备上的图形用户界面(GUI)中的多个物理控制器中的每个的用户交互可视化表示之中选择控制器,其中所选择的物理控制器在所述用户设备外部,并且通信耦接至所述用户设备;
在所述图形用户界面中生成用于外部物理控制器的用户交互引脚布局,所述用户交互引脚布局包括至少一个引脚;
在所述图形用户界面中显示由所述外部物理控制器执行的多个操作;
从所述多个操作之中选择用于所述控制器的操作以由所述外部物理控制器执行,其中,所述操作包括从所述外部物理控制器发起的对远程设备的至少一个远程调用,以及其中,所述远程设备远离所述用户设备和所述外部物理控制器;
在所述图形用户界面中从所述用户交互引脚布局中选择引脚;
在所述图形用户界面中从所述图形用户界面中的至少一个数据入口域或外部数据库接收用于所述操作的参数数据;
将来自所述用户交互引脚布局的引脚关联至所接收的用于所述操作的参数数据;
基于所述用户交互引脚布局、所述接收的用于所述操作的参数数据和所述操作自动生成用于所述外部物理控制器的设备程序,其中所述设备程序包括所述至少一个远程调用;以及
从所述用户设备发送所述程序,以用于存储在所述外部物理控制器上的存储器中以及用于在所述外部物理控制器上执行。
2.如权利要求1所述的方法,其中,将来自所述用户交互引脚布局的所述引脚关联至所述接收的用于所述操作的参数数据还包括将至少一个变量分配至来自所述用户交互引脚布局的所述引脚。
3.如权利要求1所述的方法,其中,在所述用户交互引脚布局中的未选择的引脚之中突出所述用户交互引脚布局中的用于所述外部物理控制器的所述至少一个引脚。
4.如权利要求1所述的方法,其中,所述操作是从用于由所述外部物理控制器执行的多个任务之中选择的预定任务。
5.如权利要求1所述的方法,其中,将来自所述用户交互引脚布局的所述引脚关联至所述接收的用于所述操作的参数数据还包括:
确定所述引脚先前已与不同的操作相关联;以及
生成所述关联的通知。
6.如权利要求1所述的方法,其中,所述图形用户界面还包括显示用于选择和与所述外部物理控制器上的所述至少一个引脚关联的至少一个外围设备。
7.如权利要求6所述的方法,其中,所述至少一个外围设备为传感器、天线、输入设备、发光设备、显示器或扬声器中的至少一个。
8.如权利要求1所述的方法,其中,所述至少一个远程调用配置成从所述用户交互引脚布局接收从所述引脚生成的数据。
9.如权利要求1所述的方法,其中,发送所述设备程序还包括将所述设备程序转化成所述外部物理控制器的本机语言。
10.一种用于自动生成设备程序的装置,包括:
显示器;
处理器;以及
存储器,包括处理器可执行的指令,所述处理器可执行的指令包括:
可视化控制器模块,配置成:
从显示在所述装置上的图形用户界面(GUI)中的多个物理控制器中的每个的用户交互可视化表示之中选择物理控制器,其中所选择的物理控制器在所述装置外部,并通信耦接至所述装置;
在所述图形用户界面中生成用于外部物理控制器的用户交互引脚布局,所述用户交互引脚布局包括至少一个引脚;
在所述图形用户界面中显示用于由所述外部物理控制器执行的多个操作;
从所述多个操作之中选择用于所述控制器的操作以由所述外部物理控制器执行,其中,所述操作包括从所述外部物理控制器发起的对远程设备的至少一个远程调用,
以及其中,所述远程设备远离所述装置和所述外部物理控制器;
在所述图形用户界面中从所述用户交互引脚布局中选择引脚;
在所述图形用户界面中从所述图形用户界面中的至少一个数据入口域或外部数据库接收用于所述操作的参数数据;
将来自所述用户交互引脚布局的引脚关联至所接收的用于所述操作的参数数据;
基于所述用户交互引脚布局、所述接收的用于所述操作的参数数据和所述操作自动生成用于所述外部物理控制器的设备程序,其中所述设备程序包括所述至少一个远程调用;以及
发送所述设备程序,以用于存储在所述外部物理控制器上的存储器中以及用于在所述外部物理控制器上执行。
11.如权利要求10所述的装置,其中,将来自所述用户交互引脚布局的所述引脚关联至所述接收的用于所述操作的参数数据还包括将至少一个变量分配至来自所述用户交互引脚布局的所述引脚。
12.如权利要求10所述的装置,其中,在所述用户交互引脚布局中的未选择的引脚之中突出所述用户交互引脚布局中的用于所述外部物理控制器的所述至少一个引脚。
13.如权利要求10所述的装置,其中,所述操作是从用于由所述外部控制器执行的多个任务之中选择的预定任务。
14.如权利要求10所述的装置,其中,将来自所述用户交互引脚布局的所述引脚关联至所述接收的用于所述操作的参数数据还包括:
确定所述引脚先前已与不同的操作相关联;以及
生成所述关联的通知。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461926168P | 2014-01-10 | 2014-01-10 | |
US61/926,168 | 2014-01-10 | ||
PCT/US2015/010562 WO2015105936A1 (en) | 2014-01-10 | 2015-01-08 | Method and apparatus for automatic device program generation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106170764A CN106170764A (zh) | 2016-11-30 |
CN106170764B true CN106170764B (zh) | 2019-12-10 |
Family
ID=53521381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580003781.2A Active CN106170764B (zh) | 2014-01-10 | 2015-01-08 | 用于自动设备程序生成的方法和装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9619112B2 (zh) |
EP (1) | EP3092561A4 (zh) |
JP (1) | JP6581097B2 (zh) |
KR (1) | KR102304698B1 (zh) |
CN (1) | CN106170764B (zh) |
CA (1) | CA2931512C (zh) |
SG (1) | SG11201605563YA (zh) |
WO (1) | WO2015105936A1 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10997531B2 (en) | 2007-09-11 | 2021-05-04 | Ciambella Ltd. | System, method and graphical user interface for workflow generation, deployment and/or execution |
US9959103B2 (en) * | 2010-11-19 | 2018-05-01 | Microsoft Technology Licensing, Llc | Code deployment assistance |
CN105849691B (zh) | 2013-06-18 | 2019-09-13 | 西安姆贝拉有限公司 | 用于代码虚拟化和远程进程调用生成的方法和装置 |
WO2017112735A2 (en) | 2015-12-21 | 2017-06-29 | Ciambella Ltd. | Method and apparatus for creating and managing controller based remote solutions |
US11087249B2 (en) | 2016-05-24 | 2021-08-10 | Ciambella Ltd. | Method and apparatus for triggering execution of a workflow over a network |
SG11201901459VA (en) | 2016-08-22 | 2019-03-28 | Ciambella Ltd | Method and apparatus for creating and managing controller based remote solutions |
US10798780B2 (en) | 2016-08-22 | 2020-10-06 | Ciambella Ltd. | Method and apparatus for creating and managing controller based remote solutions |
CN108259199B (zh) * | 2016-12-29 | 2020-04-21 | 大唐移动通信设备有限公司 | 一种自动化命令生成方法及装置 |
WO2018170079A1 (en) | 2017-03-14 | 2018-09-20 | Ciambella Ltd. | Method and apparatus for automatically generating and incorporating code in development environments |
US10592370B2 (en) * | 2017-04-28 | 2020-03-17 | Advantest Corporation | User control of automated test features with software application programming interface (API) |
EP3460594A1 (en) * | 2017-09-26 | 2019-03-27 | Vestel Elektronik Sanayi ve Ticaret A.S. | Systems and methods for controlling operation of a home appliance |
US10664636B2 (en) * | 2017-12-20 | 2020-05-26 | International Business Machines Corporation | Pin number definition based analytics |
US10264122B1 (en) | 2018-05-31 | 2019-04-16 | RapdiDeploy, Inc. | Emergency data gateway device |
KR102098635B1 (ko) * | 2018-06-20 | 2020-04-08 | 주식회사 리젠어스 | 기록매체에 저장된 프로그래밍 어플리케이션, 이를 포함하는 프로그래밍 시스템 및 이를 이용한 마이크로 콘트롤러 유닛의 프로그래밍 방법 |
KR101993858B1 (ko) * | 2018-10-05 | 2019-06-27 | 주식회사 엔터핀 | 프로그램 개발 시스템 및 이를 이용한 개발 방법 |
CN109740282A (zh) * | 2019-01-16 | 2019-05-10 | 杭州嘉楠耘智信息科技有限公司 | 一种芯片引脚配置方法及装置、设备、介质 |
KR102131918B1 (ko) * | 2019-04-19 | 2020-07-08 | 주식회사 엔터핀 | 소프트웨어 개발 시스템 및 방법 |
DE102020118563A1 (de) * | 2019-07-17 | 2021-01-21 | Steering Solutions Ip Holding Corporation | Middleware-system und -verfahren |
US11405768B2 (en) | 2019-10-16 | 2022-08-02 | RapidDeploy, Inc. | Data relay for multi-tenant emergency call system |
CN111427567B (zh) * | 2020-03-20 | 2023-08-18 | 杭州涂鸦信息技术有限公司 | 一种智能产品快速生成方法及其系统和设备 |
KR102185291B1 (ko) * | 2020-05-07 | 2020-12-01 | 주식회사 엔터핀 | 소프트웨어 개발 시스템 및 방법 |
KR102185290B1 (ko) * | 2020-05-07 | 2020-12-01 | 주식회사 엔터핀 | 소프트웨어 개발 시스템 및 방법 |
KR102185292B1 (ko) * | 2020-05-07 | 2020-12-01 | 주식회사 엔터핀 | 소프트웨어 개발 시스템 및 방법 |
KR102185289B1 (ko) * | 2020-05-07 | 2020-12-01 | 주식회사 엔터핀 | 소프트웨어 개발 시스템 및 방법 |
US11553618B2 (en) * | 2020-08-26 | 2023-01-10 | PassiveLogic, Inc. | Methods and systems of building automation state load and user preference via network systems activity |
US20220334836A1 (en) * | 2021-04-15 | 2022-10-20 | Dell Products L.P. | Sharing of computing resources between computing processes of an information handling system |
KR102347203B1 (ko) * | 2021-11-24 | 2022-01-03 | 조동건 | 개체-관계 다이어그램 정보에 기초한 프로그램 코드 자동 생성 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6065053A (en) * | 1997-10-01 | 2000-05-16 | Micron Electronics, Inc. | System for resetting a server |
CN201017215Y (zh) * | 2007-03-29 | 2008-02-06 | 王忠伟 | 一种终端控制器 |
CN102999322A (zh) * | 2011-09-16 | 2013-03-27 | 深圳市吉阳自动化科技有限公司 | 一种工业控制器软件界面设计方法 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5852733A (en) * | 1996-12-16 | 1998-12-22 | Chien; Yung-Ping S. | Microcontroller development tool using software programs |
WO1998040817A1 (fr) * | 1997-03-11 | 1998-09-17 | Mitsubishi Denki Kabushiki Kaisha | Methode et systeme de programmation visuelle |
US6401156B1 (en) * | 1999-08-23 | 2002-06-04 | Advanced Micro Devices, Inc. | Flexible PC/AT-compatible microcontroller |
US8176296B2 (en) * | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US6931288B1 (en) * | 2001-04-16 | 2005-08-16 | Rockwell Automation Technologies, Inc. | User interface and system for creating function block diagrams |
US8131827B2 (en) * | 2001-05-09 | 2012-03-06 | Rockwell Automation Technologies, Inc. | PLC with web-accessible program development software |
US7039892B2 (en) * | 2001-07-24 | 2006-05-02 | Hewlett-Packard Development Company, L.P. | Systems and methods for ensuring correct connectivity between circuit designs |
US7143360B1 (en) * | 2001-10-29 | 2006-11-28 | Cypress Semiconductor Corporation | Pin-out connections/drive levels direct-set by drop down list |
US8078970B1 (en) * | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US6966039B1 (en) * | 2001-11-19 | 2005-11-15 | Cypress Semiconductor Corp. | Method for facilitating microcontroller programming |
US7086014B1 (en) * | 2001-11-19 | 2006-08-01 | Cypress Semiconductor Corporation | Automatic generation of application program interfaces, source code, interrupts, and datasheets for microcontroller programming |
US6715132B1 (en) * | 2001-11-19 | 2004-03-30 | Cypress Semiconductor Corporation | Datasheet browsing and creation with data-driven datasheet tabs within a microcontroller design tool |
US7010773B1 (en) * | 2001-11-19 | 2006-03-07 | Cypress Semiconductor Corp. | Method for designing a circuit for programmable microcontrollers |
US7331047B2 (en) * | 2003-11-25 | 2008-02-12 | Microsoft Corporation | Deterministic system and method for implementing software distributed between a desktop and a remote device |
GB2411495A (en) * | 2004-02-27 | 2005-08-31 | Cyan Holdings Ltd | Method and apparatus for generating configuration data |
US20060041854A1 (en) * | 2004-07-22 | 2006-02-23 | Steven Schlanger | Devices and methods for programming microcontrollers |
US20060020910A1 (en) * | 2004-07-22 | 2006-01-26 | Steven Schlanger | Devices and methods for communicating with a microcontroller |
JP2006079447A (ja) * | 2004-09-10 | 2006-03-23 | Fujitsu Ltd | 集積回路設計支援装置、集積回路設計支援方法及び集積回路設計支援プログラム |
US20070174037A1 (en) * | 2005-11-10 | 2007-07-26 | Chuan-Po Ling | Multiple-microcontroller emulation system, multiple-microcontroller integrated development environment, and method for the same |
US7813909B2 (en) * | 2006-05-03 | 2010-10-12 | Sony Computer Entertainment Inc. | Register mapping in emulation of a target system on a host system |
US8028258B1 (en) * | 2006-02-16 | 2011-09-27 | Cypress Semiconductor Corporation | Interactive graphical pin assignment |
US7627838B2 (en) * | 2006-04-25 | 2009-12-01 | Cypress Semiconductor Corporation | Automated integrated circuit development |
US7886234B2 (en) * | 2006-10-13 | 2011-02-08 | Mediatek Inc. | Systems and methods for creating embedded target images |
US20080109782A1 (en) * | 2006-10-18 | 2008-05-08 | Utstarcom, Inc. | Method and system for pin assignment |
AU2008336269A1 (en) * | 2007-12-13 | 2009-06-18 | Labtronics Technology Pty Ltd | Application specific virtual real-time operating system compiler |
US8099694B1 (en) * | 2009-04-15 | 2012-01-17 | Altera Corporation | Interactive tool for contemporaneous design of integrated circuits having different device packages |
CN102422263B (zh) * | 2009-05-07 | 2016-03-30 | 赛普拉斯半导体公司 | 开发、编程和除错环境 |
KR20130115729A (ko) * | 2012-04-13 | 2013-10-22 | 삼성전자주식회사 | 디스플레이장치, 리모컨 및 그 제어방법 |
-
2015
- 2015-01-08 EP EP15735508.2A patent/EP3092561A4/en not_active Withdrawn
- 2015-01-08 WO PCT/US2015/010562 patent/WO2015105936A1/en active Application Filing
- 2015-01-08 SG SG11201605563YA patent/SG11201605563YA/en unknown
- 2015-01-08 CA CA2931512A patent/CA2931512C/en active Active
- 2015-01-08 JP JP2016545976A patent/JP6581097B2/ja active Active
- 2015-01-08 KR KR1020167015057A patent/KR102304698B1/ko active IP Right Grant
- 2015-01-08 CN CN201580003781.2A patent/CN106170764B/zh active Active
- 2015-01-09 US US14/593,151 patent/US9619112B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6065053A (en) * | 1997-10-01 | 2000-05-16 | Micron Electronics, Inc. | System for resetting a server |
CN201017215Y (zh) * | 2007-03-29 | 2008-02-06 | 王忠伟 | 一种终端控制器 |
CN102999322A (zh) * | 2011-09-16 | 2013-03-27 | 深圳市吉阳自动化科技有限公司 | 一种工业控制器软件界面设计方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2017502431A (ja) | 2017-01-19 |
SG11201605563YA (en) | 2016-08-30 |
CA2931512C (en) | 2020-12-08 |
CN106170764A (zh) | 2016-11-30 |
EP3092561A1 (en) | 2016-11-16 |
JP6581097B2 (ja) | 2019-09-25 |
KR20160108306A (ko) | 2016-09-19 |
KR102304698B1 (ko) | 2021-09-28 |
WO2015105936A1 (en) | 2015-07-16 |
EP3092561A4 (en) | 2017-11-22 |
US20150199088A1 (en) | 2015-07-16 |
CA2931512A1 (en) | 2015-07-16 |
US9619112B2 (en) | 2017-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106170764B (zh) | 用于自动设备程序生成的方法和装置 | |
US9619122B2 (en) | Method and apparatus for automatic device program generation | |
KR102622652B1 (ko) | 컨트롤러 기반 디바이스들의 그룹에 대한 자동 소프트웨어 개발을 위한 방법 및 장치 | |
US10732969B2 (en) | Method and apparatus for creating and managing controller based remote solutions | |
CN113806037A (zh) | 服务的调用方法、装置、存储介质及电子设备 | |
CN105765533A (zh) | 用于固件虚拟化的方法和装置 | |
CN109828840A (zh) | 资源编排方法、装置、存储介质及电子设备 | |
CN111984248A (zh) | 页面编辑方法和装置、存储介质及电子装置 | |
US20210271458A1 (en) | Managing an app method and system | |
CN115291963A (zh) | 配置硬件资源的方法、电子设备及存储介质 | |
CN112948264B (zh) | 测试任务的执行方法及装置、系统、存储介质、电子装置 | |
KR20220108967A (ko) | 외부 전자 장치를 제어하기 위한 어플리케이션을 생성하는 방법 및 이를 지원하는 전자 장치 | |
CN104572441A (zh) | 移动应用功能测试的环境搭建方法、装置、服务器及系统 | |
JP6626956B2 (ja) | コントローラに基づくデバイスのためのコードの挙動を修正するための方法および装置 | |
CN113419775B (zh) | 一种固件配置方法、系统、设备以及介质 | |
US20230102570A1 (en) | System and method for scripting generators | |
CN109891854B (zh) | 用于创建和管理基于控制器的远程解决方案的方法和设备 | |
CN118796313A (zh) | 调用目标原生功能的方法、装置和设备及计算机存储介质 | |
CN114356451A (zh) | 应用执行方法、应用执行装置、设备及存储介质 | |
CN114860307A (zh) | 一种软件产品的配置方法及相关装置 | |
Lakshmanan | Internet Of Things (IoT) Application Simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1231214 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |