Using /osc/status
to see the completion of startCapture
on the SC2 does not work.
You must use /osc/state
to see when the interval or bracket sequence ends.
Using /osc/status
with takePicture
does work. However, the SC2 has a problem
with handling individual HTTP requests in rapid sequence.
Using /osc/status
, I can take pictures in rapid sequence with the Z1 camera if I
space out the shots by 1 second. I can likely reduce this delay, but I have not tried.
For the SC2, tests with 1 second and 2 second delays failed.
If I insert a delay of 10 seconds between pictures, I can take 200 pictures.
SC2 Sequence Shot Result Summary
Test # | delay after done | total delay between shots | number of shots | hdr | result |
---|---|---|---|---|---|
1 | 1 sec | 9 seconds | 200 | no | fail |
2 | 2 sec | 10 seconds | 200 | no | fail |
3 | 10 sec | 18 seconds | 200 | no | success |
4 | 5 sec | 13 seconds | 200 | no | fail |
5 | 8 sec | 16 seconds | 200 | no | success |
6 | 6 sec | 14 seconds | 200 | no | success |
7 | 5 sec | 13 seconds | 200 | no | success |
8 | 3 sec | 11 seconds | 100 | no | success |
9 | 1 sec | 9 seconds | 100 | no | success |
10 | 0 sec | 8 seconds | 100 | no | success |
11 | 0 sec | 8 seconds | 100 | hdr | success |
Test Environment
- uses takePicture, not startCapture
- uses non-HDR pictures
- SC2 with firmware 1.51
- SC2 is plugged into a power source with a USB cable. However, this should not be needed and should not impact the test
- SC2 is connected to Windows 10 computer with 2.4GHz Wi-Fi
- camera is within 50cm of computer
- camera is indoor, in the shade, during winter
- all media is deleted from camera prior to test
Test Scripts
Loop to take 200 Pictures
for counter in {1..200}
do
./theta.exe takeAndReady
echo that was picture $counter
((counter++))
# waiting 10 seconds for SC2 test
echo waiting 10 seconds for the next shot
sleep 10s
done
echo finished endurance test
Camera Status Check Code Snippet
This is the check used in the tests. I put it into a loop to check the status after each shot. I check the status every second.
Future<String> isDone(String id) async {
var url = 'http://192.168.1.1/osc/commands/status';
var data = {'id': id};
var payload = jsonEncode(data);
var response = await http.post(url,
headers: {'Content-Type': 'application/json;charset=utf-8'},
body: payload);
Map<String, dynamic> status = jsonDecode(response.body);
String state = status['state'];
return state;
}
At the end of 200 files, I received this:
thumbnail download test completed
thumbnails are in local storage for inspection
Example with 5 second delay
for counter in {1..200}
do
./theta.exe takeAndReady
echo that was picture $counter
((counter++))
# waiting 5 seconds for SC2 test
echo waiting 5 seconds for the next shot
sleep 5s
done
echo finished endurance test
Result Fail. Lost connection.