@fweinb Have you noticed that the header changes length when record is enabled? On the GH4 the header becomes 16 bytes longer (16 extra bytes inserted after byte 46).
That positions changes, it looks like related to lens somehow
@lenuisible It changes depending on lens and focus mode. In face recognition if face is visible it's sending bounding box and eye point, if focus point is selected its position is also sent. GH3 and GH4 are the same, and header can change more than 16 bytes. No difference in PASM modes.
@lenuisible @Rambalac I've seen that the header length changes, but as far as I can see the first 46 bytes seem to be the same (judging from GH4 and G80 headers). However I can't see anything in those first 46 bytes that indicates what comes directly after.
@mjas If you still want to know how parse that data check my c# app sources ;)
@Rambalac Sure. Do you have a link? I could only find Panasonic RAW decoding code online. :)
@Rambalac Thanks!
@mjas By the way, what is specific in connecting to GX85? I dont have that camera, but people say they cannot connect and camera tells them to update app.
Do you need help with Offframe bytes? I updated parsing adding new parameters and fixing difference in two different types of focus area coords.
@Rambalac G8x (and maybe GX8x) added some sort of device check before the connection is established. If you (or anyone else working on those apps) want to support those new cameras, you have to add some commands before the classic "recmode" camcmd.
On my G80, when I use my good old Galaxy S3, the commands look like this (but I'm pretty sure it should work with any camera and any controlling device) :
http://Cam_IP@/cam.cgi?mode=setsetting&type=device_name&value=GT-I9300
Rgds,
Clement
@lenuisible Oh, ok I added that for better Image App like behavior, it will be available in next update together with LUTs . Thanks
@mjas I noticed that too. I only have the FZ1000 to test stuff but I think I figured out must of the stuff now. The only information that are missing are the focus/ae points that are currently displayed. I don't have much time to work on it anymore. I updated the documentation on github to include the new calculation for the header stuff. You can find it here: https://gist.github.com/FWeinb/2d51fe63d0f9f5fc4d32d8a420b2c18d
@Rambalac I've checked now with G80 and GH5, and the camera seems to repeat
Where value = device_id
(can be really anything), and value2 = <arbitrary name>
The Pana app keeps polling the above command, and the camera keeps answering ok_under_research,etc,etc,etc
(etc
is just more info) until you've accepted the connection on the camera. Once accepter, the camera will reply with a plain ok,etc,etc,etc
.
After that I've witnessed both cameras be sent
http://Cam_IP@/cam.cgi?mode=setsetting&type=device_name&value=GT-I9300
And after that it seems like the procedure is the same.
Yeah, I fixed that 3 days ago, tested in local camera store.
Extremely stupid is new cameras send CSV response while old cameras sent XML error response.
@Rambalac Indeed a very unnecessary difference ...
@Rambalac Oh, just saw your comment about the off-frame bytes. I think I'm good with them for the time being. Thanks tho. :)
Sorry for hijacking this thread, but the last posts relate directly to what I'm interested in.
I've been developing a follow-focus Android app for my G85 over the last weeks and just published an early access version. The idea is to use your phone to remote control servo-lenses such as the kit lens. While the the speed of the follow-focus is very limited, it might be good enough for certain setups.
However, I would like to figure potential issues with other popular models such as the GH4 before I post about it elsewhere.
I have three questions:
First, does anyone know what happens if you send the access control command (and the set device command) to older models?
My untested code assumes that these cameras will respond with either err_non_support
, err_param
, or HTTP code 404
.
Second, is cam.cgi?mode=getinfo&type=capability
a recent addition or safe to use with older models?
@Rambalac You avoid the first calls entirely for models that don't support them and I could not find the capabilities call in your code. Is there a particular reason?
Finally, is there a way to get the current focus without sending a focus change command?
I have found nothing of that sort in the HTTP data. But I haven't touched the video stream headers yet. @fweinb Do you see a chance something like that is hidden in the fields you could not identify yet?
Any help is appreciated. If you need something to be tested with a G85 (actually, it is a G81), let me know.
The code of my app is available here (including a getting started guide):
https://bitbucket.org/jimknopf/fokoid/overview
Play Store link (Early Access):
https://play.google.com/store/apps/details?id=com.gmail.fokoidapp&hl=en
(you can also find a copy of the APK on Bitbucket)
@jimknopf I don't see any reason to request cam.cgi?mode=getinfo&type=capability
. Some features could be useful like camspec
but I'm not sure about full meaning so I prefer try and fallback for such features like focus area resize by pinch.
I get everything I need and much more from allmenu
and my minimum capability is GH3.
I ignore request access for specific older cameras just to make logs cleaner :)
@Rambalac Thanks for the information! I am checking cam.cgi?mode=getinfo&type=capability
for the tele-fast
and wide-fast
commands. Furthermore, I check whether oneshot_af_enable
is listed as spec. But to be honest, I am not sure whether any of this is necessary.
By the way, I forgot to mention that my app includes a report function that goes through all command one-by-one and records the responses. So if anyone has an Android device (5.0 or newer) and some time to kill…
@Rambalac That's my guess. The AF is not that important to me, but knowing whether the fast focus change commands work is. Therefore, the check at the beginning.
I only have access to a G81, so no, I don't know about cameras not supporting it. I just assumed that there is a reason why some commands are listed explicitly, while others are not.
Do you know the capabilities command from your GH3 and GH4? That would already answer my first question.
I had no success with sniffers installed on my phone – which one are you using? So far I have used macOS's built in sniffer to record the traffic between the camera and the phone. Then analyzed the data in Wireshark.
The report function of my app is of course much more primitive. All it does is to save the responses of the 11 commands it goes through and then allows to send the data via email. In particular, the app itself is not phoning home.
It looks like you're new here. If you want to get involved, click one of these buttons!