Camera error message using Pempro and APCC

I am trying to get Pempro and APCC to work with my Canon 6D and SGP. Win 10, SGP version 2.6.0.8. Here is the log file.

I am getting the following error message about ISO not being set when using either program and trying to connect to the 6D through SGP.

The ISO is in fact set in SGP, in the camera itself, and in this dialogue box.

The error message remains. Any suggestions appreciated!

Dean

Hi Dean,

I looked in your SGPro logs but I didn’t see any log entries to capture an image. Are there any other logs that you might have missed?

BTW, if you enable the “extra debug output” then the messages between SGPro and PEMPro should be captured in PEMPro’s log files in the “Debug” directory (to get to that directory, click “View” in the lower right of PEMPro’s setup tab).

-Ray

Hi Ray,

I just now checked the debug option and tried to start a Pempro run (indoors). Same error message appears. Here are the Pempro, SGP and APCC logs for that short session. Dropbox - File Deleted
Dean

@headdown

Did you also check “Enable API logging” in the SGPro Help menu?

Hi Ken,

I did now, and just did another attempt, with the same error message. Here are the logs from this attempt with API logging enabled.

Dean

Hi Ken,

I think I see the problem. Back when I first created the SgPro interface functions I don’t recall seeing the “Iso” field, just the “IsoMode” field. Was the “Iso” field added sometime afterwards? Confusingly, the API’s description for IsoMode says it is “the desired ISO to capture with” (see picture below):

-Ray

Hey @rgralak

I think @Jared might have been in that API last. Tagging him here…

@Ken, @Jared

Thanks Ken.

Jared, I would like to know what is the expected value for ‘IsoMode’… “0” for ignore ISO, and “1” to use ISO?

Also, is there a reason why ‘Iso’ is a string instead of an integer?

Thanks,

-Ray

@Jared,

Is there any chance that I can get a definitive answer this weekend on how I should be setting SGCaptureImage ReST API members when using camera ISO?

Thanks,

-Ray

@ray there is a method on the camera object that will return an array of all the acceptable ISO values. You must access that when the camera is connected. If I recall it’s just the camera status object. I can get you a definitive answers here in a few hours when I can get to a computer.

Thanks,
Jared

@Jared,

Jared, thanks for the quick reply! I saw the list of ISO values returned in the Dean’s log above, so I understand that.

  1. I am unsure about how the “IsoMode” member fits in. In the screenshot above it indicates that the ISO value should be placed in IsoMode, but I think that the “Iso” member is where the ISO value actually should be placed.

  2. If the user wants to default to the current ISO he has selected in SGPro, would I simply not pass “Iso” and “IsoMode” (because the API says they are optional)? Or do I need include them and explicitly set certain values? (e.g. “0”)

I am asking these questions only because I don’t have an easy way to test Canon DSLRs myself and I don’t want to have to make “trial and error” releases to beta testers.

-Ray

@ray IsoMode is deprecated (I’m removing this now actually). So that leaves ISO. For cameras that support ISO, it is required, IE if you query cameraprops and the IsoValues list length is non-zero you will need to supply an iso. Here is what the camera props looks like with my Canon 6D:

{
  "Success": true,
  "Message": "Success",
  "NumPixelsX": 0,
  "NumPixelsY": 0,
  "SupportsSubframe": false,
  "IsoValues": [
    "100",
    "125",
    "160",
    "200",
    "250",
    "320",
    "400",
    "500",
    "640",
    "800",
    "1000",
    "1250",
    "1600",
    "2500",
    "3200",
    "4000",
    "5000",
    "6400",
    "8000",
    "10000",
    "12800",
    "25600"
  ]
}

And for fun, with my Nikon (and you can now see why ISOs are strings…)

{
  "Success": true,
  "Message": "Success",
  "NumPixelsX": 0,
  "NumPixelsY": 0,
  "SupportsSubframe": false,
  "IsoValues": [
    "100",
    "125",
    "160",
    "200",
    "250",
    "320",
    "400",
    "500",
    "640",
    "800",
    "1000",
    "1250",
    "1600",
    "2000",
    "2500",
    "3200",
    "4000",
    "5000",
    "6400",
    "Hi-0.3",
    "Hi-0.7",
    "Hi-1.0",
    "Hi-2.0"
  ]
}

ISO varies by manufacturer and even by camera. Higher end cameras generally support higher and more ISO values. Thus we can’t have a static list here.

Hope that helps,
Jared

So this doesn’t currently exist. We can probably have it such that if “0” is passed in for ISO that we just leave the camera ISO as is. This is different from using the value that is in SGP. Because the API circumvents the UI layer I’m not sure if we could easily (read that “not without some hackery”) populate the UI value for ISO here.

@Ken and I will talk this part over.

Thanks,
Jared

@Jared,@Ken

OK, got it. I’ll make the appropriate changes.

And, thanks for the example ISO lists.

-Ray

@Jared, @Ken

Thanks again, Jared and Ken. I just released a new beta build of PEMPro with the required changes. I’m now updating APCC with the changes.

-Ray

Great to hear. Thanks guys! It may be a while until I can try it out.

Dean

@rgralak

Sorry about that. Going forward we will version our endpoints so that existing software integration does not break.