基于http协议的可编程控制智慧楼宇虚拟仿真实验平台软件的设计研究

2023-09-28 19:45陈锐
广东教育·职教版 2023年9期
关键词:服务器端字符楼宇

陈锐

前言

物联网概念如火如荼,前景广阔,产业链庞大,加之在人工智能的助推下,融合应用于各行各业:智能车联、智慧物流、智能交通、智能家居等,各种科幻超前的虚拟仿真和虚拟现实场景,让人叹为观止。在中职物联网专业课程建设中,也要充分发挥虚拟仿真实验平台软件的优势,创新人才培养模式,提升人才培养的质量和成效。

现代化商业,楼宇经济作为集聚现代服务业与制造业企业总部的高级经济形态,吸引了不少大都市的“目光”,这也是北上广深等大城市越来越重视楼宇经济发展情况的重要原因之一。随着物联网应用的普及,智慧楼宇概念孕育而生。所谓智慧楼宇是将建筑、通信、计算机和控制等各方面的先进科技相互融合,合理集成为最优化的整体,是大型现代化的物联网综合体。

在物联网程序设计课程建设中,如果要设计一款智慧楼宇实体硬件实训平台,一定是体积庞大,造价不菲,同时后期使用和维护的成本之大也是可想而知。这样的课程建设,很难让课程真正得到推广和实施,使得课程的可持续性和可用性大打折扣,特别是对一些相对贫穷落后、师资力量相对薄弱的地方更是不可行,哪怕是多个学生共同使用一套设备,也会给课程的开展和实施带来诸多麻烦。

设计一款可编程控制的虚拟仿真智慧楼宇实验平台软件,可以让每一台运行了该软件的学生电脑都成为一套完整的实训设备,让每一位学生都能拥有完全属于自己的设备来完成学习任务。而且软件的故障率相比于硬件,几乎可以忽略不计,就算出问题,最多也是关闭软件,重新运行即可,使用和维护的成本几乎为零,可以完全实现学生与设备1∶1的比例,这是实体硬件设备无法比拟的优势。电脑之间是联网的,那么虚拟仿真软件之间也是联网的,电脑互联支撑软件互联,实现多个仿真智慧楼宇之间的互联互通,形成庞大的慧楼宇群,为学生提供了彼此之间可以相互合作编程的实验平台,能完成更多更复杂的编程控制实验。虚拟仿真软件主要具有以下特点:

趣味性:界面友好、操作简单、变枯燥为神奇、迅速提高学生的学习兴趣。

互动性:完全模拟实际实验环境,互动性强。

实用性:紧贴教学大纲、完全服务于实验课的学习。

探究性:实现让学生积极参与、乐于探究、勇于实验、勤于思考。

可靠性:软件的稳定性只取决于电脑,而硬件设备的稳定性还会受到信号干扰、电压不稳定、温湿度等诸多外部环境因素的影响,更容易损耗和损坏。

科学性:实现科学合理的真实模拟,实现虚拟实验“零误差”。

安全性:软件相比硬件,不存在误操作导致的烧伤、电伤、火灾、实体设备损坏等安全性问题。

虚拟仿真软件是现代科技的一大創新,它能够帮助人们在虚拟环境中模拟真实的场景,以达到学习、测试和研究的目的。随着信息化时代的到来,虚拟仿真软件已经成为教育领域中的一种新型教学手段,虚拟仿真软件的应用已经成为教学模式的一种创新,能为教育质量的提升做出重要贡献。

一、为何要基于http协议

网络通信最常用的就是利用Socket接口实现在不同计算机之间传输数据,另一种就是利用http协议。Socket是一种标准的API(应用程序接口),可用在不同的计算机之间传输数据,它支持TCP/UDP等多种网络协议。专业级的网络通信程序开发都会用到Socket。随着人工智能和物联网通识课的普及,计算机软件编程课越来越受到学生和家长的青睐,市面上相继推出了很多针对初学者和中小学生的图形化编程、积木式编程软件,Google的AppInventor就是最典型的代表,这些图形化编程工具大部分都不直接提供Socket模块,而是提供使用更为简单的基于http协议的post或者get方法实现与服务器之间的数据通信。http协议是超文本传输协议,是互联网上应用最为广泛的一种网络协议。智慧楼虚拟仿真软件主要是面向学生,面向初学者,面向教学的,所以必须要能支持适应面更广,使用更为简单的http协议。

二、为何要可编程控制

实体智慧楼宇是由多套物联网终端硬件模块和软件共同组成的物联网系统。这些终端硬件模块一定是有编程接口的,这样软件才能监控和控制设备,智慧楼宇虚拟仿真软件仿真的是实体智慧楼宇的功能,通过电脑图形图像和动画进行综合数字多媒体展示,所以这些展示也必须是编程可控的,因此,也要为仿真软件设置编程接口。从软件开发的角度讲,就是将智慧楼宇虚拟仿真软件设计为一个信息服务器端,当服务器端接收到不同http信息的时候,能够做出不同的响应,展示不同的图像或动画,模拟设备的运转。学生编程控制虚拟仿真软件就像控制真实硬件设备一样,真正起到训练学生编程技能的作用。

三、信息服务端的设计思路

1.信息服务器端的开发实际就是Socket服务器端的开发,在智慧楼宇虚拟仿真软件中启动Socket服务器端的侦听,监听客户端发送过来的信息,根据不同的信息做出不同的响应,这些信息其实就是在仿真软件上定义的编程接口。例如:在仿真软件上定义编程接口“0301SD”,其中0301是房间号,表示3层的01号房间,S为打开动作,D为灯设备标记。当仿真软件收到“0301SD”的信息时,就会将0301房间变成亮灯图片。

启动Socket服务器端侦听,需要指定ip地址+端口,这个地址一般是ip4地址,如:192.168.100.1。需要特备注意的是服务器的ip地址是有多个的,而不仅仅只有一个,有ip4的也有ip6的,如果侦听直接就指定默认的ip地址,则有可能会是ip6地址,这样就会造成客户端连接不上服务器,也就无法给服务器发送信息。所以服务器端在指定侦听的ip地址之前,需要先将所有的ip地址全部扫描一遍,找出ip4地址,然后再进行指定。根据ip4地址的特点“点分4个十进制数”,编程思路是,使用循环语句将服务器的每一个ip地址先转换成字符串,然后用“.”字符分割字符串,如果分割后得到的数组长度为4,说明是ip4地址,即可退出循环。在实际编程中,可以编写一个自定义函数,专门用于获取服务器的第一个可用ip4地址。当有了ip4地址,便可在程序启动事件中启动Socket服务器侦听。

2.当客户端向服务器发起连接请求时,Socket服务器侦听将会通过accept方法接受连接,并生成一个新的对应于此次连接的套接字,该套接字负责与某个客户端进行通信,即接收客户端发送过来的信息,以及向客户端发送信息。不同的客户端连接到服务器,服务器都会生成专门的套接字与之进行通讯,是一一对应的关系。在实际编程中,可新添加一个全局列表,专业用于保存新生成的连接套接字,当某个客户端断开与服务器的连接时,与之对应的连接套接字也将从列表中删除,列中将一直保存与所有的在线客户端连接的套接字。理论上Socket服务器端侦听可以接受和响应无限个客户端的连接,但在实际使用中,虚拟仿真软件往往是运行在一台普通的pc电脑上(例如:学生电脑机房的电脑),它并不具备像真正的服务器一样拥有海量信息数据的处理能力,因此,为了保证虚拟仿真软件能稳定可靠地运行在普通常用的pc电脑上,不会因为大量的客户端链接请求而造成软件的崩溃,需要设置连接上限。假设连接上限为20,那么,当Socket服务器侦听到有新的客户端连接請求时,在使用accept方法接受连接之前,首先要判断用于保存连接套接字的全局列表的长度是否小于20,如果是,说明当前已经连接到服务器的客户端不足20个,可以接受该连接请求,否则,就放弃该连接请求。

3.由于客户端发送给服务器的是http信息,而http信息是有固定格式的,当服务器接收到客户端发送过来的信息时,需要对信息进行处理,才能获得具体的命令字符。例如:客户端向服务器发出请求“http://192.168.100.1:10000/0301SD”,其中0301SD是命令字符,那么服务器接收到的信息如下:

其中很大部分都是http协议的格式字符,里面只有第一行的“GET/0301SD HTTP/1.1”是有用的信息,表示客户端通过GET方法向服务器发送信息。http协议有两种方法向服务器发送信息,一种是GET方法,一种是POST方法,如果第一行的信息是“POST/0301SD HTTP/1.1”,则说明客户端是通过POST方法向服务器发送信息。无论服务器接收到客户端发送过来的http信息中的第一行是“GET/0301SD HTTP/1.1”还是“POST/0301SD HTTP/1.1”,都有一个共同的特点,就是GET或者POST、/0301SD、HTTP/1.1这三段字符串之间是用空格字符隔开的,其中0301SD是客户端发送来的命令字符,要将其准确地取出,可以把空格作为分割字符,使用字符串分割函数split对服务器接收到的http信息进行分割,从而得到一个字符串列表,列表的第二个元素就是“/0301SD”。然后再用字符串截取函数对“/0301SD”进行处理,将“/”字符去掉,得到准确地命令字符“0301SD”。根据获取的命令字符,虚拟仿真软件将会启动或停止模拟设备运作的动画,实现编程可控,同时根据客户端的需求,向客户端发送虚拟仿真软件上模拟设备的状态信息。

以上是基于http协议的可编程控制智慧楼宇虚拟仿真实验平台软件的设计思路,也适用于其他可编程控制的虚拟仿真软件的设计,例如:智慧物流、智能家居、智慧农业、智能停车场等,只要改变虚拟仿真软件中设备运作的模拟动画即可。

智慧楼宇虚拟仿真平台软件最好是设计成可以选择性组装的。假如有20个基础模块,可以根据学习任务的不同,选择需要的模块,组装成不同的系统。例如:设计简单的智能安防系统,可以在房屋中选装烟雾传感器、火传感器、水传感器。烟和火传感器可以控制警报,水传感器可以控制窗户的开关等,这样可以让软件更具灵活性和可扩展性。

[本文是2023年广东省中小学教育科学规划重点课题“融合网联化虚拟仿真技术的物联网程序设计项目课程开发的实践性研究”(编号:2023ZQJK018)的阶段性研究成果。]

责任编辑 魏家坚

猜你喜欢
服务器端字符楼宇
寻找更强的字符映射管理器
通信生产楼宇建设项目造价问题分析
商务楼宇治理中党建融入的逻辑与路径——基于广州S楼宇的观察与思考
Linux环境下基于Socket的数据传输软件设计
字符代表几
一种USB接口字符液晶控制器设计
消失的殖民村庄和神秘字符
浅析异步通信层的架构在ASP.NET 程序中的应用
基于Qt的安全即时通讯软件服务器端设计
智美兼具的精品——评测君和睿通Homates H10楼宇对讲室内门口机