qhyccd-lzr / QHYCCD_Linux

SDK for QHYCCD cameras
21 stars 17 forks source link

QHY9 initialization and TEC operation fixes #3

Closed AlexRoman closed 10 years ago

AlexRoman commented 10 years ago

These were the fixes I had to make to get the camera working with a minimal INDI driver. What I've tested was the cooling and exposures. Binning and sub-framing are still TODO (not verified).

AlexRoman commented 10 years ago

Hi, please see my INDI QHY9 driver project at https://github.com/AlexRoman/indi-qhy9-libqhyccd . That is the code that I wrote to make it work with the SDK. Now, I haven't seen an example from you guys as to how to use the SDK, and so I "guesstimated" a few of the calls and played with it, so I can't guarantee that the fixes I'm submitting are not required simply because I am not making the right calls in the right sequence. Please take a look and advise. If we can solve this issue properly from my code (i.e. not by adding sleeps here and there), then I think we should do that, but I feel it's a firmware issue... Otherwise, this seems to provide a reasonable compromise in the meanwhile.

ykm2006 commented 10 years ago

Hello, yesterday I looked around the code for IC8300 and I reached at the same point where Alex has fixed in terms of the SetChipResolution(). Actually ic8300.cpp has the same issue as qhy9s.cpp. I have my fix in my local branch but I thought the master branch should have the fix.

qhyccd-lzr commented 10 years ago

Hello

Glad to receive your email. Thank you for your work for SDK.

the IC8300 and QHY9 do not support the set resolution. Yes,the resolution could be changed.But it is not a real resolution change. It is a binning change.So I think we do not need to set resolution.(so,I let the api always return NOTSUPPORT).

Thank you all the time. 在 14-8-17 11:27, ykm2006 写道:

Hello, yesterday I looked around the code for IC8300 and I reached at the same point where Alex has fixed in terms of the SetChipResolution(). Actually ic8300.cpp has the same issue as qhy9s.cpp. I have my fix in my local branch but I thought the master branch should have the fix.

— Reply to this email directly or view it on GitHub https://github.com/qhyccd-lzr/QHYCCD_Linux/pull/3#issuecomment-52412587.

AlexRoman commented 10 years ago

OK, but QHY9S::InitChipRegs() calls SetChipResolution() and if this call doesn't return SUCCESS, then it bails out and doesn't execute the SetChipBinMode(). Either way, the call to InitChipRegs() wouldn't return SUCCESS unless all functions it calls return SUCCESS (including SetChipResolution()).

So, we either make SetChipResolution return SUCCESS, or we make InitChipRegs() not call it, but it seemed like it set some parameters, so I wanted to make sure that code executes...

qhyccd-lzr commented 10 years ago

Oh ,It is my mistake. I think you are right.So, I will path the code to mine. Thanks a lot.

在 14-8-18 22:29, Alex Roman 写道:

OK, but QHY9S::InitChipRegs() calls SetChipResolution() and if this call doesn't return SUCCESS, then it bails out and doesn't execute the SetChipBinMode(). Either way, the call to InitChipRegs() wouldn't return SUCCESS unless all functions it calls return SUCCESS (including SetChipResolution()).

So, we either make SetChipResolution return SUCCESS, or we make InitChipRegs() not call it, but it seemed like it set some parameters, so I wanted to make sure that code executes...

— Reply to this email directly or view it on GitHub https://github.com/qhyccd-lzr/QHYCCD_Linux/pull/3#issuecomment-52499836.

ykm2006 commented 10 years ago

Hello lzr, thank you for fixing the code. I am going to check with my IC8300 camera. Also thank you for adding some demonstration codes for IC8300, it would help understand how to use the SDK.

I also checked qhy9s.cpp and I am afraid to say that InitChipRegs() in qhy9s.cpp would still have the issue as Alex originally figured out. Could you please fix it as well, so that we can share the SDK to make our attempt to develop our software with your SDK as generic as possible and easy to maintain with your official SDK, not with our grass root patches.

qhyccd-lzr commented 10 years ago

Hello ykm2006

Yes,you are right.Thanks for your advice. I have merged to offcial SDK. Best Regards!

在 14-8-19 21:24, ykm2006 写道:

Hello lzr, thank you for fixing the code. I am going to check with my IC8300 camera. Also thank you for adding some demonstration codes for IC8300, it would help understand how to use the SDK.

I also checked qhy9s.cpp and I am afraid to say that InitChipRegs() in qhy9s.cpp would still have the issue as Alex originally figured out. Could you please fix it as well, so that we can share the SDK to make our attempt to develop our software with your SDK as generic as possible and easy to maintain with your official SDK, not with our grass root patches.

— Reply to this email directly or view it on GitHub https://github.com/qhyccd-lzr/QHYCCD_Linux/pull/3#issuecomment-52632378.

ykm2006 commented 10 years ago

Thanks, but are you sure it is OK that the two logics for ic8300 and qhy9s are not identical?

In ic8300 you do not call SetChipResolution() but in qhy9s you accepted Alex's fix that calls SetChipResolution() setting values such as roixsize and roiysize and returns with QHYCCD_SUCCESS.

I assume both cameras are basically identical in terms of camera resolution capability, the logics for initialization for resolution should be identical too... Could you please check it again?