You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
3.4 KiB
88 lines
3.4 KiB
![]()
2 years ago
|
//
|
||
|
// RTKOTAProfile.h
|
||
|
// RTKOTASDK
|
||
|
//
|
||
|
// Created by jerome_gu on 2019/4/16.
|
||
|
// Copyright © 2019 Realtek. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#ifdef RTK_SDK_IS_STATIC_LIBRARY
|
||
|
#import "libRTKLEFoundation.h"
|
||
|
#import "RTKOTAPeripheral.h"
|
||
|
#import "RTKMultiDFUPeripheral.h"
|
||
|
#else
|
||
|
#import <RTKLEFoundation/RTKLEFoundation.h>
|
||
|
#import <RTKOTASDK/RTKOTAPeripheral.h>
|
||
|
#import <RTKOTASDK/RTKMultiDFUPeripheral.h>
|
||
|
#endif
|
||
|
|
||
|
|
||
|
NS_ASSUME_NONNULL_BEGIN
|
||
|
|
||
|
|
||
|
typedef NS_ENUM(uint8_t, RTKOTAAdvbud) {
|
||
|
RTKOTAAdvbudSingle,
|
||
|
RTKOTAAdvbudPrimary,
|
||
|
RTKOTAAdvbudSecondary,
|
||
|
};
|
||
|
|
||
|
|
||
|
/**
|
||
|
* A RTKOTAProfile object used for manage peripherals that are about to be upgraded.
|
||
|
*
|
||
|
* @discussion A RTKOTAProfile is a concrete subclass of RTKLEProfile, with APIs to create RTKOTAPeripheral instance and return RTKDFUPeripheral instances.
|
||
|
*
|
||
|
* To upgrade a remote device, you typically have a known CBPeripheral object represents a remote device to upgrade, call -instantiatePeripheralWithCBPeripheral: with the known CBPeripheral to get an RTKOTAPeripheral object. Then call -translatePeripheral:toDFUPeripheralWithCompletion: or -DFUPeripheralOfOTAPeripheral: to get an RTKDFUPeripheral object for start upgrade. Before call any methods, RTKOTAPeripheral object or RTKDFUPeriperahl object should be connected with RTKOTAProfile.
|
||
|
*/
|
||
|
@interface RTKOTAProfile : RTKLEProfile
|
||
|
|
||
|
// Instantiate OTAPeripheral from a known CBPeripheral object.
|
||
|
// You typically already have a CBPeripheral to upgrade within your CBCentralManager.
|
||
|
|
||
|
- (nullable RTKOTAPeripheral*)OTAPeripheralFromCBPeripheral:(CBPeripheral *)peripheral DEPRECATED_MSG_ATTRIBUTE("use -instantiatePeripheralWithCBPeripheral: instead");
|
||
|
|
||
|
/**
|
||
|
* Create and return a RTKDFUPeripheral object for silent upgrade.
|
||
|
*
|
||
|
* @note If a non-nil RTKDFUPeripheral object is return , you still need to call <code>-[RTKOTAProfile connectTo:]</code> to start connection with it, before you can start upgrade procedure.
|
||
|
*
|
||
|
* @returns A non-nil RTKDFUPeripheral object is returned if the peripheral support silent upgrade, otherwise nil is returned.
|
||
|
*/
|
||
|
- (nullable RTKDFUPeripheral*)DFUPeripheralOfOTAPeripheral:(RTKOTAPeripheral *)peripheral;
|
||
|
|
||
|
|
||
|
/// Synonymous with <code>-connectTo:</code>
|
||
|
- (void)connectToDFUPeripheral:(RTKDFUPeripheral *)peripheral;
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Make the remote device transition to a dedicated upgrade running mode for normal upgrade.
|
||
|
*
|
||
|
* @discussion This is a asynchronous method. When the transition complete, the handler parameter get called with a RTKDFUPeripheral object.
|
||
|
*
|
||
|
* @note When handler get called with a RTKDFUPeripheral object., you still need to call <code>-[RTKOTAProfile connectTo:]</code> to start connection with it, before you can start upgrade procedure.
|
||
|
*/
|
||
|
- (void)translatePeripheral:(RTKOTAPeripheral*)peripheral toDFUPeripheralWithCompletion:(void(^)(BOOL success, NSError *_Nullable err, RTKDFUPeripheral *_Nullable peripheral))handler;
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Scan for companion peripheral of the passed in peripheral object.
|
||
|
*
|
||
|
* @note Only used for RWS upgrade.
|
||
|
*/
|
||
|
- (void)scanCompanionPeripheralOf:(RTKOTAPeripheral *)peripheral withCompletionHandler:(void(^)(BOOL success, NSError*_Nullable err, RTKOTAPeripheral *_Nullable targetPeripheral))handler;
|
||
|
|
||
|
@end
|
||
|
|
||
|
|
||
|
|
||
|
@interface RTKOTAProfile (Protect)
|
||
|
|
||
|
/* Protected */
|
||
|
- (void)_scanDFUPerpheralOf:(RTKOTAPeripheral*)peripheral withCompletion:(void(^)(BOOL success, NSError *_Nullable err, RTKDFUPeripheral *_Nullable peripheral))handler;
|
||
|
|
||
|
@end
|
||
|
|
||
|
|
||
|
NS_ASSUME_NONNULL_END
|