Comment 11 for bug 217642

Revision history for this message
Johannes Meixner (jsmeix) wrote :

It seems you have to deal with multiple device IDs
and multiple model names (and perhaps multiple USB IDs
and whatever else multiple stuff).

What do you think about a change in the models.dat format
for a future HPLIP version so that multiple device IDs are allowed?

For example let the [...] entry be the default/fallback device ID
and have additional optional entries for the device IDs like

[business_inkjet_1000]
id1=hp_business_inkjet_1000
model1=Business Inkjet 1000

Perhaps also if there are several USB IDs for a technically
same model like:

[funprinter_1000]
id1=hp_funprinter_1000
id2=hewlett-packard_funprinter_1000_series
model1=Fun Printer 1000
model2=Fun Printer 1000 XL
usb-pid1=1a2b
usb-pid2=3c4f

Perhaps so that the numbers after the keywords must match
and that the [...] entry is only an abstract unique value which
describes the device class, i.e. that the above means that
there is a funprinter_1000 device class which contains
exactly two models
one with
  id1=hp_funprinter_1000
  model1=Fun Printer 1000
  usb-pid1=1a2b
and the other one with
  id2=hewlett-packard_funprinter_1000_series
  model2=Fun Printer 1000 XL
  usb-pid2=3c4f

If the "hewlett-packard_funprinter_1000_series" consists
of several model names it could be
  id2=hewlett-packard_funprinter_1000_series
  id3=hewlett-packard_funprinter_1000_series
  id4=hewlett-packard_funprinter_1000_series
  model2=Fun Printer 1000 XL
  model3=Fun Printer 1000 XXL
  model4=Fun Printer 1000 MFP
  usb-pid2=3c4f
  usb-pid3=3c4f
  usb-pid4=3c4f

If the "Fun Printer 1000 MFP" has a scanner unit
out of the box but the scanner unit is available also
(only) for the "Fun Printer 1000 XXL" (think about
the "LaserJet 1200" versus "LaserJet 1220") it could be
  id2=hewlett-packard_funprinter_1000_series
  id3=hewlett-packard_funprinter_1000_series
  id4=hewlett-packard_funprinter_1000_series
  id5=hewlett-packard_funprinter_1000_series
  model2=Fun Printer 1000 XL
  model3=Fun Printer 1000 XXL
  model4=Fun Printer 1000 MFP
  model5=Fun Printer 1000 XXL with scanner unit
  scan-type2=0
  scan-type3=0
  scan-type4=1
  scan-type5=1
  usb-pid2=3c4f
  usb-pid3=3c4f
  usb-pid4=3c4f
  usb-pid5=3c4f

The advantage would be that it is much more clear
what the actual hardware is out there in the world,
in particular you would not have to guess why there is
[business_inkjet_1000] and [hp_business_inkjet_1000] ;-)

Even for (automated) setup tools it would help
because an (automated) setup tool which detects
the USB ID 1a2b would know that this ID is only
a "Fun Printer 1000" which has never a scanner unit
but if the USB ID "3c4f" is autodetected, the tool
would know that several models match to it
and it could do whatever seems appropriate:
- either a conservative setup (only the printer)
- or a blind full-feature setup (printer + scanner)
- or no automated setup and leave it up to the user
  to select his actual model name manually.