WinCE用户程序的自动部署及配置

 2019-12-16     作者:刘乾坤    

  为了帮助用户提高生产效率,我们在《应用程序及配置文件的生产自动拷贝》一文中介绍了用户应用程序如何自动拷贝到主板Flash中的方法,以及如何自动更新用户自定义的开机画,文中提到的方法需要编写应用程序来实现。本文将介绍利用批处理文件来实现同样的功能,而不需要编写专用的应用程序,实现起来更为简单灵活。


  英创主板处于“调试模式”启动时,会查询系统的usbdisk根目录下是否有名为autotest.txt的配置文件,如果配置文件存在则会执行文件中指定的exe程序,下面的autotest.txt表示启动WinCE系统自带的命令行工具,并执行实现自动化配置的批处理文件autodeploy.bat。


  [LOCAL_MACHINE]

  DHCP="DisableDHCP"

  DefaultGateway="192.168.201.19" 

  IPAddress="192.168.201.215" 

  SubnetMask="255.255.255.0" 

  [USER_EXE]

  Name="\windows\cmd.exe"

  Parameters="/c \usbdisk\AutoDeploy.bat"


  下面是autodeploy.bat文件,看起来内容很多,但大多是输出提示信息,起关键作用的只有三行(红色字体,对应的注释为绿色文字),比如更新开机只需要执行\windows\lu \usbdisk\splash800480.bmp。拷贝用户程序数据只需要利用标准的copy命令即可。


  @echo off

  set info============== ESADT V1.0 ==============

  echo %info%

  \usbdisk\AutoDeploy\RETAILMSG.exe

  \usbdisk\AutoDeploy\RETAILMSG.exe %info%


  set info=== Emtronix system auto deploy tool ===

  echo %info%

  \usbdisk\AutoDeploy\RETAILMSG.exe %info%


  set info===== Code by Emtronix Dec 12, 2019 ====

  echo %info%

  \usbdisk\AutoDeploy\RETAILMSG.exe %info%

  echo. 


  rem 重新使能自动化配置功能

  \usbdisk\AutoDeploy\ReEnableAutoTest.exe


  rem 在以下添加用户要执行的内容


  set info=Update splash

  echo %info%

  \usbdisk\AutoDeploy\RETAILMSG.exe %info%

  rem 使用lu工具更新开机画面

  \windows\lu \usbdisk\splash800480.bmp

  echo. 


  rem 将U盘指定目录下的全部内容拷贝到nandflash

  copy \usbdisk\userProgram\*.* \nandflash

  echo.


  set info=Deploy complete.

  echo %info%

  \usbdisk\AutoDeploy\RETAILMSG.exe %info%


  rem 执行完成后暂停

  pause


  我们将上面例子用到的文件做成了一个工具包(内容如下所示),用户需要根据自己的需要编辑autodeploy.bat文件,然后将autodeploy.bat和autotest.txt文件放在U盘根目录,由于在autodeploy.bat中指定的程序路径为usbdisk\autodeploy,所以需要在U盘根目录下新建一个autodeploy文件夹,然后将要批处理中要执行的文件拷贝到autodeploy文件夹中。


WinCE用户程序的自动部署及配置.png


  将配置好的U盘连接到英创工控主板(为了防止出错,请只连接一个FAT32格式的U盘),让系统工作在"调试模式"启动,系统就会自动执行用户编写的批处理文件,自动完成相应的配置工作。在操作过程中建议连接显示屏和调试串口,以观察命令的执行情况。如果用户发现自己的批处理文件没有被执行,而检查了配置文件和U盘连接又全部正常,可手动执行一次ReEnableAutoTest.exe程序后再试。


  对于只是希望简单拷贝应用程序的用户来说,还有利用系统的update功能,连批处理文件也不需要编写。实现原理为:当系统处于“运行模式”启动时,如果nandflash目录下没有userinfo.txt文件,或userinfo.txt文件中没有指定exe程序时,系统会自动查找\usbdisk\update路径是否存在,如存在则将该路径下的所有文件(及子目录)拷贝到nandflash下,拷贝完成后系统会自动重启。对于用户新购买的主板可利用此方法快速的部署用户程序。