View Issue Details

IDProjectCategoryView StatusLast Update
0000778SkyChart1-Softwarepublic15-12-11 17:21
ReporterChris Rowland Assigned ToPatrick Chevalley  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
PlatformPCOSWindows 7 64 bits 
Product Version3.2 
Target Version4.0Fixed in Version3.11 SVN 
Summary0000778: Fix ASCOM interface with 64 bit Windows
DescriptionThe current implementation won't connect directly to ASCOM telescope drivers because the ASCOM library that's used doesn't support 64 bits.

There is a new library in ASCOM platform 5.5 that does allow this, this is what's needed to change this:
The procedure Tpop_scope.SpeedButton3Click in pu_ascomclient.pas should call CreateObject('Utilities.Chooser') instead of 'DriverHelper.Chooser'. The Utilities Object is 64 bit compatible so this should work.

I've put a suggestion for a procedure to do this in the Additional Information; if Utilities.Chooser fails it tries DriverHelper.Chooser and if that also fails it reports an error with appropriate messages.

I'm sorry but I can't try it because I don't have Delphi.
Additional Informationprocedure Tpop_scope.SpeedButton3Click(Sender: TObject);
var
  V: variant;
begin
{$ifdef mswindows}
try
  initialized:=false;
  { try to create Utilities.Chooser, this will work with 64 bits Windows but is only available in ASCOM 5.5
    or better. If it doesn't work revert to DriverHelper.Chooser }
  try
    v := CreateObject('Utilities.Chooser');
  except
    V := CreateOleObject('DriverHelper.Chooser');
    { hope that an exception in the except section will bubble up and be caught in the next layer }
  end;
  V.devicetype:='Telescope';
  edit1.text:=V.Choose(edit1.text);
  V:=Unassigned;
  SaveConfig;
  UpdTrackingButton;
  except
    {$ifdef win64}
    Showmessage('The ASCOM telescope chooser requires ASCOM platform 5.5 or better for a 64 bits application.'
                +crlf+'ASCOM Platform 5.5 can be downloaded from'+crlf+'http://ascom-standards.org');
    {$else}
    Showmessage('Please ensure that ASCOM telescope drivers are installed properly.'+crlf+'See http://ascom-standards.org for more information.');
    {$endif}
  end;
{$endif}
end;
TagsNo tags attached.

Relationships

has duplicate 0000953 closed Problems with ASCOM interface 
child of 0000858 resolvedPatrick Chevalley Problems that prevent the release of a stable Win64 build 

Activities

Patrick Chevalley

11-01-11 18:14

administrator   ~0001515

Thank you Chris, I try that.

Chris Rowland

11-01-15 14:51

reporter   ~0001517

Patrick, I've had a bit more of a look and it may be worth waiting a bit.

Drivers that are built as 32 bit dlls will not run with 64 bit applications because their bit mode is different. Drivers that are built as exes are fine because they run in their own process.

This isn't a problem that ASCOM can solve, but in Platform 6 we plan to mark 32 bit only drivers so they can be identified in the Chooser. Users running 64 bit applications will only be able to select drivers that will run with the 64 bit application but will see them all.

I'm not sure when Platform 6 will emerge, it's in Alpha at the moment,so you may want to wait until we are a bit closer to release.

It would be possible to add functionality to check the version of the ASCOM platform and call the chooser directly if it's platform 6, I can help with that if you want to do that.

Chris

Patrick Chevalley

11-08-11 09:24

administrator   ~0001691

I install Platform 6 on my Win64 testing VM.
ASCOM.Utilities.Chooser work much better and it is now possible to select a driver.

But it crash if I click the Properties button from the chooser or if I call Choose with a non empty parameter.
This is very strange as calling the driver SetupDialog from Skychart work.
And the whole process work fine if launched from the ASCOM Diagnostics.

I activate the ASCOM traces but I not see anything relevant. Anyway I upload a zip with the trace files.

Patrick Chevalley

11-08-11 09:27

administrator  

Logs-2011-08-11.zip (18,469 bytes)

Patrick Chevalley

13-07-09 15:36

administrator   ~0002543

This is fixed by using Free Pascal compiler current trunk FPC 2.7.1
Now ASCOM 6 work fine on Win64.

I wait the release of the stable version FPC 2.8 before to close the problem.

Patrick Chevalley

15-12-11 17:21

administrator   ~0003113

With the release of the stable version 3.0 of Free Pascal that include the fix it will be possible to make the win64 build again.
I try a first win64 beta next Monday.

Issue History

Date Modified Username Field Change
11-01-11 14:05 Chris Rowland New Issue
11-01-11 18:14 Patrick Chevalley Note Added: 0001515
11-01-11 18:14 Patrick Chevalley Assigned To => Patrick Chevalley
11-01-11 18:14 Patrick Chevalley Status new => assigned
11-01-11 18:14 Patrick Chevalley Target Version 0.3.0 => 3.4
11-01-15 14:51 Chris Rowland Note Added: 0001517
11-06-13 19:39 Patrick Chevalley Target Version 3.4 => 3.6
11-07-29 08:31 Patrick Chevalley Relationship added child of 0000858
11-07-29 08:38 Patrick Chevalley Target Version 3.6 => 5.0
11-08-11 09:24 Patrick Chevalley Note Added: 0001691
11-08-11 09:27 Patrick Chevalley File Added: Logs-2011-08-11.zip
12-02-26 16:31 Patrick Chevalley Relationship added has duplicate 0000953
12-02-26 16:31 Patrick Chevalley Relationship deleted has duplicate 0000953
12-02-26 16:32 Patrick Chevalley Relationship added has duplicate 0000953
13-07-09 15:36 Patrick Chevalley Note Added: 0002543
15-12-11 17:21 Patrick Chevalley Note Added: 0003113
15-12-11 17:21 Patrick Chevalley Status assigned => resolved
15-12-11 17:21 Patrick Chevalley Resolution open => fixed
15-12-11 17:21 Patrick Chevalley Fixed in Version 0.3.0 => 3.11 SVN
15-12-11 17:21 Patrick Chevalley Target Version 5.0 => 4.0