CN109032573A - 一种硬件编程系统和方法 - Google Patents

一种硬件编程系统和方法 Download PDF

Info

Publication number
CN109032573A
CN109032573A CN201810637193.XA CN201810637193A CN109032573A CN 109032573 A CN109032573 A CN 109032573A CN 201810637193 A CN201810637193 A CN 201810637193A CN 109032573 A CN109032573 A CN 109032573A
Authority
CN
China
Prior art keywords
hardware
programming
browser
program component
middleware
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.)
Pending
Application number
CN201810637193.XA
Other languages
English (en)
Inventor
李涛
郝祥林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen City Play By Education Technology Co Ltd
Original Assignee
Shenzhen City Play By Education Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen City Play By Education Technology Co Ltd filed Critical Shenzhen City Play By Education Technology Co Ltd
Priority to CN201810637193.XA priority Critical patent/CN109032573A/zh
Publication of CN109032573A publication Critical patent/CN109032573A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种硬件编程系统和方法,系统包括:待变更的硬件、中间件和服务器端,其中,中间件用于提供浏览器的运行环境,中间件还用于提供与硬件连接的接口环境,服务器端用于提供特定网址的服务支持;中间件连接硬件以获取硬件信息,建立浏览器与硬件的通信连接;浏览器访问特定网址以加载编程组件,通过编程组件获取编程数据,将编程数据传输至硬件;硬件基于编程数据变更硬件代码。方法适用于系统。本发明通过网络的服务器存储编程环境,通过浏览器加载编程环境并获取编程数据,能够降低本地编程环境的需求,通过浏览器与硬件进行数据的传输,能够快速实现驱动的更新,结合上述两点能提高用户针对智能硬件的编程的体验。

Description

一种硬件编程系统和方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种硬件编程系统和方法。
背景技术
世面上出现很多智能化的硬件,这些硬件多数具有可编程功能,但是要编程控制这些硬件,都需要安装客户端或者集成开发环境,这样有两个弊端:一是需要下载较大的环境文件,二是需要在本地管理自己的编程项目文件,用户体验不好。
发明内容
为了解决上述问题,本发明提供一种硬件编程系统和方法。
本发明采用的技术方案一方面为一种硬件编程系统,包括:待变更的硬件、中间件和服务器端,其中,所述中间件用于提供浏览器的运行环境,所述中间件还用于提供与硬件连接的接口环境,所述服务器端用于提供特定网址的服务支持;所述中间件连接所述硬件以获取硬件信息,建立浏览器与硬件的通信连接;所述浏览器访问特定网址以加载编程组件,通过所述编程组件获取编程数据,将所述编程数据传输至所述硬件;所述硬件基于所述编程数据变更硬件代码。
优选地,所述中间件包括电脑主机和中间件程序,所述中间件程序扫描接口环境中与硬件连接的接口以获取硬件信息,所述浏览器基于硬件信息选择对应的硬件并建立通信连接。
优选地,所述浏览器基于WebSocket协议与硬件建立通信连接。
优选地,所述浏览器访问预定网址,根据硬件信息加载对应的编程组件,通过所述编程组件获取编程数据,将所述编程数据传输至所述硬件。
优选地,所述浏览器访问预定网址以加载编程组件,通过所述编程组件获取编程指令,将所述编程指令发送至所述服务器端,所述服务器端转换所述编程指令为适用于硬件的编程数据,所述浏览器将所述编程数据传输至所述硬件。
本发明采用的技术方案一方面为一种硬件编程方法,适用于上述系统,包括步骤:取硬件的硬件信息,建立浏览器与硬件的通信连接;通过浏览器访问特定网址以加载编程组件;通过编程组件获取编程数据,将所述编程数据传输至所述硬件;基于所述编程数据变更硬件代码。
优选地,扫描接口环境中与硬件连接的接口以获取硬件信息,所述浏览器基于硬件信息选择对应的硬件并建立通信连接。
优选地,所述浏览器基于WebSocket协议与硬件建立通信连接。
优选地,所述浏览器访问预定网址,根据硬件信息加载对应的编程组件,通过所述编程组件获取编程数据,将所述编程数据传输至所述硬件。
优选地,所述浏览器访问预定网址以加载编程组件,通过所述编程组件获取编程指令,将所述编程指令发送至所述服务器端,所述服务器端转换所述编程指令为适用于硬件的编程数据,所述浏览器将所述编程数据传输至所述硬件。
本发明的有益效果为网络的服务器存储编程环境,通过浏览器加载编程环境并获取编程数据,能够降低本地编程环境的需求,通过浏览器与硬件进行数据的传输,能够快速实现代码的更新,结合上述两点能提高用户针对智能硬件的编程的体验。
附图说明
图1所示为基于本发明实施例一种硬件编程系统的示意图。
具体实施方式
以下结合实施例对本发明进行说明。
基于发明的实施例1
本发明的目的是降低编程的环境需求和提高编程的舒适度,其要旨在于:首先提供中间件,可以设置其为电脑的主机(下称电脑),其目的是提供浏览器的运行环境和提供与硬件连接的接口环境;以简单的IE浏览器为例子,正常的具有Windows OS的主机都会配置有IE浏览器,同时作为电脑的硬件的一部分,大多数的电脑都具备各种接口(例如USB接口,WLAN接口,各种显示器接口等),统称这些接口和其对应的驱动为接口环境;待变更的硬件(即上述智能硬件)通过接口环境连接电脑,电脑的驱动程序就会启动(即中间件程序)监听TCP协议的固定端口,并开放与浏览器通信的接口;电脑驱动程序在完成硬件的连接之后,获取硬件的硬件属性(包括硬件类型、接口地址等),浏览器访问预定的网址以获取对应的技术支持,在本实施例,其表现为下载并加载与硬件匹配的编程组件(即编程环境/IDE页面,其主要基于html+javascript编写,该页面提供新建、编辑、保存、删除编程项目的功能,并能通过中间件提供的接口,与硬件进行通信,并实现上传程序/代码到硬件的功能);当浏览器完成编程组件的加载,则用户可以通过IDE页面提供的功能进行编程操作(可以是直接输入代码,也可以是通过代码库的现有代码的重组以完成新代码),编程操作的结果即编程数据,通过中间件之前已经完成的通信连接(即硬件对应的驱动的安装),将编程数据传输到硬件,硬件使用编程数据并进行代码的更新。
基于发明的实施例2
作为实施例1的进一步说明,以具体的硬件为例:硬件可以是开源硬件Arduino,中间件用于提供操作系统、与硬件通信的功能,同时用于暴露与硬件通信的接口给浏览器;浏览器端提供一个在线集成开发环境(IDE),提供在线编程的功能,以及程序项目的新建、编辑、保存等功能;服务器端为浏览器端提供服务,配合浏览器端实现程序项目的新建、编辑、保存等功能;同时提供应用程序编译功能,将在浏览器端编写的应用程序编译成硬件支持的格式,发送至浏览器端,烧录进硬件,其步骤包括:
将Arduino硬件接入电脑USB接口之后,启动中间件;中间件程序采用Go语言编写,中间件程序启动之后,会使用serial模块扫描USB接口对应硬件信息,之后中间件程序会监听TCP协议的26337端口,为浏览器提供https及wss服务;
用户打开浏览器端即在线IDE页面,该页面采用html+javascript编写,提供新建、编辑、保存、删除编程项目的功能,能通过电脑提供的接口,与硬件进行通信,并实现上传程序到硬件的功能;该页面加载完成之后,会通过GET请求访问预定的地址,本实施例中,该地址为https://local.codepku.com/device-list(local.codepku.com解析至127.0.0.1)获取设备列表(即硬件信息);浏览器端通过设备信息,找到支持的硬件设备即Arduino后,通过POST请求访问https://local.codepku.com/open-device打开对应的设备端口,然后与wss://local.codepku.com/ws建立WebSocket连接,中间件将从硬件读取到的串口数据(若有),发送至此WebSocket,同时将浏览器通过此WebSocket发送过来的数据,传送至硬件,从而实现硬件与浏览器端的实时通信(建立通信连接);通信建立之后,用户可以在浏览器端的IDE中进行新建项目,并使用Arduino硬件支持的编程语言进行编程,并进行保存、修改等操作,用户完成编程之后,可以进行编译操作以生成编程指令,将编程指令作发送至服务器端,也可以直接将编程指令(此时,该编程指令即能够直接适用于硬件的程序代码)发送至硬件(取决于硬件的类型)。
基于发明的实施例3
作为实施例2的进一步说明,服务器端可以使用任意支持Web开发的编程语言实现,本实施例中使用PHP开发,服务器端除配合浏览器端实现编程项目的新建、修改、保存、删除等操作之外,还要实现Arduino代码的编译功能(即当浏览器不能直接实现针对于硬件的编程,其中,能否实现取决于硬件的类型,本实施例以不能的情况作为说明);服务器端接收到浏览器端提交的编程指令之后,将此指令加入到待编译队列中,服务器端的守护进程使用Arduino硬件支持的编译软件avr-tools对待编译队列进行编译,并将编译结果保存到临时目录中,编译完成之后,服务器端将编译生成的二进制文件的URL返回至浏览器端,浏览器接收到编译结果的URL之后,会通过POST请求将URL地址发送至中间件,在本实施例中其为https://local.codepku.com/upload-firmware接口,中间件将此编译生成的文件下载至本地,并调用Arduino的上传工具将文件上传至Arduino中,至此,用户完成在浏览器中对Arduino进行编程的操作。
基于发明的实施例4
如图1所示一种硬件编程系统的示意图,包括服务器端、浏览器端、中间件和硬件,其中,服务器端用于提供特定网址的服务支持,中间件包括电脑主机和中间件程序,浏览器端即浏览器,硬件为待变更的硬件;
所述服务器端与浏览器端相互连接,所述浏览器端与中间件相互连接,所述中间件与硬件相互连接。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

Claims (10)

1.一种硬件编程系统,其特征在于,包括:
待变更的硬件、中间件和服务器端,其中,所述中间件用于提供浏览器的运行环境,所述中间件还用于提供与硬件连接的接口环境,所述服务器端用于提供特定网址的服务支持;
所述中间件连接所述硬件以获取硬件信息,建立浏览器与硬件的通信连接;
所述浏览器访问特定网址以加载编程组件,通过所述编程组件获取编程数据,将所述编程数据传输至所述硬件;
所述硬件基于所述编程数据变更硬件代码。
2.根据权利要求1所述的硬件编程系统,其特征在于,所述中间件包括电脑主机和中间件程序,所述中间件程序扫描接口环境中与硬件连接的接口以获取硬件信息,所述浏览器基于硬件信息选择对应的硬件并建立通信连接。
3.根据权利要求1所述的硬件编程系统,其特征在于,所述浏览器基于WebSocket协议与硬件建立通信连接。
4.根据权利要求3所述的硬件编程系统,其特征在于,所述浏览器访问预定网址,根据硬件信息加载对应的编程组件,通过所述编程组件获取编程数据,将所述编程数据传输至所述硬件。
5.根据权利要求3所述的硬件编程系统,其特征在于,所述浏览器访问预定网址以加载编程组件,通过所述编程组件获取编程指令,将所述编程指令发送至所述服务器端,所述服务器端转换所述编程指令为适用于硬件的编程数据,所述浏览器将所述编程数据传输至所述硬件。
6.一种硬件编程方法,适用于权利要求1所述系统,其特征在于,包括步骤:
获取硬件的硬件信息,建立浏览器与硬件的通信连接;
通过浏览器访问特定网址以加载编程组件;
通过编程组件获取编程数据,将所述编程数据传输至所述硬件;
基于所述编程数据变更硬件代码。
7.根据权利要求6所述的硬件编程方法,适用于权利要求2所述系统,其特征在于,扫描接口环境中与硬件连接的接口以获取硬件信息,所述浏览器基于硬件信息选择对应的硬件并建立通信连接。
8.根据权利要求6所述的硬件编程方法,其特征在于,所述浏览器基于WebSocket协议与硬件建立通信连接。
9.根据权利要求8所述的硬件编程方法,其特征在于,所述浏览器访问预定网址,根据硬件信息加载对应的编程组件,通过所述编程组件获取编程数据,将所述编程数据传输至所述硬件。
10.根据权利要求8所述的硬件编程方法,其特征在于,所述浏览器访问预定网址以加载编程组件,通过所述编程组件获取编程指令,将所述编程指令发送至所述服务器端,所述服务器端转换所述编程指令为适用于硬件的编程数据,所述浏览器将所述编程数据传输至所述硬件。
CN201810637193.XA 2018-06-20 2018-06-20 一种硬件编程系统和方法 Pending CN109032573A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810637193.XA CN109032573A (zh) 2018-06-20 2018-06-20 一种硬件编程系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810637193.XA CN109032573A (zh) 2018-06-20 2018-06-20 一种硬件编程系统和方法

Publications (1)

Publication Number Publication Date
CN109032573A true CN109032573A (zh) 2018-12-18

Family

ID=64609793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810637193.XA Pending CN109032573A (zh) 2018-06-20 2018-06-20 一种硬件编程系统和方法

Country Status (1)

Country Link
CN (1) CN109032573A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109787997A (zh) * 2019-02-26 2019-05-21 上海易点时空网络有限公司 基于php的tcp服务方法及服务器
CN110275787A (zh) * 2019-06-24 2019-09-24 博普乐科技(北京)有限公司 在线平台数据传输方法、装置、介质及电子设备
CN112327736A (zh) * 2020-09-14 2021-02-05 广东联凯智能科技有限公司 用于电子产品的嵌入式可编程模块
CN113900637A (zh) * 2021-09-30 2022-01-07 海南佳达科技有限公司 一种基于Web的Arduino智能硬件控制方法及系统
CN115665269A (zh) * 2022-10-18 2023-01-31 哈尔滨工程大学 一种基于tcp通信协议的分布式异构语言间的通讯方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101626351A (zh) * 2008-07-09 2010-01-13 青岛高校信息产业有限公司 多协议数据采集网关
CN103914018A (zh) * 2012-12-31 2014-07-09 施耐德电器工业公司 可编程控制器的编程辅助系统及方法
CN104244108A (zh) * 2014-09-24 2014-12-24 上海网达软件股份有限公司 一种直播方法及系统
CN104519405A (zh) * 2013-10-08 2015-04-15 联想(北京)有限公司 一种控制方法及电子设备
CN106325233A (zh) * 2015-07-07 2017-01-11 刘华 一种可视化编程逻辑分布控制系统及实现方法
CN107750356A (zh) * 2015-05-08 2018-03-02 西安姆贝拉有限公司 用于一组基于控制器的装置的自动软件开发的方法和设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101626351A (zh) * 2008-07-09 2010-01-13 青岛高校信息产业有限公司 多协议数据采集网关
CN103914018A (zh) * 2012-12-31 2014-07-09 施耐德电器工业公司 可编程控制器的编程辅助系统及方法
CN104519405A (zh) * 2013-10-08 2015-04-15 联想(北京)有限公司 一种控制方法及电子设备
CN104244108A (zh) * 2014-09-24 2014-12-24 上海网达软件股份有限公司 一种直播方法及系统
CN107750356A (zh) * 2015-05-08 2018-03-02 西安姆贝拉有限公司 用于一组基于控制器的装置的自动软件开发的方法和设备
CN106325233A (zh) * 2015-07-07 2017-01-11 刘华 一种可视化编程逻辑分布控制系统及实现方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109787997A (zh) * 2019-02-26 2019-05-21 上海易点时空网络有限公司 基于php的tcp服务方法及服务器
CN110275787A (zh) * 2019-06-24 2019-09-24 博普乐科技(北京)有限公司 在线平台数据传输方法、装置、介质及电子设备
CN112327736A (zh) * 2020-09-14 2021-02-05 广东联凯智能科技有限公司 用于电子产品的嵌入式可编程模块
CN112327736B (zh) * 2020-09-14 2022-05-31 广东联凯智能科技有限公司 用于电子产品的嵌入式可编程模块
CN113900637A (zh) * 2021-09-30 2022-01-07 海南佳达科技有限公司 一种基于Web的Arduino智能硬件控制方法及系统
CN115665269A (zh) * 2022-10-18 2023-01-31 哈尔滨工程大学 一种基于tcp通信协议的分布式异构语言间的通讯方法

Similar Documents

Publication Publication Date Title
CN109032573A (zh) 一种硬件编程系统和方法
CN106843828B (zh) 界面显示、加载方法及装置
CN102819461B (zh) 桌面同步方法、装置、设备及系统
KR100823122B1 (ko) 이동 단말기와 관련된 데이터 베이스, 서비스 및 장치들의원격 관리 및 액세스
US20070220494A1 (en) A Method of Rapid Software Application Development for a Wireless Mobile Device
CN111953642B (zh) 一种二维码上传和下载分享文件的方法
CN101399729B (zh) 资料下载与上传管理系统及方法
CN102752369B (zh) 电视应用服务的提供方法及虚拟化内容服务平台
CN104268739A (zh) 一种将企业信息系统快速转化为移动应用的方法和系统
CN104486388A (zh) 云存储文件的访问方法和装置
CN100473070C (zh) 一种具有存储功能的usb设备在网络计算机上的映射方法
CN102368848B (zh) 一种无线通讯装置及其配置方法
CN103945364A (zh) 传输数据的方法、第一终端和系统
CN108763042A (zh) 一种基于python的云服务器性能数据采集方法及装置
CN109871221A (zh) 一种针对移动终端设备快速装机部署移动应用软件的系统
KR101086620B1 (ko) 스마트 오피스 시스템 및 운용을 위한 서버 및 운용 방법
CN107704499A (zh) 一种应用程序的页面跳转控制方法及装置
CN112394932A (zh) 浏览器网页自动换肤方法及装置
CN103634393A (zh) Ivr及其实现方法
CN113641581B (zh) 混合模式移动应用调试方法及系统
CN102469109B (zh) 一种移动终端中浏览器主页的显示方法及装置
CN106648805A (zh) 一种智能装置、智能系统及智能安装应用的方法
CN112073488A (zh) 处理请求的方法及装置
CN110071958B (zh) 基于嵌入式web的传感器节点控制方法
CN104079540A (zh) 应用更新方法、装置及系统、用户设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 2601, Xilongwan business international building, n23 District, Haiwang community, Xin'an street, Bao'an District, Shenzhen City, Guangdong Province

Applicant after: SHENZHEN CODEPKU EDUCATION TECHNOLOGY Co.,Ltd.

Address before: Room 1202, block C, Xiangnian Plaza, No. 4060, Qiaoxiang Road, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: SHENZHEN CODEPKU EDUCATION TECHNOLOGY Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181218