Skip to content

Commit

Permalink
Merge pull request #256 from NordicSemiconductor/unsupported
Browse files Browse the repository at this point in the history
Fix: A couple of 'unsupported' error codes were... unsupported
  • Loading branch information
dinesharjani authored Aug 1, 2024
2 parents 8773d55 + 09b19a4 commit d40886f
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 7 deletions.
6 changes: 3 additions & 3 deletions Source/Managers/DFU/FirmwareUpgradeManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserv
private lazy var mcuManagerParametersCallback: McuMgrCallback<McuMgrParametersResponse> = { [weak self] response, error in
guard let self = self else { return }

guard error == nil, let response, response.rc != .unsupported else {
guard error == nil, let response, response.rc.isSupported() else {
self.log(msg: "Mcu Manager parameters not supported", atLevel: .warning)
self.bootloaderInfo() // Continue to Bootloader Info.
return
Expand All @@ -400,7 +400,7 @@ public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserv
private lazy var bootloaderInfoCallback: McuMgrCallback<BootloaderInfoResponse> = { [weak self] response, error in
guard let self else { return }

guard error == nil, let response, response.rc != .unsupported else {
guard error == nil, let response, response.rc.isSupported() else {
self.log(msg: "Bootloader Info not supported.", atLevel: .warning)
self.log(msg: "Assuming MCUBoot Bootloader.", atLevel: .debug)
self.bootloader = .mcuboot
Expand All @@ -427,7 +427,7 @@ public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserv
private lazy var bootloaderModeCallback: McuMgrCallback<BootloaderInfoResponse> = { [weak self] response, error in
guard let self else { return }

guard error == nil, let response, response.rc != .unsupported else {
guard error == nil, let response, response.rc.isSupported() else {
self.log(msg: "Bootloader Mode not supported", atLevel: .warning)
self.validate() // Continue Upload
return
Expand Down
8 changes: 4 additions & 4 deletions Source/Managers/SuitManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ public class SuitManager: McuManager {
private lazy var listManifestCallback: McuMgrCallback<McuMgrManifestListResponse> = { [weak self] response, error in
guard let self else { return }

guard error == nil, let response, response.rc != .unsupported else {
guard error == nil, let response, response.rc.isSupported() else {
self.logDelegate?.log("List Manifest Callback not Supported.", ofCategory: .suit, atLevel: .error)
self.callback?(nil, error)
return
Expand All @@ -141,7 +141,7 @@ public class SuitManager: McuManager {

private lazy var roleStateCallback: McuMgrCallback<McuMgrManifestStateResponse> = { [weak self] response, error in
guard let self else { return }
guard error == nil, let response, response.rc != .unsupported else {
guard error == nil, let response, response.rc.isSupported() else {
self.logDelegate?.log("List Manifest Callback not Supported.", ofCategory: .suit, atLevel: .error)
return
}
Expand Down Expand Up @@ -297,8 +297,8 @@ public class SuitManager: McuManager {
}

if let response {
guard response.rc != .unsupported else {
// Not supported, so either no polling or device restarted.
guard response.rc.isSupported() else {
// Not supported, so either no polling, or device restarted.
// It means success / continue.
self.uploadDelegate?.uploadDidFinish()
return
Expand Down
9 changes: 9 additions & 0 deletions Source/McuManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,15 @@ public enum McuMgrReturnCode: UInt64, Error {
return self == .ok
}

public func isSupported() -> Bool {
switch self {
case .unsupported, .unsupportedTooOld, .unsupportedTooNew:
return false
default:
return true
}
}

public func isError() -> Bool {
return self != .ok
}
Expand Down

0 comments on commit d40886f

Please sign in to comment.