对一个老项目重新编写的前前言

Posted jlutiger

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对一个老项目重新编写的前前言相关的知识,希望对你有一定的参考价值。

 

很久很久之前,实验室的师兄使用vb编写了一个健康监测平台,在我研一的第一年,实验室因为和江苏某地有合作,需要用到这个平台,但是由于年代久远,vb调试起来出现了很多问题,后期加入新的功能也面临了困难。所以,需要将其使用其他语言进行搭建,考虑到项目的需要和个人精力等因素,决定使用c#对其进行实现。选择c#的原因其实很简单,就是它对界面开发很友好,之前也尝试使用java web、QT(C++)进行搭建,但是每一个功能入手起来都挺费力的,实验室还有其他任务需要完成,精力有限,最后选择了c#。

这个前前言便是写在着手搭建新平台的第三天,平台的一些功能已经实现,后续还需要不断的去完善,但是之前对vb的完善还是要记录一下的,完善老的平台是为了掌握平台的逻辑设计等等,另一个就是可以在新平台搭建成功之前作为备份。

下面便是前几天对老平台的完善记录:

技术分享图片

想法:

1.排除现有曲线的不足:

数据异常:数据库中出现连续的255,255数值,猜测为前期测试时数据上传时溢出导致的现象。

横坐标异常:语句中获取横坐标的为:.RowLabel = mdbrs.Fields("测量日期"),但是在数据库中时间的列表为“测量时间”,将其改为:.RowLabel = mdbrs.Fields("测量时间")即可。

2.优化曲线的设想:

1)画图后不显示数值,鼠标点击显示数值:

技术分享图片

显示的坐标值是以窗口左上角为零点的,使得纵坐标越往下数值越大。

选取几个纵坐标的点:

111——3630

110——3660

113——3600

118——3555

鼠标点击的位置不能与数值点完全对应,进行换算的话误差比较大。

2)将心率与血压分开:

新增加一个图,然后将心率画出来。

而将血压曲线中原有的心率去掉之后,出现了血压曲线注释错误的情况:

后来发现低压数值第一个应该为107,而曲线中第一个为93,93在数据库中是其最后一个数据。查看血压原始程序发现也存在这个问题,猜测是在执行绘制曲线的循环的时候,发生了移位。

解决:将绘制低压的for循环单独拉出来,数据正常读取。

技术分享图片

但是线段注释还是只有低压,原因是:

技术分享图片

在绘制曲线的时候,会执行读取数据的循环,而程序里注释曲线名称所用到的.ColumnLabel = "低压"会覆盖掉之前的注释,所以将注释曲线的函数放在执行读取数据绘制曲线的循环之前,便会避免这个问题。

技术分享图片

 

另一方面,在心率的曲线中出现不显示坐标的问题。

技术分享图片

发现mschart中有第二Y轴的设置,便改变思路,使用第二Y轴:

技术分享图片

左边为血压轴,右边为心率轴,为了将心率与血压区分开,根据数据库中各类型的数值大小,将血压曲线提高,将心率曲线降低,即:降低血压轴的范围,提高心率轴的范围。

 技术分享图片

将心率用柱状图表示出来:

MSChart.chartType = VtChChartType2dCombination MSChart.Plot.SeriesCollection.Item(1).SeriesType = VtChSeriesType2dLine

MSChart.Plot.SeriesCollection.Item(2).SeriesType = VtChSeriesType2dLine

MSChart.Plot.SeriesCollection.Item(3).SeriesType = VtChSeriesType2dBar

更改左右纵坐标范围:

  .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 200

  .Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0

  .Plot.Axis(VtChAxisIdY2).ValueScale.Maximum = 600

  .Plot.Axis(VtChAxisIdY2).ValueScale.Minimum = 0

技术分享图片

3.后续改进

减少不必要按键操作。

1)绘制曲线时选中条件就绘制,不用点击确定

首先设置列表选中事件:

技术分享图片

然后建立数据库连接,之后绘制曲线。

技术分享图片

 

 

出现错误:

技术分享图片

原因是在测试列表功能的时候,是将之前数据库连接的内容复制过去,而在之前的选择按钮中已经存在连接,在删除选择按钮及其相应功能,仅保留列表之后,功能恢复正常。

技术分享图片

4.后续

对老平台的修改记录就记录这些,这个暑假的主要精力便放到了新平台的制作上,搭建过程中的错误以及一些知识也会记录在博客中。

 

以上是关于对一个老项目重新编写的前前言的主要内容,如果未能解决你的问题,请参考以下文章

如果进程死了,如何编写 bash 脚本来重新启动进程?

vue2.x老项目typescript改造过程经验总结

React 重新渲染指南

是否可以在颤动的可重新排序的列表视图中禁用对单个项目的重新排序?

对每个项目进行投票后重新计算排名

Linux系统裁减之,制作一个极度精简的Linux-5-重新编译login去除对pam模块的依赖