// // BM40BleProtocol.h // AILinkBleSDK_Example // // Created by LarryZhang on 2023/7/28. // Copyright © 2023 zhengzida. All rights reserved. // #import @class ELAILinkBleManager; NS_ASSUME_NONNULL_BEGIN typedef NS_ENUM(NSUInteger, BM40BleCmdCode) { BM40BleCmdCodePageWriteOnly97 = 0x97, BM40BleCmdCodeAllErase98 = 0x98, BM40BleCmdCodePagesReadChecksum81 = 0x81, }; typedef NS_ENUM(NSUInteger, BM40BleCmdAck) { BM40BleCmdAckCmdDoneA4 = 0xA4, BM40BleCmdAckPagesCsTrueA5 = 0xA5, BM40BleCmdAckPagesCsFailA6 = 0xA6, }; @interface BM40BleProtocol : NSObject + (NSData *)startOTA:(ELAILinkBleManager *)manager; + (NSData *)endOTA:(ELAILinkBleManager *)manager; + (NSData *)eraseAll:(ELAILinkBleManager *)manager size:(UInt16)size; + (NSData *)pageWrite:(ELAILinkBleManager *)manager data:(NSData *)data address:(UInt16)address; + (NSData *)pageReadChecksum:(ELAILinkBleManager *)manager pageChecksum:(UInt8)pageChecksum address:(UInt16)address; + (UInt8)checksum:(Byte *)bytes length:(UInt8)length; @end NS_ASSUME_NONNULL_END