1

我正在使用更新到最新固件 (1.60.1) 的 Ricoh Theta Z1。我正在尝试调试一个 Android 应用程序,但我发现我们的一个命令反复失败,所以我直接从我的开发盒连接到相机并直接通过 curl 测试协议。

我从文档中了解到该命令应该可以工作:

$ curl -X POST -H "Content-Type: application/json; charset=UTF-8"   -d '{"name":"camera.setOptions", "parameters":{"options":{"captureMode":"image","fileFormat":{"height":3360,"type":"jpeg","width":6720}}}}'   http://192.168.1.1/osc/commands/execute

但是当我运行这个命令时,我得到了这个响应:

{"error":{"code":"invalidParameterValue","message":"Any input parameter or option name is recognized, but its value is invalid."},"name":"camera.setOptions","state":"error"}

尽管事实上当我向相机询问其选项时,它会以刚刚告诉我不会解析的确切块作为响应:

$ curl -X POST -H "Content-Type: application/json; charset=UTF-8" -d '{"name":"camera.getOptions", "parameters":{"optionNames":["clientVersion","captureMode","fileFormat"]}}' http://192.168.1.1/osc/commands/execute

得到这个回应:

{"name":"camera.getOptions","results":{"options":{"captureMode":"image","clientVersion":2,"fileFormat":{"height":3360,"type":"jpeg","width":6720}}},"state":"done"}

此外,当我运行第一个命令并省略fileFormat参数时,命令执行得很好。

有什么想法我在这里做错了吗?

4

2 回答 2

2

经过一堆试验和错误,我发现可以使用camera.setOptions设置相机上的文件格式,但前提是该块是该块的唯一成员。也就是说,这个命令:fileFormatoptions

$ curl -X POST -H "Content-Type: application/json; charset=UTF-8"   -d '{"name":"camera.setOptions", "parameters":{"options":{"fileFormat":{"height":3360,"type":"jpeg","width":6720}}}}'   http://192.168.1.1/osc/commands/execute

将会成功。我认为这一定是 Theta Z1 相机中的一个错误,因为据我从文档(https://api.ricoh/docs/theta-web-api-v2/commands/camera.set_options/https ://developers.google.com/streetview/open-spherical-camera/reference/camera/setoptions),不应该对 JSON 进入options块有任何限制。在任何情况下,解决方法都很简单:发出一个命令来设置文件格式,并根据需要发出一个或多个命令来设置其他选项,然后你就可以开始了。

于 2021-02-05T01:06:22.853 回答
2

仅供参考,dateTimeZone 也有类似的错误。看到这个帖子

https://community.theta360.guide/t/how-setup-datetime-on-theta-camera-using-web-api/6572/3?u=craig

似乎有一些选项需要设置为独立选项。

如果要设置 dateTimeZone,它必须是唯一的选项集。我向理光报告了这件事。我将在 community.theta360.guide 论坛上发布您的发现,以便更容易找到。谢谢。

于 2021-03-31T15:12:46.240 回答