由网上开源Ymodem代码修改而来,根据与服务器的通信协议以及传感器的协议做出以下修改: 1、定期查询version文件中的版本号version文件由update-engine工程中的updata进程负责下载 2、定期向服务器查询当前传感器的版本号,并于version中的版本号做对比 3、版本不一致,则进行升级 4、根据与传感器的协议添加了升级失败时的失败代码的处理 以下时原工程的readme内容,有些方法可能失效: # ymodem linux c ymodem ### 在调用receive/send时,需要先设置好struct ymodem的几个回调函数.如ymodem_test中. ### help ``` /userdata/test # ./ymodem -h Usage : ./ymodem [options] options: eg send Ymodem: ./ymodem -d /dev/ttyS0 -s /demo/bin/SE-app2.bin eg receive Ymodem: ./ymodem -d /dev/ttyUSB0 -d device path.设置设备名,默认/dev/ttyUSB0. -s send Ymodem, receiving mode if not set.发送文件,如果不选,默认为接收文件 -t Set getchar timeout,def:10(1s), 1=100ms.设置getchar超时,1为100毫秒,默认10=>1s. --help display specific types of command line options. ``` ### recevice file ``` /userdata/test # ./ymodem -d /dev/ttyUSB0 dev path: /dev/ttyUSB0 open dev: /dev/ttyUSB0 Receice Ymodem! C C C SOH 00 FF Data[128] CRC CRC ACK C file name : xymodem.pdf, size : 53245 STX 01 FE Data[1024] CRC CRC ACK STX 02 FD Data[1024] CRC CRC ACK . . . STX 33 CC Data[1024] CRC CRC ACK STX 34 CB Data[1024] CRC CRC ACK EOT NAK EOT ACK C SOH 00 FF Data[128] CRC CRC ACK Recevice complete! file: xymodem.pdf, size: 53245 /userdata/test # ``` ### send file ``` /userdata/test # /userdata/test # ./ymodem -d /dev/ttyUSB0 -s xymodem.pdf dev path: /dev/ttyUSB0 send file: xymodem.pdf. open dev: /dev/ttyUSB0 Send Ymodem! file: xymodem.pdf CAN CAN C file name: xymodem.pdf, size: 53245 SOH 00 FF Data[128] CRC CRC ACK C STX 01 FE Data[1024] CRC CRC ACK STX 02 FD Data[1024] CRC CRC ACK . . . STX 33 CC Data[1024] CRC CRC ACK STX 34 CB Data[1024] CRC CRC ACK EOT NAK EOT ACK C SOH 00 FF Data[128] CRC CRC ACK Transfer complete! ```