zug110 发表于 2022-12-24 22:16

Cam86的64bit驱动(NINA连接Cam86卡死问题已解决)附开光照

本帖最后由 zug110 于 2023-1-27 22:28 编辑

CAM86——一个古老但便宜的冷冻相机,但是驱动只有32位的。如果用NINA就只能运行在32位NINA下,新版的NINA只有64位的了,好在有源码,所以自己搞了个,但是不知道是什么问题,在ASCOM Diagnostics下测试连接速度和原版32位的差不多,但是在NINA里,连接速度慢的一逼,大概要1-5分钟不等,期间CPU占用为零,好象是什么地方挂起了。但是连接上以后一切正常。只能凑合用了,在此分享给用CAM86弟兄位试试看吧,我是在Windows7下搞的,不知道Windows10下是否能用,希望有条件的弟兄测试一下回复一下结果。
cam86ll.dll原版是用delphi7写的,所以无法改为64位,所以这个版本的cam86ll64.dll实际上是把原版的Pascal翻译成C以后用GCC编译成64位dll的,FTD2XX_NET因为找到了源码,所以直接将其加入到了cam86的驱动C#项目中了。
有了这个驱动就可以在NINA 3.0 64bit版中使用CAM86了,原版驱动只能支持到NINA 1.10 32bit版。
(这个是会卡死的原版,不要再下载了)

连接卡死问题已经解决了,问题其实很简单,在连接过程中,驱动程序会去打开设置对话框,然后在后面的某个函数中如果对话框是打开的就会对对话框的内容进行设置,然而糟糕的是这个函数会被NINA在上一次调用返回前再次调用,也就是发生了重入,但这个对话框的设置看来是不可以重入的,所以卡死了一段时间,现将原代码中在连接过程中打开对话框这一行注释掉再编译生成驱动问题就解决了,现在终于可以愉快的在NINA64位版中使用CAM86了,连接速度比32位原版在32位NINA中的连接速度还要快,这其实才是真正的连接速度,这应该是由于原版驱动过于古老,当时可能还没有NINA,所以原作者并没有对驱动在NINA下的情况进行测试,但原版驱动在SharpCap中的连接速度是正常的。毕竟从驱动的日期上看,原作者可能已经停止维护这些代码了。这是更新驱动。

请使用后面的TCam86,改个名字以便与原版区别一下,现在可以同时安装32位的原版和这个64位的TCam64了)

经测试Windows10-64bit下也可以用,但是还是要卡一段时间。需要注意是的一定要先安装Cam86的FTD2XX驱动,也就是要先把Cam86联接一下电脑,让电脑自动安装FTD2XX驱动。不然会报错:cam86ll64.dll无法加载。

以下再附上两张Cam86开光照,设备为EXOS-2+Onstep,72ED+1X平场镜,L-Pro滤镜,NINA2.1 64位版,小区内拍摄,SiriL叠加后光影魔术手简单处理了一下。

CCD温度=0C,Gain=0,180秒X26

CCD温度=0C,Gain=63,180秒X14




xinghai 发表于 2022-12-25 01:38

在32位NINA软件中驱动程序是32位,64位工作方式不同. 不能与任何软件一起工作.

zug110 发表于 2022-12-25 09:12

xinghai 发表于 2022-12-25 01:38
在32位NINA软件中驱动程序是32位,64位工作方式不同. 不能与任何软件一起工作. ...

是啊,所以为了在64位的NINA中使用CAM86才专门编译了这个64位版的驱动,但是现在问题是这个版的驱动在NINA中连接过程中要卡住1至5分钟,连接完成后又一切正常了。
再发一个可以在d:/cam86_log.txt中输出日志记录的cam86ll64.dll,把这个文件拷贝到C:\Program Files (x86)\Common Files\ASCOM\Camera\Cam86_X64覆盖原文件就可以看到NINA对CAM86进行的绝大部分调用了,其间有一段时间没有对cam86ll64进行调用,这段时间就是卡住了,但不知道对ASCOM.cam86.Camera.dll是否有调用。


zug110 发表于 2022-12-25 11:54

本帖最后由 zug110 于 2022-12-25 11:56 编辑

从这个截图上看,实际上点击连接后很快就连接成功了,但是就在NINA弹出成功提示框时卡住了。图上可看出提示框弹出在谈入谈出过程中停住了。

SharpCap 4.0 (64 bit)中连接CAM86也很快,就是NINA有问题,会卡住一段时间。


鬼星团 发表于 2022-12-26 15:27

感谢楼主为cam86 在64位nina中使用所做的努力 随后我也测试一波http://app.imufu.cn/public/emotion/face_003.png

红凯 发表于 2023-1-1 14:49

感谢楼主所做的努力和无私奉献

YKJ 发表于 2023-1-2 22:35

专业呀

zug110 发表于 2023-1-5 22:10

一般来说,不可重入的代码被重入是会导致程序崩溃的,在这里只是卡几分钟然后能正常运行应该是得益于C#环境强大的自稳定能力吧,如果是C++代码出现这种问题估计程序就闪退了。

bohotel 发表于 2023-2-11 22:24

好厉害呀
页: [1]
查看完整版本: Cam86的64bit驱动(NINA连接Cam86卡死问题已解决)附开光照