如果 ResourceProvider 太大,则不会发送响应
ResourceProvider does not send response if it's too large
我在模拟器上使用 Movesense 2.0.0,我正在实现我自己的 APIs。
这是我的 YAML 的(一部分)API 规范
/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 - 超时,但如果使 tmp
缓冲区更小(121 个或更少的元素),它会完美无缺地工作。
我做错了什么吗?
白板具有(限制传感器上的资源使用)最大数据包大小,从而导致最大有效负载大小。当前 WB_MAX_MESSAGE_PAYLOAD_LENGTH 是 466 字节。
白板限制在文件中定义 WhiteboardConfig.h
完全免责声明:我为 Movesense 团队工作
我在模拟器上使用 Movesense 2.0.0,我正在实现我自己的 APIs。
这是我的 YAML 的(一部分)API 规范
/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 - 超时,但如果使 tmp
缓冲区更小(121 个或更少的元素),它会完美无缺地工作。
我做错了什么吗?
白板具有(限制传感器上的资源使用)最大数据包大小,从而导致最大有效负载大小。当前 WB_MAX_MESSAGE_PAYLOAD_LENGTH 是 466 字节。
白板限制在文件中定义 WhiteboardConfig.h
完全免责声明:我为 Movesense 团队工作