LabVIEW-DCAF / EIPModule

modules for interacting with Ethernet/IP
https://decibel.ni.com/content/projects/reference-designs-for-distributed-control-systems
Other
6 stars 2 forks source link

Unhelpful error when scripting includes if you don't have the driver installed. #24

Open theSloopJohnB opened 7 years ago

theSloopJohnB commented 7 years ago

When attempting to script a Host Includes.vi with the EthernetIP Module in a PC, I got the following error window:

image

Full text of the error:

Possible reason(s):

LabVIEW: Library has errors. Fix the errors before attempting this operation.

Complete call chain: Get LV Class Default Value By Name.vi class discovery singleton.lvlib:load class.vi class discovery singleton.lvlib:class discovery singleton.vi script includes VI.vi PLTarget PC.lvclass:PCUI.vi PLTarget PC.lvclass:PCUI.vi.ACBRProxyCaller.9EF000A3

LabVIEW attempted to find the class with this name: EthernetIP runtime.lvclass

It looks like it was because I didn't have the industrial comms driver installed. No better hint about needing that particular driver!

theSloopJohnB commented 7 years ago

Doug, James and I brainstormed a little bit given similar issue in xnet, https://github.com/LabVIEW-DCAF/J1939/issues/20#issuecomment-316188681

Not having the driver installed is a common theme for usability issues.

Idea 1: Put a 'Drivers Required Column' in the list of modules

Idea 2: As a post build step, the package should check that its NI driver dependencies (e.g. in vi.lib) are installed, and if not pop up a dialog (if not in quiet mode) telling the user to install them.

Idea 3: Hook into VIPM package installation to trigger NI Package Manager to install the required drivers. I don't know what kind of API they provide, but presumably you can at least run it from the command line. This starts to get a little intrusive though.