ASCOM Focuser & Temp Compensation
Posted: Fri Dec 28, 2018 6:04 pm
Hi Robin,
I know you made some changes regarding Focusers when ASCOM 6.4 was released, but I am not sure I follow what those changes were.
However, since I am the writer of Baader Steeldrive ASCOM driver I realised I needed to upgrade for ASCOM 6.4, now done. Now being more on par with what the changes where and why, I find that Sharpcap still does not allow Move when TempComp is active.
There is a backstory to why focusers have been badly specced in ASCOM for years, and why there have been different manual workarounds in programs like MaxImDL to handle this inconsistency. But now with ASCOM 6.4 at least it is clear who have responsibility to do what concerning how drivers should be used.
IFocuserV2.Move allows exceptions, which some focusers throw if TempComp is active.
IFocuserV3.Move must not throw exceptions, and it is up to the writer of the driver to handle issues if TempComp is active.
My driver, ASCOM Baader Steeldrive Focuser, is now ported to IFcosuerV3 but I still find that SharpCap does not allow Move when TempComp is active.
Since there is a degree of backward compatibility to consider, I would propose the following change:
1. If focuser method .InterfaceVersion returns < 3, proceed as now.
2. If focuser method .InterfaceVersion returns >= 3, allow Move even if TempComp is active.
Does this seem acceptable?
I can help testing and verifying the changes if you proceed, just contact me.
Clear Skies,
Magnus
I know you made some changes regarding Focusers when ASCOM 6.4 was released, but I am not sure I follow what those changes were.
However, since I am the writer of Baader Steeldrive ASCOM driver I realised I needed to upgrade for ASCOM 6.4, now done. Now being more on par with what the changes where and why, I find that Sharpcap still does not allow Move when TempComp is active.
There is a backstory to why focusers have been badly specced in ASCOM for years, and why there have been different manual workarounds in programs like MaxImDL to handle this inconsistency. But now with ASCOM 6.4 at least it is clear who have responsibility to do what concerning how drivers should be used.
IFocuserV2.Move allows exceptions, which some focusers throw if TempComp is active.
IFocuserV3.Move must not throw exceptions, and it is up to the writer of the driver to handle issues if TempComp is active.
My driver, ASCOM Baader Steeldrive Focuser, is now ported to IFcosuerV3 but I still find that SharpCap does not allow Move when TempComp is active.
Since there is a degree of backward compatibility to consider, I would propose the following change:
1. If focuser method .InterfaceVersion returns < 3, proceed as now.
2. If focuser method .InterfaceVersion returns >= 3, allow Move even if TempComp is active.
Does this seem acceptable?
I can help testing and verifying the changes if you proceed, just contact me.
Clear Skies,
Magnus