首页 新闻 搜索 专区 学院

对象传递问题

0
悬赏园豆:100 [待解决问题]

问题是这样的,准备做一个通用测试系统,测试步骤几乎相对独立,比如下面:

1.提示作员扫描条码SN

2.控制治具上电,操作单片机COM2口

3.固件烧录

4.发送UUT指令(COM3)口检查版本等

5.其实UUT指令(COM3)测试等

6.控制治具断电,操作单片机COM2口

这些动作的实现原本已经完成,但感觉效率不高,因为串口的操作每一步都有打开关闭动作。

 

现修改如下:

 

1.提示作员扫描条码SN 保存供后面使用

2.初始化 串口 COM2, COM3

2.控制治具上电,COM2 引用上面初始化好的

3.固件烧录

4.发送UUT指令(COM3 引用上面初始化好的)口检查版本等

5.其实UUT指令(COM3 引用上面初始化好的)测试等

6.控制治具断电,COM2引用上面初始化好的

 

所以:我把功能都做成了Assembly dll,准备通过反射调用实现,当然上面的功能不考虑通用性也不难,但是问题是,动态调用可能下次就不是SN 及COM要在后面引用了,如何通过动态全局变量传递呢?

 

如果熟悉Teststand里面有个FileGlobal就明白我什么意思了,前面定义后面引用,谢谢!

如果熟悉高通,也知道里面有个QGlobalVariable等,如下,如何通过XML实现呢?求大神!

 

      <QGlobalVariable>
        <Name>2.4GTxPowerMode</Name>
      </QGlobalVariable>
      <QGlobalVariable>
        <Name>BT_ADDRESS</Name>
      </QGlobalVariable>

TabZ的主页 TabZ | 初学一级 | 园豆:36
提问于:2017-08-28 13:07
< >
分享
所有回答(2)
0

实战经验分享之C#对象XML序列化,看看我篇文章可以帮到你么。http://www.cnblogs.com/datacool/p/datacool_XmlSerializer.html

你的问题,看的不是太明白。感觉可以用接口来隔离各种强依赖,然后动态Load Assembly去动态获取Assembly里的实现了接口的对象。想通用也可以使用泛型委托,Action,FunC等

数据酷软件 | 园豆:130 (初学一级) | 2017-08-29 16:05

感谢回复!

其它帖子我都给分,这个内容看上去很多,但实际只有一个全局变量定义与传递问题,没有实际解决问题的我都没有办法给分,解决的给100分,希望理解。

支持(0) 反对(0) TabZ | 园豆:36 (初学一级) | 2017-09-08 14:52
0

SerialPort的反序列化应该不是那么容易的。

你的测试程序需要支持多线程吗?如果不需要,为什么不把SN, COM2,COM3资源直接记忆在dll里面?

zbbfb2001 | 园豆:217 (菜鸟二级) | 2017-08-31 17:44

动态的输入的SN,记忆在dll里面,显然不合适,感谢回复!

其它帖子我都给分,这个内容看上去很多,但实际只有一个全局变量定义与传递问题,没有实际解决问题的我都没有办法给分,解决的给100分,希望理解。

支持(0) 反对(0) TabZ | 园豆:36 (初学一级) | 2017-09-08 14:53

@TabZ: 在实际项目是可以这么做的。

例如你创建一个SequenceExecutor类在dll中,在创建TestStand test sequence时,直接调用SequenceExecutor的各种方法。例如打开串口后,不管是Handle,还是SerialPort都是SequenceExecutor的实例变量,这样你在接下来的调用各种方法时就不需要传递这些实例变量了。

(SN, SerialPort等实例变量可以在PreUUT时重置到invalid状态。但SerialPort管理也可以放到更高的PreUUTLoop如果可以的话)

支持(0) 反对(0) zbbfb2001 | 园豆:217 (菜鸟二级) | 2017-09-11 14:19

@zbbfb2001: 

感谢回复及讲解,Teststand中我是能够很好的处理这个问题的,但是现在是由于版权的问题我们不能用Teststand,我想自己用C#做一个简易版的,只支持调用.Net的库,我之所以提这样的问题,是因为想借鉴Teststand的做法, 所以我的问题如何在C#中做这种效果,感谢!

支持(0) 反对(0) TabZ | 园豆:36 (初学一级) | 2017-09-12 10:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册