使用公开信息测试 RICOH THETA SC2 API
RICOH THETA SC2 的 API 请求。基于社区测试
公开的
API 参考文档,适用于 V 和 Z1。
这些测试不使用 SC2 API 文档,因为 SC2 API 未在
公开文档中列为受支持的相机。
SC2 API 与 V 和 Z1 的 API 不同。请参阅
此网站了解
更多信息。
截至 2020 年 7 月 16 日,SC2 API 的已知问题如下:
- listFiles 不返回缩略图,即使为缩略图设置了参数
- RICOH SDK 在 livePreview 帧上工作不可靠。会因 EOF 异常停止
- 当向 SC2 发出某些命令时,livePreview 会停止
- getMetaData 不返回正确的值
- status 不能与 startCapture 一起使用。
有关更多信息,请参阅网站和书面指南。
SC2 API 与 Z1 API 类似。
更多信息可在 博客上找到
配置和安装
- 安装 dart
- 克隆此仓库
- 运行
pub get安装依赖项
$ pub get
Resolving dependencies... (1.2s)
Downloading args 1.5.3...
Downloading http 0.12.0+4...
Downloading pedantic 1.9.0...
Downloading async 2.4.0...
Downloading source_span 1.6.0...
Downloading charcode 1.1.3...
Downloading meta 1.1.8...
Got dependencies!
用法
- 将工作站连接到 THETA,相机处于接入点 (AP) 模式
- 在
bin目录下运行main.dart文件,并附带相应的命令
带信息的示例
dart bin/main.dart info
除了 info,您还可以使用其他命令
带状态的示例
dart bin/main.dart state
可用的命令
- info
- state
- takePicture
- listFiles
- getOptions
- downloadFile
- getMetadata
- firmware – 打印固件版本和相机型号
- downloadReady – 拍照并检查照片是否已准备好下载
- takeAndDownload – 拍照并下载,使用 osc/state 获取文件 URL
- setExposureDelayFive – 设置自拍定时器为五秒
- setExposureDelayZero – 关闭自拍定时器
- setHdr – 公开 API 参考
说明
POST 示例
来自 THETA SC2 的响应
拍照示例
如果您的
请求中包含类似 {'name': 'camera.takePicture'} 的有效负载,则必须将正文编码为 JSON。您可以使用 json.encode(your-payload-object)
或新的 jsonEncode() https://api.dart.ac.cn/stable/2.7.1/dart-convert/jsonEncode.html
来自 THETA SC2 的测试。OK!
SC2 的响应显示如下。
C:\Users\craigdev\Development\personal\dart>dart bin/main.dart
[]
200
{
"name": "camera.takePicture",
"id": "1588",
"progress": {
"completion": 0.0
},
"state": "inProgress"
}
列出文件
https://api.ricoh/docs/theta-web-api-v2.1/commands/camera.list_files/
这显示了一个更复杂的嵌套有效负载,带有参数。
响应
$ dart bin/main.dart
[]
200
{
"name": "camera.listFiles",
"results": {
"entries": [
{
"dateTimeZone": "2020:03:18 17:12:32-07:00",
"fileUrl": "http://192.168.1.1/files/150100525831424d42079d18e0b6c300/100RICOH/R0010024.JPG",
"height": 2688,
"isProcessed": true,
"name": "R0010024.JPG",
"previewUrl": "",
"_projectionType": "Equirectangular",
"size": 4362617,
"_thumbSize": 2749,
"width": 5376
},
获取选项
您想获取的相机选项需要在数组中单独指定。
我认为您无法使用通配符或“all”规范来获取所有选项。
数据请求的格式如下。
var url ='http://192.168.1.1/osc/commands/execute';
Map data = {
'name': 'camera.getOptions',
'parameters': {
'optionNames': [
"iso",
"isoSupport"
]
}
运行固件 1.20 的 THETA SC2 的响应显示如下。
{
"name": "camera.getOpions",
"state": "done",
"results": {
"options": {
"iso": 0,
"isoSupport": [
64,
80,
100,
125,
160,
200,
250,
320,
400,
500,
640,
800,
1000,
1250,
1600,
2000,
2500,
3200
]
}
}
}
测试的相机固件
- Z1 1.31.1
- RICOH THETA SC 1.20
- V 3.21.1
相机故障排除
使用 GET info 测试连接
发送到相机的最简单命令是 GET info。
您可以在浏览器、curl、Postman 中进行测试。在测试程序中,您可以
查找下面的 URL。
String url = 'http://192.168.1.1/osc/info';
如果您在获取相机连接时遇到问题,并希望使用已知有效的 API 来测试您的
代码,该 API 可返回单个 JSON 对象,您可以使用公共 Internet 测试服务器返回单个 JSON 对象并打印出来。
// String url = 'https://swapi.co/api/people/1';
// String url = 'https://jsonplaceholder.typicode.com/users/1';
了解 我们为何使用 Dart。


