diff options
Diffstat (limited to 'applications/message_handler/message_handler.cpp')
-rw-r--r-- | applications/message_handler/message_handler.cpp | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/applications/message_handler/message_handler.cpp b/applications/message_handler/message_handler.cpp index a634c16..f06d056 100644 --- a/applications/message_handler/message_handler.cpp +++ b/applications/message_handler/message_handler.cpp @@ -117,7 +117,7 @@ bool getNetwork(const uint32_t index, void *&data, size_t &size) { #endif default: - printf("Error: Network model index out of range. index=%u\n", index); + printf("Error: Network model index out of range. index=%" PRIu32 "\n", index); return true; } @@ -131,7 +131,7 @@ bool getNetwork(const ethosu_core_network_buffer &buffer, void *&data, size_t &s case ETHOSU_CORE_NETWORK_INDEX: return getNetwork(buffer.index, data, size); default: - printf("Error: Unsupported network model type. type=%u\n", buffer.type); + printf("Error: Unsupported network model type. type=%" PRIu32 "\n", buffer.type); return true; } } @@ -293,6 +293,19 @@ bool IncomingMessageHandler::handleMessage() { } break; } + case ETHOSU_CORE_MSG_CANCEL_INFERENCE_REQ: { + ethosu_core_cancel_inference_req req; + if (!inputMessageQueue.read(req)) { + sendErrorAndResetQueue(ETHOSU_CORE_MSG_ERR_INVALID_PAYLOAD, "CancelInferenceReq. Failed to read payload"); + break; + } + printf("Msg: CancelInferenceReq. user_arg=0x%" PRIx64 ", inference_handle=0x%" PRIx64 "\n", + req.user_arg, + req.inference_handle); + + sendCancelInferenceRsp(req.user_arg, ETHOSU_CORE_STATUS_ERROR); + break; + } case ETHOSU_CORE_MSG_NETWORK_INFO_REQ: { ethosu_core_network_info_req req; if (!inputMessageQueue.read(req)) { @@ -393,6 +406,16 @@ void IncomingMessageHandler::sendFailedInferenceRsp(uint64_t userArg, uint32_t s mailbox.sendMessage(); } } +void IncomingMessageHandler::sendCancelInferenceRsp(uint64_t userArg, uint32_t status) { + ethosu_core_cancel_inference_rsp cancellation; + cancellation.user_arg = userArg; + cancellation.status = status; + if (!outputMessageQueue.write(ETHOSU_CORE_MSG_CANCEL_INFERENCE_RSP, cancellation)) { + printf("ERROR: Msg: Failed to write cancel inference response. No mailbox message sent\n"); + } else { + mailbox.sendMessage(); + } +} void IncomingMessageHandler::readCapabilties(ethosu_core_msg_capabilities_rsp &rsp) { rsp = {}; |