第1号 644.545455
第2号 645.454545
第3号 595.833333
第4号 596.666667
首先FmtFile (fp, "第%d号 ",i)语句向文件输出弹丸编号,然后输出数据。应注意的是当第9号弹丸的编号和数据之间的间隔与第10号弹丸编号和数据之间的间隔不同,应注意格式的调整,上文代码中的省略号部分之上是针对弹丸编号为个位数的情况,当为两位数时要将FmtFile (fp, "第%d号 ",i)语句中"第%d号"之后的空格减少一个即可。当弹丸编号为三位数时,调整方法类似。省略号部分即为进行格式调整的程序。
另外,在数据存储开始之前要先禁用“数据显示”按钮以防误操作。数据存储结束后,应将下次测量相关的控件激活(“开始测量”、“时间基准”、“测试种类”、“区截装置”、“靶间距离”等)。
若希望继续进行测量,只要重新开始设计新一轮的测量相关的控件值,然后按下“开始测量”按钮即可。不需要再进行系统复位,在“开始测量”按钮的回调函数中包含了新一轮测量的复位代码。
3.2 在函数树面板中对测试模块寄存器组添加相应函数
3.2.1 基于VXI总线枪弹测试模块寄存器组的介绍
本软件的测试模块是用VXI总线配置寄存器设计的,所以有必要对各寄存器分配作以简要说明,具体如表1所示,这些寄存器由前面所述的逻辑地址选择器设置在A16地址空间中。
表1 VXI总线弹丸测试模块操作寄存器组
偏移地址 寄存器名称 属性
00H 识别(ID)寄存器 读
02H 器件类型寄存器 读
04H 状态/控制寄存器 读/写
06H 操作寄存器 写
08H 读/写主存储器寄存器 读/写
0AH 读/写辅存储器寄存器 读/写
0CH 弹丸数目寄存器 读
0EH 存储器地址寄存器 写
进行应用程序的编制,对读取的数据进行合理的处理并建立界面友好的仪器软面板实现显示与控制功能。
3.2.2 状态功能函数的添加
首先在函数树的动作/状态函数类(Action/Status Funcation)中添加转换状态值函数CSY_GET_zhuangtai。因为与弹丸速度测量相关的控件值(“测试种类”、“区截装置”、“时基”)均为选择型控件,控件的值并不能直接发送到操作寄存器,实现相应的控制。比如“时间基准”控件值为‘2’时,对应硬件中基准频率应选为1MHz,但是要在FPGA中获得1MHz的基准频率需要操作寄存器的D7、D8、D9位给出“101”的信号进行控制,所以要将用户界面中“计数基频”控件的值‘2’转换为能够控制操作寄存器的D7、D8、D9位的状态参数,然后将状态参数发送到操作寄存器即可。函数CSY_GET_zhuangtai就完成由各控件值到对应状态值的转换。其面板如图3-3图所示。其中,QUJIE、ZHONGLEI、SHIJI均为整形输入变量,分别对应用户操作面板中“区截装置”、“测试种类”、“时基”等控件的当前值;Instrument Handle是当前仪器的句柄值;zhuangtai为ViInt16型输出指针,将控件值转换后等待发送到操作寄存器的状态值;Status是状态返回值,返回此函数的执行状态。
图3-3.CSY_GET_zhuangtai函数面板 基于VXI总线枪弹杀伤力测试系统应用程序开发(12):http://www.751com.cn/jixie/lunwen_1973.html