请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:processor-SDK-J721E 你(们)好。
我正在处理 处理器-SDK-J721E。
在 app_display_module 中,我想使用 tivxNodeSendCommand 函数来更改显示节点的裁剪。 但这似乎行不通。
在 app_init 中,给出了作物参数的默认值。
displayObj->disp_right_params.enableCroping= 1;
displayObj->disp_right_params.cropPrms.startx = 160;
displayObj->disp_right_params.cropPrms.startY =160;
displayObj->disp_right_params.cropPrms.width = 400;
displayObj->disp_right_params.cropPrms.height =225;
可以显示正确的图像。
我创建了一个新函数。 (下方)
vx_status app_display_modify(vx_context context , vx_node node, tivx_display_params_t params)
{
vx_status status = VX_SUCCESS;
vx_reference refs[1];
vx_user_data_object crop_obj = NULL;
crop_obj =vxCreateUserDataObject(context, "tivx_display_crop_params_t", sizeof(tivx_display_crop_params_t), ¶ms.cropPrms);
vxCopyUserDataObject(crop_obj, 0,
sizeof(tivx_display_crop_params_t),
¶ms.cropPrms, VX_WRITE_ONLY, VX_MEMORY_TYPE_HOST);
refs[0] = (vx_reference)crop_obj;
status = VX_FAILURE;
while (status == VX_FAILURE)
{
status = tivxNodeSendCommand(node, 0, TIVX_DISPLAY_SET_CROP_PARAMS,
refs, 1u);
}
vxReleaseUserDataObject(&crop_obj);
return status;
}
并在 交互任务中调用它。(如下所示)
case 'x':
obj->stop_task = 1;
done = 1;
break;
case 'r':
obj->displayObj.disp_right_params.enableCropping = 1;
obj->displayObj.disp_right_params.cropPrms.width += 100;
app_display_modify(obj->context, obj->displayObj.disp_right_node, obj->displayObj.disp_right_params);
printf("obj->displayObj.disp_right_params.cropPrms.width value is %d\n", obj->displayObj.disp_right_params.cropPrms.width);
break;
case 'l':
obj->displayObj.disp_right_params.enableCropping = 1;
obj->displayObj.disp_right_params.cropPrms.height += 100;
app_display_modify(obj->context, obj->displayObj.disp_right_node, obj->displayObj.disp_right_params);
printf("obj->displayObj.disp_right_params.cropPrms.height value is %d\n", obj->displayObj.disp_right_params.cropPrms.height);
break;
应用程序都运行良好,但不能正常运行。 显示的图像保留了 app_init 中给出的默认值。
但作物参数已通过键盘更改。

祝你一切顺利。