Hi Marcus,

Thanks for the tips on handling the different data types. Just adding a
second line in the submenu table didn't work. It would still try to get the
datatype of the first line that it encounters.
So I added separate submenu tables for the ILCE-7SM3 and device specific
references in the menus:

static struct submenu sony_7sm3_camera_settings[] = {
{ N_("Priority Mode"), "prioritymode", PTP_DPC_SONY_PriorityMode,
 PTP_VENDOR_SONY, PTP_DTC_UINT8, _get_Sony_PriorityMode_u8,
_put_Sony_PriorityMode_u8 },
{ 0,0,0,0,0,0,0 },
};

static struct submenu sony_7sm3_capture_settings[] = {
{ N_("Exposure Program"),               "expprogram",
PTP_DPC_ExposureProgramMode,            0,                  PTP_DTC_UINT32,
_get_ExposureProgram32,               _put_ExposureProgram32 },
{ N_("Still Capture Mode"),             "capturemode",
 PTP_DPC_StillCaptureMode,               0,
 PTP_DTC_UINT32, _get_CaptureMode32,               _put_CaptureMode32 },
{ 0,0,0,0,0,0,0 },
};

static struct menu menus[] = {
    ...
    { N_("Camera Settings"),            "settings",         0x054c, 0x0d18,
sony_7sm3_camera_settings,      NULL,   NULL }, /* A7S-III */
    ...
    { N_("Capture Settings"),           "capturesettings",  0x054c, 0x0d18,
sony_7sm3_capture_settings,     NULL,   NULL }, /* A7S-III */
    ...
}

Something else that doesn't work is changing the ISO, shutterspeed and
f-number settings. On the Sony A7-III changing those settings worked
incremental, step-by-step. It also worked slowly like that with the Imaging
Edge Desktop application.
On the contrary, with the Sony A7S-III, the ISO, shutterspeed and f-number
are changed instantaneously by Imaging Edge. So probably a different
settings-change method needs to be used, such as the direct method.

To try and search for the missing unreported properties and actions
(autofocus, capture, focusmagnify, etc.) I found that in the end
of _ptp_sony_getalldevicepropdesc, the size left is zero. So, clearly, it
didn't end on a decoding error. Just nothing left to decode. Could it be
that there's another way to get more data than with the
current PTP_DP_GETDATA query?

Unfortunately, I have run out of time to work on this and will not have
access to this camera model anymore, so I won't be able to check any future
fixes.
Would be great if support for the A7S-III will be completed in the future.
As well as for the Sony A7-IV, which was also not fully functional, the
last time I checked.

Kind regards, Jeroen

On Fri, Apr 5, 2024 at 10:01 AM Marcus Meissner <mar...@jet.franken.de>
wrote:

> Hi,
>
> In theory you should be able to add the 32bit variant as a secondary
> choice.
>
> The config code should skip the 16 bit variant if you have 32bit type,
> and then select the 32bit type.
>
> So copy the table and name it modes32 and just add the new line.
>
>
> There is "by usb id" table based driven code there (look for nikon ones),
> but I think just adding a different line with the different data type
> should
> work more transparently.
>
> > Unfortunately, still the operations/properties below are missing. I guess
> > there might be some more binary coding differences for operations as
> well.
> > Still some more work to do...
> >
> > Autofocus(0xd2c1): error 2002 on query.
> > Capture(0xd2c2): error 2002 on query.
> > Property 0xd2c3: error 2002 on query.
> > Property 0xd2c4: error 2002 on query.
>
> If the camera does not report them we can't really get to them.
>
> 0xd2c are also kind of write-only for instance.
>
> Ciao, Marcus
>
_______________________________________________
Gphoto-devel mailing list
Gphoto-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gphoto-devel

Reply via email to