}
其中,panel为各弹丸速度列表子面板的变量名;geshu为弹丸个数,用来控制表的行数;PANEL_sudu为表控件的变量名;MakePoint(1,i)函数将第一列第i行表单元内赋值v[i]。
各弹丸速度除了在列表中显示,还会在图形中更加直观的显示。图形使用弹丸个数做横坐标,弹丸速度做纵坐标,绘出弹丸的速度图形。因为每次测量时的弹丸个数并不相同,所以并不将横坐标设置为定值,而是每次根据弹丸个数进行设置。因弹丸速度是离散的,所以画出离散图。核心代码如下:
xmax=geshu+1;        // geshu为弹丸个数
SetAxisScalingMode (panelHandle,PANEL_GRAPH,VAL_XAXIS,VAL_MANUAL,1, xmax);               // 设置横坐标长度
PlotRectangle        (panelHandle, PANEL_GRAPH_HT, i+1-0.05, ymin, i+1+0.05,d[i], VAL_RED, VAL_RED); // 画离散图
用图形控件显示连发弹丸速度分布离散图如图3-10所示,以及弹丸速度列表如图3-11所示。由速度值,调用动能公式(4.5.1)和比动能公式(4.5.2)得到枪弹杀伤力测试数据如图3-12所示。
 
图3-10 连发弹丸速度分布图  图3-11 弹丸速度列表 图3-12 枪弹杀伤力测试所得数据
3.1.5 存储数据
因为存在硬件存储器中的本次测量数据在下一次测量前将被清零,所以要将已经转换为速度的数据存储到计算机上,一方面将数据保留以供下次查看,另一方面提供进一步使用高级数据处理软件进行数据处理时使用。例如存储的数据文件可以被MATLAB调用,进一步处理,也正因为存储的数据可以使用高级数据处理软件进行处理,在CVI程序中才只是计算出弹丸速度,给出平均速度并侧重于各种图形显示,而不是复杂的数据处理。如下图3-11所示为选择文件存储的用户界面函数库。图3-12为试验所测得的20发连发弹丸速度值的存盘数据。
  图3-11 选择文件存储的函数面板
                 图3-12 枪弹测试数据储存至TXT文档
数据存储程序核心代码如下:
err=FileSelectPopup("", "*.dat", "", "记录数据", VAL_OK_BUTTON,0, 1, 1, 0, filename);

if (err==0)        break;                   // 错处则跳出程序,否则打开文    
else fp = OpenFile (filename, VAL_WRITE_ONLY, VAL_APPEND, VAL_ASCII);  

for (i=1; i<10&&i<=geshu; i++)
{
FmtFile (fp, "第%d号    ", I );                 // 向文件输出弹丸编号
FmtFile (fp, "%f",       v[i]);
FmtFile (fp, "\n"           );
}
、、、、、、
FmtFile  (fp, "平均速度为:%f    ",sum_v );   // 输出每个弹丸的平均速度
FmtFile  (fp, "\n"                       );
CloseFile (fp                           );    // 关闭文件句柄        
首先跳出设置存储文件名窗口,使用者输入文件名后,打开选中文件(即输入的文件名命名的文件),并建立文件句柄。此后就可以向文件中写入数据,此处设置存储的文件格式如下:
上一篇:卷绕式真空镀膜机卷绕系统结构设计+CAD图纸
下一篇:SolidWorks交通路锥自动输送机构设计+文献综述

基于网络技术的转向架应力监测与评估

多层次总线下的煤矿安检...

RS-485总线的理论与实践【2945字】

profibus现场总线茬筛贮焦生...

基于ANSYS的螺纹连接受力与变形分析

基于3DMAX绞吸式挖泥船的动作仿真

基于轮-履变结构的轮椅式...

医院财务风险因素分析及管理措施【2367字】

C#学校科研管理系统的设计

神经外科重症监护病房患...

国内外图像分割技术研究现状

公寓空调设计任务书

志愿者活动的调查问卷表

中国学术生态细节考察《...

AT89C52单片机的超声波测距...

10万元能开儿童乐园吗,我...

承德市事业单位档案管理...