summaryrefslogtreecommitdiff
path: root/libs/ihealth-sdk/ios/ReactNativeIOSLibrary/Communication_SDK/Headers/SDKUpdateDevice.h
blob: be07c02468ac4b277dd27dedcd8be4218c307129 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
//
//  SDKUpdateDevice.h
//  iHealthDemoCode
//
//  Created by daiqingquan on 16/7/27.
//  Copyright © 2016年 zhiwei jing. All rights reserved.
//

#import <Foundation/Foundation.h>

/**
 UpdateDeviceError
 */
typedef NS_ENUM(NSUInteger, UpdateDeviceError) {
    /// UpdateNetworkError
    UpdateNetworkError=200,
    /// Before starting the upgrade must go to query version first
    UpdateOrderError=201,
    /// UpdateDeviceDisconnect
    UpdateDeviceDisconnect = 300,
    /// UpdateDeviceEnd
    UpdateDeviceEnd = 301,
    /// UpdateInputError
    UpdateInputError=302,
    /// cannot update
    NOUpdateUpgrade=400,
};

/**
 UpdateModelStatus
 */
typedef NS_ENUM(NSUInteger, UpdateModelStatus) {
    /// not busy
    UpdateModelStatusFree = 1,
    /// busy
    UpdateModelStatusBusy
};

/**
 UpdateDeviceType
 */
typedef NS_ENUM(NSUInteger, UpdateDeviceType) {
    /// AM3
    UpdateDeviceType_AM3 = 1,
    /// AM3S
    UpdateDeviceType_AM3S,
    /// AM4
    UpdateDeviceType_AM4,
    /// PO3
    UpdateDeviceType_PO3,
    /// HS4
    UpdateDeviceType_HS4,
    /// BP5S
    UpdateDeviceType_BP5S,
    /// ECG
    UpdateDeviceType_ECG,
    /// ABPM
    UpdateDeviceType_ABPM,
    /// HS2
    UpdateDeviceType_HS2,
};


/**
 DisposeUpdateVersionResult

 @param updateVersionDic information dictionary
 */
typedef void (^DisposeUpdateVersionResult)(NSDictionary * updateVersionDic);

/**
 DisposeUpdateErrorBlock

 @param errorID UpdateDeviceError enum
 */
typedef void (^DisposeUpdateErrorBlock)(UpdateDeviceError errorID);

/**
 UpdateModuleState

 @param updateModuleState UpdateModelStatus enum
 */
typedef void (^UpdateModuleState)(NSNumber*updateModuleState);

/**
 DisposeEndUpdateResult

 @param endUpdate <#endUpdate description#>
 */
typedef void (^DisposeEndUpdateResult)(NSNumber* endUpdate);

/**
 DisposeDownloadFirmwareStart
 */
typedef void (^DisposeDownloadFirmwareStart)(void);

/**
 DisposeDownloadFirmwareFinish
 */
typedef void (^DisposeDownloadFirmwareFinish)(void);

/**
 DisposeUpdateProgress

 @param progress 0-100
 */
typedef void (^DisposeUpdateProgress)(NSNumber *progress);

/**
 DisposeUpdateResult

 @param updateResult <#updateResult description#>
 */
typedef void (^DisposeUpdateResult)(NSNumber*updateResult);

/**
 TransferSuccess

 @param transferSuccess <#transferSuccess description#>
 */
typedef void (^TransferSuccess)(NSNumber*transferSuccess);

/**
 DisposeDownloadProgress

 @param progress 0-100
 */
typedef void (^DisposeDownloadProgress)(NSNumber *progress);


/**
 SDKUpdateDevice
 */
@interface SDKUpdateDevice : NSObject
    
@property(nonatomic,strong)NSString *currentDeviceUUID;
    
/**
 * Initialize SDKUpdateDevice controller class
 */
+(SDKUpdateDevice*)shareSDKUpdateDeviceInstance;

/**
 Get device Version and cloudDeviceVersion.

 @param uuidString device UUID
 @param updateVersionDic include:DeviceType、DeviceVersion、DeviceStatus(1:YES,0:NO)、CloudDeviceVersion、KeepUpdateFlag(flag,0:firstUpdate,1:go on update)、CloudUpdateServer(1:enforce update 0: optional update)、UpdateProtocolVersion(100:Equipment upgrades returned directly after the success or failure 101:Upgrade is complete only on behalf of the firmware successfully transferred, reconnect the device after the upgrade success or failure).
 @param disposeErrorBlock Update error codes, see UpdateDeviceError error descriptions.
 @note DeviceVerion means firmware version in Flash, may not match with the current running firmware version.
 */
-(void)commandGetUpdateVersionWithDeviceUUID:(NSString*)uuidString DisposeUpdateVersionResult:(DisposeUpdateVersionResult)updateVersionDic  DisposeErrorBlock:(DisposeUpdateErrorBlock)disposeErrorBlock;
/**
 * Get Update Module State.
 * @param updateModuleState  (0:free,1:uploading)
 */
-(void)commandGetUpdateModuleState:(UpdateModuleState)updateModuleState;
/**
 Stop Update.
 @param uuidString device UUID
 @param endUpdateResult (bool 1:sucess,0:fail)
 @param disposeErrorBlock Update error codes, see UpdateDeviceError error descriptions.
 */
-(void)commandEndUpdateWithDeviceUUID:(NSString*)uuidString DisposeEndUpdateResult:(DisposeEndUpdateResult)endUpdateResult  DisposeErrorBlock:(DisposeUpdateErrorBlock)disposeErrorBlock;

/**
 Update Device.
 @param uuidString device UUID
 @param disposeDownloadFirmwareStart  start update firmware from cloud.
 @param disposeDownloadFirmwareFinish finish update firmware from cloud.
 @param disposeUpdateProgress   Update Device progress(0-100).
 @param disposeUpdateResult  Update Device result(bool 1:sucess,0:fail)Applicable to the protocol of 100.
 @param transferSuccess  TransferSuccess Applicable to the protocol of 101.
 @param disposeErrorBlock Update error codes, see UpdateDeviceError error descriptions.
 */

-(void)commandStartUpdateWithDeviceUUID:(NSString*)uuidString DownloadFirmwareStart:(DisposeDownloadFirmwareStart)disposeDownloadFirmwareStart DisposeDownloadFirmwareFinish:(DisposeDownloadFirmwareFinish)disposeDownloadFirmwareFinish DisposeUpdateProgress:(DisposeUpdateProgress)disposeUpdateProgress DisposeUpdateResult:(DisposeUpdateResult)disposeUpdateResult TransferSuccess:(TransferSuccess)transferSuccess  DisposeErrorBlock:(DisposeUpdateErrorBlock)disposeErrorBlock;

/**
 Update Device with local file

 @param uuidString device UUID
 @param deviceType UpdateDeviceType enum
 @param infoFilePath path of info file
 @param upadteFilePath path of update file
 @param fileCRC info file CRC
 @param disposeUpdateProgress Update Device progress(0-100)
 @param disposeUpdateResult Update Device result(bool 1:sucess,0:fail)Applicable to the protocol of 100.
 @param transferSuccess TransferSuccess Applicable to the protocol of 101.
 @param disposeErrorBlock Update error codes, see UpdateDeviceError error descriptions.
 */
-(void)commandStartUpdateWithDeviceUUID:(NSString*)uuidString DeviceType:(UpdateDeviceType)deviceType InfoFilePath:(NSString*)infoFilePath UpadteFilePath:(NSString*)upadteFilePath FileCRC:(NSNumber*)fileCRC DisposeUpdateProgress:(DisposeUpdateProgress)disposeUpdateProgress DisposeUpdateResult:(DisposeUpdateResult)disposeUpdateResult TransferSuccess:(TransferSuccess)transferSuccess  DisposeErrorBlock:(DisposeUpdateErrorBlock)disposeErrorBlock;

/**
 Update Device showing download progress

 @param uuidString device UUID
 @param disposeDownloadFirmwareStart start update firmware from cloud
 @param disposeDownloadFirmwareFinish finish update firmware from cloud
 @param disposeDownloadProgress Update Device progress(0-100)
 @param disposeUpdateProgress Download file progress(0-100)
 @param disposeUpdateResult Update Device result(bool 1:sucess,0:fail)Applicable to the protocol of 100.
 @param transferSuccess TransferSuccess Applicable to the protocol of 101.
 @param disposeErrorBlock Update error codes, see UpdateDeviceError error descriptions.
 */
-(void)commandStartUpdateWithDeviceUUID:(NSString*)uuidString DownloadFirmwareStart:(DisposeDownloadFirmwareStart)disposeDownloadFirmwareStart DisposeDownloadFirmwareFinish:(DisposeDownloadFirmwareFinish)disposeDownloadFirmwareFinish DisposeDownloadProgress:(DisposeDownloadProgress)disposeDownloadProgress DisposeUpdateProgress:(DisposeUpdateProgress)disposeUpdateProgress DisposeUpdateResult:(DisposeUpdateResult)disposeUpdateResult TransferSuccess:(TransferSuccess)transferSuccess  DisposeErrorBlock:(DisposeUpdateErrorBlock)disposeErrorBlock;


/**
 Update Device showing download progress

 @param uuidString device UUID
 @param disposeDownloadFirmwareStart start update firmware from cloud
 @param disposeDownloadFirmwareFinish finish update firmware from cloud
 @param disposeDownloadProgress Update Device progress(0-100)
 @param disposeErrorBlock Update error codes, see UpdateDeviceError error descriptions.
 */
-(void)commandStartDownloadWithDeviceUUID:(NSString*)uuidString DownloadFirmwareStart:(DisposeDownloadFirmwareStart)disposeDownloadFirmwareStart DisposeDownloadFirmwareFinish:(DisposeDownloadFirmwareFinish)disposeDownloadFirmwareFinish DisposeDownloadProgress:(DisposeDownloadProgress)disposeDownloadProgress  DisposeErrorBlock:(DisposeUpdateErrorBlock)disposeErrorBlock;


/**
 Update Device  (You must download the firmware before calling this interface)

 @param uuidString device UUID

 @param disposeUpdateProgress Download file progress(0-100)
 @param disposeUpdateResult Update Device result(bool 1:sucess,0:fail)Applicable to the protocol of 100.
 @param transferSuccess TransferSuccess Applicable to the protocol of 101.
 @param disposeErrorBlock Update error codes, see UpdateDeviceError error descriptions.
 */
-(void)commandStartUpdateWithDeviceUUID:(NSString*)uuidString  DisposeUpdateProgress:(DisposeUpdateProgress)disposeUpdateProgress DisposeUpdateResult:(DisposeUpdateResult)disposeUpdateResult TransferSuccess:(TransferSuccess)transferSuccess  DisposeErrorBlock:(DisposeUpdateErrorBlock)disposeErrorBlock;


-(void)commandsetCloudModel:(NSNumber*)cloudModel;

@end