indiwebmanager icon indicating copy to clipboard operation
indiwebmanager copied to clipboard

Custom drivers registered with KStars 3.6.1 do not appear in the indiwebserver driver list.

Open jctk opened this issue 3 years ago • 9 comments

Several drivers are duplicated in the driver list. Even if I select one of them, both are checked when I reload web manager.

To Reproduce

  1. install astroberry-diy. see detail at https://github.com/rkaczorek/astroberry-diy
  2. start indi web manager.
  3. create new profile
  4. check one of "astroberry system" in drivers list.
  5. save profile.
  6. reload indi web manager.
  7. select created profile at step 3.
  8. both "astroberry system" have been checked.

Screenshot image

File list in /usr/share/indi ls.txt

drivers.xml and indi_astroberry_system.xml drivers.zip

jctk avatar Oct 01 '22 08:10 jctk

more information:

I tried to request following REST API for indi web manager.

get http://smdev.local:8624/api/drivers

I found following two definition of "Astroberry System" in response body.

  {
    "name": "Astroberry System",
    "label": "Astroberry System",
    "skeleton": null,
    "version": "2.10",
    "binary": "indi_astroberry_system",
    "family": "Auxiliary",
    "custom": false,
    "role": ""
  },
  {
    "name": "",
    "label": "Astroberry System",
    "skeleton": null,
    "version": "1.0",
    "binary": "",
    "family": "Auxiliary",
    "custom": true,
    "role": ""
  },

jctk avatar Oct 01 '22 08:10 jctk

The system just reads whatever XML files are in /usr/share/indi so you probably have both in there?

knro avatar Oct 02 '22 05:10 knro

There is only one indi_astroberry_system.xml in /usr/share/indi. And no difinition about 'astroberry system' in drivers.xml.

Please see after the screenshot in the link below. https://github.com/knro/indiwebmanager/issues/53#issue-1393305210 There are directory listing, driver.xml and indi_astroberry_system.xml.

jctk avatar Oct 02 '22 05:10 jctk

I found the cause of this issue.

"Astroberry System" is registered in the following two places and is shown in the driver list of indi web manager.

  • /usr/share/indi/indi_astroberry_system.xml
  • "custom" table in ~/.indi/profiles.db (Fig.1)

Fig.1 image

By the way, where are Custom Drivers stored in Kstars 3.6.1 for StellarMateOS?

I believe the aforementioned "custom" table in ~/.indi/profiles.db was set up by me in a past version of KStars. However, in the current 3.6.1, none of the Custom Drivers are defined in the Custom Drivers dialog (Fig. 2). Is there any way to edit the "custom" table in ~/.indi/profiles.db from Kstars?

Fig.2 image

jctk avatar Oct 19 '22 05:10 jctk

Hi @knro

KStars 3.6.1 registers custom driver information in table customdrivers in ~/.local/share/kstars/userdb.sqlite. However, indiwebmanager retrieves custom driver information from table custom in ~/.indi/profiles.db.

Therefore, custom drivers registered with old KStars are displayed in the driver list of indiwebmanager. On the other hand, custom drivers registered with KStars 3.6.1 are not displayed in indiwebmanager.

I should change the title of this Isseu.

jctk avatar Oct 19 '22 11:10 jctk

I have read a little indiwebmanager code. Am I correct in understanding that when INDI Web Manager in KStars Profile Editor is checked, the Custom Driver used in the profile is added to the table custom in profiles.db?

Is there a way to delete a custom driver registered in table custom?

jctk avatar Oct 20 '22 02:10 jctk

Custom drivers should be synced from the client to web manager. Maybe the web manager is bugged and does not reflect all the custom drivers?

knro avatar Oct 20 '22 05:10 knro

It probably works according to the indiwebmanager specification. I believe that the following is the reality of this issue, which I did when I did not know much about Custom Driver.

On Windows11

  • Register Custom Driver in KStars (I used to check INDI Web Manager in Profile Editor. Now it is not checked)

On StellarMate OS:

  • Custom Driver is not registered in KStars
  • indiwebmanager registered Custom Driver for Kstars on Windows in ~/.indi/profiles.db.
  • I also registered drivers in /usr/share/indi in xml format

The following behavior may be difficult to understand as a specification

  • It is not clear where and when indiwebmanager's Custom Driver was added.
  • I do not know how to delete Custom Driver of indiwebmanager. (I deleted it directly in sqlite)

For example, how about the following changing ?

  • Add/delete each Custom Driver from KStars to/from indiwebmanager manually.
  • The driver list in indiwebmanager shows that it is a Custom Driver and the KStars from which it was registered.

jctk avatar Oct 20 '22 06:10 jctk

Hi @knro You may close it as it behaves as specified. I would be happy if you could improve the specifications to make it easier to use the custom driver settings.

jctk avatar Oct 20 '22 15:10 jctk