理光 Theta Z1 不接受我更改文件格式的请求



我正在使用更新到最新固件(1.60.1)的理光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参数时,命令执行得很好。

你知道我在这里做错了什么吗?

经过反复试验,我发现就是可以使用camera.setOptions设置相机上的文件格式,但是只能如果fileFormat块是options块的唯一成员。也就是说,这个命令:

$ 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相机的一个bug,因为据我所知,从文档(https://api.ricoh/docs/theta-web-api-v2/commands/camera。set_options/和https://developers.google.com/streetview/open-spherical-camera/reference/camera/setoptions),对于进入options块的JSON不应该有任何限制。在任何情况下,解决方法都很简单:发出一个命令来设置文件格式,并根据需要发出一个或多个命令来设置其他选项,然后就可以开始了。

仅供参考,dateTimeZone也有类似的错误。看这篇文章

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

似乎有几个选项需要设置为一个独立的选项。

如果你想设置dateTimeZone,它必须是唯一的选项集。我向理光公司报告了此事。我将把你的发现发布在theta360社区上。引导论坛,使其更容易找到。谢谢。

最新更新