现在的位置: 首页 > 综合 > 正文

项目问题总结

2018年01月31日 ⁄ 综合 ⁄ 共 1616字 ⁄ 字号 评论关闭

1.1    基于wince下的手持终端代码优化

采用的架构如下所示:

1.      C#中的“DataTable”用完后一定要关闭。如果没有关闭,则会造成相关资源没有关闭,造成程序崩溃。关闭一定要在抛出异常的finally中进行关闭,如下所示:

Finally

            {

                 if (dt != null)

                {

                    dt.Dispose;

                    dt = null;

                 }

            }

2.      扫描头程序,借助第三方软件去实现。省得自己去调用扫描头相关程序,还写的不正确!!目前采用的是“DataWedge”,可以调整声音、扫描的条码类别等,非常方便。

3.      减少手持终端与webservice的交互。争取做到一次人机交互调用一次webservice。把业务逻辑和业务判断放在webservice中去实现,而不是在设备端调用多次webservice,在设备端进行业务判断或业务逻辑处理。

4.      Webservice返回时,尽量不要返回“DataTable”,而是要返回字符串。

5.      调用webservice时,如果时间过长,考虑加上超时设置。以给操作人员及时的反馈。

6.      IIS7工作进程数问题。当一个或两个手持终端调用时,没有问题。但一旦手持终端数量多了,调用webservice频繁了,就报莫名的错误。解决方法就是增加IIS7中的工作进程数。

1.2    Datamax打印机打印张数比实际要少的问题。

现象:一次发送超过100个打印条码的命令,打印机每次打印不到100张。

解决过程:

1.      升级打印机的本身软件系统版本,没有效果。

2.      要求厂家派硬件技术工程师到现场查看硬件是否有问题?厂家技术人员最终结论说硬件没问题。

3.      修改应用软件发送命令规则,把超过100个条码的打印命令,分成多批,每批少于50个条码打印命令。发送完后等打印机打印完成再发送下一批命令(发送完后,程序进行休眠,等打印机打印完成后,再执行发送下一批),最终问题通过此种方式解决了。

1.3    生成并发送二维码图片给”马肯依玛士X60热转印打码机”

1.      解决通讯问题:建立“TCP”的“Socket”,采用“ASCII”编码的方式把命令字符串转成字节数组,发送给打印机。注意“STX”为“ASCII”编码中的控制字符,对应“ASCII”值为“2”。方法都对了,但就是打印机没有反映,最后,没有办法了,换了另一台打印机一试就通讯成功了。

2.      解决传送数据(变量、图片)的问题:

通讯成功后,之后看了“NGPCL”协议传变量的方式,变量可以传了,但变量中有中文,再次折腾采用” Unicode”编码方式传送命令;但最后被告知传送二维码内容中不能包含中文,所以传变量的方式放弃了。

改用传图片的方式,但图片如何传给打印机?把图片读到字节数组中,然后再” Base64”成字符串。方法是对了。但传过去之后,打印机老是报错。最后发现有些图片可以传过去,有些传不过去。终于发现了这些图片的区别“单色位图”,打印机只能接收“单色位图”,但windows下生成的图为“24位”或“32位”的。那就生成单色位图呗,在网上找N多算法不好用,最后没有办法了,应用程序调用画图软件生成单色位图,然后再发送给打印机。但此种方法老是不稳定,最后一同事找了个正确的算法,还是生成单色位的图片。到此问题终于解决。

1.4    手持设备扫描二维码效率分析

Ø  二维码的包含内容的多少,内容越多,扫描越慢。

Ø  二维码打印的质量:二维码打印的浓度越高,识别就越慢。

Ø  打印的材质:材质为PET材质的,铜板纸应该识别率更高。

Ø  硬件识别率。

Ø  软件识别率。

抱歉!评论已关闭.