Skip to content

Commit 065f6eb

Browse files
Add support for binary and hex files
In some cases it is more convinient to use a binary or hex file directly instead of using a zip file. We can check the extention and do the appropriate action.
1 parent cc69140 commit 065f6eb

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

android/src/main/java/com/pilloxa/dfu/RNNordicDfuModule.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,13 @@ public void startDFU(String address, String name, String filePath, Promise promi
3838
starter.setDeviceName(name);
3939
}
4040
starter.setUnsafeExperimentalButtonlessServiceInSecureDfuEnabled(true);
41-
starter.setZip(filePath);
41+
42+
if (filePath.endsWith(".bin") || filePath.endsWith(".hex")) {
43+
starter.setBinOrHex(DfuBaseService.TYPE_APPLICATION, filePath).setInitFile(null, null);
44+
} else {
45+
starter.setZip(filePath);
46+
}
47+
4248
final DfuServiceController controller = starter.start(this.reactContext, DfuService.class);
4349
}
4450

ios/RNNordicDfu.m

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,17 @@ - (void)logWith:(enum LogLevel)level message:(NSString * _Nonnull)message
213213
reject(@"unable_to_find_device", @"Could not find device with deviceAddress", nil);
214214
} else {
215215
CBPeripheral * peripheral = [peripherals objectAtIndex:0];
216+
DFUFirmware * firmware;
216217

217218
NSURL * url = [NSURL URLWithString:filePath];
218-
219-
DFUFirmware * firmware = [[DFUFirmware alloc] initWithUrlToZipFile:url];
219+
NSString * extension = [url pathExtension];
220+
221+
if (([extension caseInsensitiveCompare:@"bin"] == NSOrderedSame) ||
222+
([extension caseInsensitiveCompare:@"hex"] == NSOrderedSame)) {
223+
firmware = [[DFUFirmware alloc] initWithUrlToBinOrHexFile:url urlToDatFile:nil type:4];
224+
} else {
225+
firmware = [[DFUFirmware alloc] initWithUrlToZipFile:url];
226+
}
220227

221228
DFUServiceInitiator * initiator = [[[DFUServiceInitiator alloc]
222229
initWithCentralManager:centralManager

0 commit comments

Comments
 (0)