APP下载

基于微信平台的边坡稳定计算程序开发

2019-08-01陈国周詹素华陈为群

数字技术与应用 2019年4期
关键词:程序开发微信小程序微信平台

陈国周 詹素华 陈为群

摘要:微信平台为程序开发者提供了强大的开发工具,适合用来开发移动互联的边坡稳定计算程序。本文介绍了微信平台在移动端程序开发方面的优势,给出边坡工程移动端程序开发的流程图以及详细步骤,包括图形实时显示方法、计算模块的代码编写、微信小程序的预览及发布流程,最后形成了程序扫描码,读者直接用微信扫码可以进行边坡稳定计算。

关键词:边坡工程;计算程序;微信平台;微信小程序;移动端软件;程序开发

中图分类号:TU43 文献标识码:A 文章编号:1007-9416(2019)04-0189-03

0 引言

滑坡在我国是常见的地质灾害,因此边坡工程是岩土工程中经常遇到的工程类型,很多较成熟的商业软件都提供了这方面的计算模块,如FLAC、Plaxis、Geostudio、理正岩土、同济启明星、MIDAS等,这些软件可以完成较为复杂的边坡工程设计[1,2]。也有一些研究人员使用各种程序语言开发了相关的计算软件[3-5]。随着移动互联时代的来临,用户需要更加方便快捷的计算工具,如果能使用随身携带的手机移动端来计算,将是个很方便的方法。黄宏伟预测,利用云计算技术,岩土工程专业计算分析软件将由产品模式转变为服务模式,这样更易于推广,能更好地满足客户需求[6]。杨敏认为,在未来基于网络的社会中,软件的服务将有一个重要特征:软件产品与服务融为一体,例如在线计算、查询,直接通过网络实现该功能,即软件本身就是以服务的形式存在[7]。崔年治认为在软件开发方面,应该以共享数据为连接纽带,把移动技术、云存储、云计算、BIM、物联网等各种新技术充分贯通,集成应用,可节约出大量的时间去提高设计的质量[8]。

笔者认为在移动互联时代,岩土工程的专业软件会分化,一个方向是向更复杂的多相耦合、多工种协同去发展,需要更大的内存、更快的计算能力;另一个方向则是走去中心化的道路,把较简单的计算功能(比如边坡稳定的计算公式)转移到移动端,以方便岩土工作者使用[9]。本文介绍了基于微信平台的边坡稳定计算软件开发过程与使用效果。

1 微信小程序简介

微信公众平台是腾讯公司打造的一个综合平台,提供微信公众号及微信小程序的注册开发。依托微信平台的小程序开发,可以通过尽可能简单、高效的方式让开发者在微信中开发具有原生APP体验的服务。微信小程序是基于数据驱动的模式,有很多组件(视图组件)可以选用,但是没有window、document的概念,因此无法使用Dom库,如JQuery。

程序开发者需要使用腾讯公司提供的“开发者工具”,来完成小程序创建和代码编辑。开发者工具在电脑上安装完成后,打开并使用微信扫码登录。选择创建“项目”,填入申请到的AppID,设置一个本地项目的名称,比如“基坑工程项目”,并选择一个本地的文件夹作为代码存储的目录,点击“新建项目”就开始了程序的编写[10]。

2 微信小程序框架

微信小程序框架的核心是一個响应的数据绑定系统。整个系统分为两块,即视图层(View)和逻辑层(App Service),如图1所示,并在视图层与逻辑层间提供了数据传输和事件系统,可以让开发者可以方便地聚焦于数据与逻辑上。

框架可以让数据与视图非常简单地保持同步。当做数据修改的时候,只需要在逻辑层修改数据,视图层就会做相应的更新。框架还提供了丰富的微信原生API,可以方便的调起微信提供的能力,如获取用户信息,本地存储,支付功能等[11]。

在进行移动端软件开发时,会用到多个页面,比如边坡工程至少需要土层输入页面、边坡尺寸页面、支护页面、计算结果页面等等。而微信小程序框架管理了整个程序的页面路由,可以做到页面间的无缝切换,并给以页面完整的生命周期。开发者需要做的只是将页面的数据、方法及生命周期函数注册进框架中,其他的一切复杂的操作都交由框架处理。

3 程序流程及其实现

3.1 程序流程图

根据所要实现的功能,笔者给出程序的流程图如图2所示。从流程图可以看出,程序中有较多的页面跳转与返回,因为手机屏幕相对电脑屏幕来说小了很多,需要通过多个页面来实现特定的功能。

3.2 程序实现

3.2.1 图形的实时显示

在移动端软件中,友好的图形界面是必不可少的,微信小程序中的绘图和Android、OS等移动开发是相同的,都是创建个上下文,在画布canvas上画出图形。canvas标签默认宽度为300px,高度为225px,但我们希望画面随着用户的手机屏幕的大小而自动变化,这就需要调用手机屏幕的宽度及高度尺寸,代码如下所示:

var app = getApp();

var context = null;

var isButtonDown = false;

var canvasw = 0;

var canvash = 0;

wx.getSystemInfo({

success: function (res) {

canvasw = res.windowWidth;

canvash = res.windowHeight;

}

});

画布canvas就像是数学上的坐标轴,以屏幕左上角为圆点,X轴向右为正,Y轴向下为正(这点和数学上相反的)。

3.2.2 计算模块

边坡稳定计算软件的核心内容是其计算模块,该模块属于小程序的逻辑层,是用JavaScript编写的,放在后缀为js的文件里。逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈。在JavaScript 的基础上,微信小程序有自己的特点:①增加 App 和 Page 方法,进行程序和页面的注册。②提供丰富的API,如扫一扫,支付等微信特有能力。③每个页面有独立的作用域,并提供模块化能力。④开发者写的所有代码最终将会打包成一份 JavaScript,并在小程序启动的时候运行,直到小程序销毁。下面以土压力系数计算为例,代码如下:

//KaSoil土层主动土压力系数,KpSoil被动土压力系数

var KaSoil = [10];

var KpSoil = [10];

for (var i = 0; i < NumberSoilLayer; i++) {

KaSoil[i] = Math.pow(Math.tan(Math.PI * (45 - 0.5 * soilPara[i][2]) / 180), 2);

KpSoil[i] = Math.pow(Math.tan(Math.PI * (45 + 0.5 * soilPara[i][2]) / 180), 2);

//

}

4 程序效果

4.1 程序的预览与发布

开发者可以使用开发工具来预览小程序,检查小程序在移动客户端上的真实表现。点击开发工具顶部操作栏的预览按钮,开发工具会自动打包当前项目,并上传小程序代码至微信的服务器,成功之后会在界面上显示一个二维码。使用微信扫码即可在手机客户端上看到小程序的真实表现,并且在手机上使用。由于最终程序是运行于微信平台,为了保证小程序的质量,以及符合相关的规范,小程序的发布需要经过腾讯公司审核[12]。点击开发者工具顶部操作栏的上传按钮,填写版本号以及项目备注,上传代码提交审核。审核通过之后,需要开发者手动点击发布,小程序才会发布到线上提供服务。用户要使用该程序,只需在手机的微信里搜索“土木计算”小程序,打开之后就可以使用。或者用微信扫码图3所示的小程序二维码,直接进入程序首页。

4.2 程序运行效果

在手机微信里打开“土木计算”小程序(如图4所示),点击里面的“边坡稳定分析”模块,就进入“边坡稳定计算”的界面,输入相关的土层参数、边坡尺寸参数,然后点击“计算”,这时程序会提示是否需要支护,如果需要支护则输入锚杆参数,再点击“计算”。

输入边坡高度为45m,边坡水平投影长度为66m。滑裂面与水平夹角25度。土体参数容重20kN/m3,粘聚力18.5kPa,摩擦角15°,计算出无支护状态下边坡稳定系数是0.91,不能满足规范的稳定安全要求。接下来增加支护措施,点击“输入支护信息”,输入锚杆的排数、单根锚杆的锚固力、锚杆与水平的夹角及锚杆的水平间距。这些数据可以反复调整,比如当锚杆排数为11排、单根锚固力为1000KN、锚杆水平夹角未20度、锚杆水平间距为4m时(如图5所示),计算得到的稳定系数是1.34,满足规范的要求。

5 结语

本文基于微信平台开发了边坡稳定计算程序,主要得出以下结论:

(1)使用微信平台提供的开发工具,可以开发出边坡稳定计算程序,经几百位用户的试用,该程序可以满足基本的计算要求。

(2)该程序运行在手机移动端,不必下载安装,直接在微信里打开即可计算。程序本身大小不足1M,基本对智能手机内存没有影响。

(3)由于微信平台对程序容量的限制,该程序属于轻便型的应用,更加复杂的功能,比如自动生成计算书还无法实现。

本程序只是应用了微信平台所提供的一部分工具,还有很多微信平台的潜力没有充分挖掘出来,计算程序还有待于后续进一步完善。

参考文献

[1] 聂磊,张银兴.理正深基坑及岩土软件使用的若干问题探讨[J].工业建筑,2016,46(增刊):515-517.

[2] 李方成,郭利娜,胡斌,蒋海飞,徐海清.基于MIDAS软件探讨施工工序对深基坑稳定性的影响[J].长江科学院院报,2013,30(3):49-55.

[3] 陈国周.岩土锚固工程中若干问题的研究[D].大连理工大学,2008.

[4] 马郧,魏志云,徐光黎,董家兴,李受祉.基坑双排桩支护结构设计计算软件开发及应用[J].岩土力学,2014,35(3):862-870.

[5] 陈国周,张建勋,贾金青.岩质边坡锚杆支护的三维稳定分析及工程应用[J].山东理工大学学报,2010,24(2):12-15.

[6] 黄宏伟,聂新尧.云计算为岩土工程带来的机遇与挑战[C].第三届全国工程风险与保险研究学术研讨会,2014:183-187.

[7] 杨敏,肖珂,张俊峰.岩土工程软件的发展方向[J].岩土工程界,2001,10(4):18-19.

[8] 崔年治.BIM思想在边坡治理分析软件中的应用[J].工程勘察,2017年增刊(1):90-95.

[9] 陈国周,刘春亮,江凡.岩土工程移动端程序开发[J].建筑科学,2018,34(sup):95-99.

[10] 易偉.微信小程序快速开发[M].北京:人民邮电出版社,2017:28-29.

[11] 李骏,边思.微信小程序开发入门及案例详解[M].机械工业出版社,2017.

猜你喜欢

程序开发微信小程序微信平台
APP应用程序开发模式探究
基于TestStand的自动检测程序开发
基于嵌入式系统Windows CE的应用程序开发
基于App inventor 2手机程序开发过程的学习与实——以“喵喵定时器”APP开发为例
当图书馆遇上微信小程序
基于微信平台的高中物理“翻转课堂”教学初探