123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- //
- // SBTFirmwareUpdate.swift
- // SolarBT
- //
- // Created by weclouds on 2019/9/23.
- // Copyright © 2019 weclouds. All rights reserved.
- //
- import UIKit
- class SBTFirmwareUpdate: NSObject {
- static let share :SBTFirmwareUpdate = SBTFirmwareUpdate()
- var dataSource :[String]?
- func end(_ resposeStr :String) {
- let encode = resposeStr as String
- let encode1 = encode.fromBase64()
- let encode2 = encode1?.subString(start: 3)
- // print(encode2)
- let code = encode2?.fromBase64()
- // log.debug(code)
- log.debug("字节数 \(code!.count)")
- let bytes = code!.count / 2048
- log.debug("大小\(bytes)")
- for i in 0..<bytes{
- let data = code?.subString(start: i * 2048, length: 2048)
- // log.debug("第\(i)包 dataCount \(data!.count)")
- let complementCode = 255 - (i + 1)
- let cmd = "02" + String(format: "%02x", i + 1) + String(format: "%02x", complementCode)
- // log.debug("下发指令\(cmd)")
- let crcStr = UUUtils.crc16Test(data!)
- let sendCMD = cmd + crcStr!
- self.dataSource?.append(sendCMD)
- }
- //最后一包
- var lastPack = code?.subString(start: 2048 * bytes)
- log.debug("第83包 dataCount \(lastPack!.count)")
- let restCont = 2048 - lastPack!.count
- for _ in 0..<(restCont/2){
- lastPack?.append("1a")
- }
- log.debug("data=== \(lastPack!.count)")
- let complementCode = 255 - (bytes + 1)
- let cmd = "02" + String(format: "%02x", bytes + 1) + String(format: "%02x", complementCode)
- // log.debug("下发指令\(cmd)")
- let crcStr = UUUtils.crc16Test(lastPack!)
- let sendCMD = cmd + crcStr!
- // log.debug("每包字节数 \(sendCMD.count / 2)")
- log.debug(sendCMD)
- self.dataSource?.append(sendCMD)
- doSmallPack(self.dataSource!)
- }
-
- func doSmallPack(_ datasource :[String]) {
- for i in 0..<datasource.count {
- let cmd = datasource[i]
- log.debug("cmd")
- }
- }
-
- }
|