import Foundation struct DeviceDataRequest: DeviceRequest { typealias Response = Data static let type: BluetoothRequestType = .getRecordingData let offset: Int let count: Int var payload: Data { count.twoByteData + offset.twoByteData } init(offset: Int, count: Int) { self.offset = offset self.count = count } func makeResponse(from responseData: Data, responseType: BluetoothResponseType) -> Data? { switch responseType { case .success: break case .responseTooLarge: log.warning("Exceeded payload size for device data request (offset: \(offset), count: \(count))") break default: log.warning("Invalid response \(responseType) to device data request") return nil } guard responseData.count == count else { log.warning("Got \(responseData.count) for device data request (offset: \(offset), count: \(count))") return nil } return responseData } }