Skip to content

Commit a717249

Browse files
authored
Merge pull request #291 from PlayerData/misc
Misc
2 parents a058e71 + 4cf8fa9 commit a717249

File tree

3 files changed

+26
-10
lines changed

3 files changed

+26
-10
lines changed

ios/DeviceUpgrade.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ class DeviceUpgrade {
4949
}
5050

5151
do {
52-
let fileHandle = try FileHandle(forReadingFrom: fileUrl)
53-
let file = Data(fileHandle.availableData)
54-
fileHandle.closeFile()
52+
let binData = try Data(contentsOf: fileUrl)
53+
let binHash = try McuMgrImage(data: binData).hash
54+
let image = ImageManager.Image(image: 0, hash: binHash, data: binData)
5555

5656
self.bleTransport = McuMgrBleTransport(bleUuid)
5757
self.dfuManager = FirmwareUpgradeManager(transporter: self.bleTransport!, delegate: self)
@@ -64,7 +64,7 @@ class DeviceUpgrade {
6464

6565
DispatchQueue.main.async {
6666
do {
67-
try self.dfuManager!.start(data: file as Data, using: config)
67+
try self.dfuManager!.start(images: [image], using: config)
6868
} catch {
6969
promise.reject(UnexpectedException(error))
7070
}

ios/ReactNativeMcuManager.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Pod::Spec.new do |s|
1616
s.static_framework = true
1717

1818
s.dependency 'ExpoModulesCore'
19-
s.dependency 'iOSMcuManagerLibrary', '~> 1.4.3'
19+
s.dependency 'iOSMcuManagerLibrary', '~> 1.6.0'
2020

2121
# Swift/Objective-C compatibility
2222
s.pod_target_xcconfig = {

src/Upgrade.ts

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,23 @@ const McuManagerEvents = new EventEmitter(
5959
declare const UpgradeIdSymbol: unique symbol;
6060
type UpgradeID = string & { [UpgradeIdSymbol]: never };
6161

62+
type UpgradeEvent = 'upgradeStateChanged' | 'uploadProgress';
63+
64+
type UpgradeStateChangedPayload = {
65+
id: UpgradeID;
66+
state: FirmwareUpgradeState;
67+
};
68+
type UploadProgressPayload = { id: UpgradeID; progress: number };
69+
type UpgradeEventPayload = UpgradeStateChangedPayload & UploadProgressPayload;
70+
6271
type AddUpgradeListener = {
6372
(
6473
eventType: 'upgradeStateChanged',
65-
listener: ({ state }: { state: FirmwareUpgradeState }) => void
74+
listener: (event: UpgradeStateChangedPayload) => void
6675
): Subscription;
6776
(
6877
eventType: 'uploadProgress',
69-
listener: ({ progress }: { progress: number }) => void
78+
listener: (event: UploadProgressPayload) => void
7079
): Subscription;
7180
};
7281

@@ -106,10 +115,17 @@ class Upgrade {
106115
};
107116

108117
addListener: AddUpgradeListener = (
109-
eventType: any,
110-
listener: (...args: any[]) => void
118+
eventType: UpgradeEvent,
119+
listener: (event: UpgradeEventPayload) => void
111120
): Subscription => {
112-
return McuManagerEvents.addListener(eventType, listener);
121+
return McuManagerEvents.addListener<UpgradeEventPayload>(
122+
eventType,
123+
(event) => {
124+
if (event.id !== this.id) return;
125+
126+
listener(event);
127+
}
128+
);
113129
};
114130

115131
/**

0 commit comments

Comments
 (0)