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

 

很久很久之前,实验室的师兄使用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.后续

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

猜你喜欢

转载自www.cnblogs.com/jlutiger/p/9337826.html
今日推荐