问题描述
我正在模拟器上使用 Movesense 2.0.0,并且正在实现我自己的 API。
这是(部分)我的带有 API 规范的 YAML
/hs/Log/{Log_Id}/Data:
get:
description: |
Function returning Log Data
responses:
200:
description: Log Data
schema:
$ref: '#/deFinitions/LogData'
404:
description: Referenced log not found in LogBook.
parameters:
- $ref: '#/parameters/Log_Id'
parameters:
Log_Id:
name: Log_Id
in: path
required: true
type: integer
format: int32
deFinitions:
LogData:
required:
- Data
properties:
Data:
description: Log Data
type: array
items:
type: integer
format: int32
这是处理它的重写方法:
void HSService::onGetRequest(const whiteboard::Request& request,const whiteboard::ParameterList& parameters)
{
if (mModuleState != WB_RES::ModuleStateValues::STARTED)
{
return returnResult(request,wb::HTTP_CODE_SERVICE_UNAVAILABLE);
}
switch (request.getResourceConstId())
{
case WB_RES::LOCAL::HS_LOG_LOG_ID_DATA::ID:
{
WB_RES::LogData resp;
int32_t tmp[128] = { 0 };
resp.data = wb::MakeArray<int32_t>(tmp,128);
return returnResult(request,whiteboard::HTTP_CODE_OK,ResponSEOptions::Empty,resp);
}
}
break;
default:
return returnResult(request,whiteboard::HTTP_CODE_NOT_FOUND);
}
}
当我使用 wbcmd 发送请求时,它会挂起,直到显示 408 - Timeout,但如果使 tmp
缓冲区变小(121 个或更少元素),它会正常工作。
我做错了什么吗?
解决方法
白板具有(限制传感器上的资源使用)最大数据包大小,这会导致最大有效负载大小。目前 WB_MAX_MESSAGE_PAYLOAD_LENGTH 为 466 字节。
白板限制在文件 WhiteboardConfig.h
中定义完全免责声明:我为 Movesense 团队工作