Start
LabVIEW
Java
Tour
Manual
Demos
Support
Purchasing
 
put
your instruments
on the web

Knowledge Base


(under construction)

TECHNICAL
LabVIEW crashes in LvVariant.cpp line 702.

My HTML file loads, but the applet never appears (and no status LED appears).

My HTML file loads, but the applet never appears (status LED appears and is red or yellow).

The applet loads OK, but doesn't connect to LabVIEW.

How can I integrate AppletVIEW with Apache?

None of the links in AppletVIEW's online documentation are working.

PRODUCT
What's the difference between AppletVIEW and the LabVIEW internet toolkit?

What about the LabVIEW Player?

Do you use a browser plug-in?

Is the LabVIEW run-time required?

What sort of bandwidth does AppletVIEW support?

Why doesn't the java applet look like the LabVIEW application?

Can AppletVIEW be used with the LabVIEW application builder?

Can AppletVIEW be used with software other than LabVIEW?

Can I customize the AppletVIEW VI's?

What about modifying the Java code?

How many simultaneous connections can your server support?

What platforms and browsers do you support?

I would like different controls.

Can I run AppletVIEW or Java directly inside my LabVIEW application?

Can I let some users only view my application, while others can control it?

What about security?

What about firewalls?

What are the licensing terms?







TECHNICAL

LabVIEW crashes in LvVariant.cpp line 702.
This is caused by a bug in LabVIEW triggered by the AppletVIEW VI's when the value of a boolean control is converted to a variant, and the mechanical action of the boolean control is one of the latch modes. The bug has been reported to NI. The only work around is to change the mechanical action of the boolean control to not use a latch mode.

My HTML file loads, but the applet never appears (and no status LED appears).
Check the status pane of your Web browser. If it says something like "... class com.nacimiento.appletview.AppletView not found", it means it could not find the Java class files. Check the following:
  • Are you sure you are using a Java 1.1-compliant browser? Note that Netscape 4.06 or higher or Internet Explorer 4.01 or higher is required to work with Java 1.1. See the system requirements section.
  • Did you create an appletview directory at the root path of your Web (e.g., http://your.ip.address/appletview/)? If so, did you place the AppletVIEW.jar AND your .jvi file inside this directory? See section 2.4, "Saving and viewing your applet"

My HTML file loads, but the applet never appears (status LED appears and is red or yellow).
This probably means that the Java class files in AppletVIEW.jar were loaded, but the applet never found your .jvi file. Check the following:
  • Are you running a Web server on your machine, and if so, did you load your HTML page through a http:// URL, and NOT the file:/// URL? AppletVIEW applets MUST be loaded through http.
  • Did you create an appletview directory at the root path of your Web (e.g., http://your.ip.address/appletview/)? If so, did you place the .jvi file inside this directory? See section 2.4, "Saving and viewing your applet"
  • Check your HTML source. Is the parameter "ConfigFile" pointing to the correct .jvi file?

The applet loads OK, but doesn't connect to LabVIEW.
If the status LED is yellow, your applet is still loading. Wait until it turns green. If the status LED is green, you have made a connection to LabVIEW. Check your LabVIEW code. If the status LED is red, it means that communication with LabVIEW has failed. Check the following:
  • First try hitting +Reload on your browser. When communication is interrupted, you must re-load the applet to re-initiate communication.
  • Is your LabVIEW VI running and has it called the "Create Listener" and "Wait on Applet Connection" VIs before the applet attempts to connect?
  • If you are verifying the appletID in LabVIEW, does this applet's appletID match?
  • If another applet has already connected to LabVIEW, and you are not using a multiple-client program such as AppletReplicator, you will not be able to connect more than one applet simultaneously.
  • Do the data ports match (e.g, the applet and LabVIEW by default use port 4747; check to see if you changed it on one of the two)?
  • Is there another application that is using the data port?

How can I integrate AppletVIEW with Apache?
The way to use another HTTP server (such as apache) is:
  • Either create the directory /AppletVIEW/ at the top of your HTML tree, or map the URL /AppletVIEW/ to some directory, and put the AppletVIEW JAR files there.
  • Put your HTML files containing the AppletVIEW applets tags and the corresponding VIML/JVI files in the same directory somewhere in the apache web tree (the HTML and VIML/JVI must be together).
  • Make sure the Codebase attribute in the applet tag is "/AppletVIEW/" (it should be this, but it's good to double check).
  • Make sure the reference to the VIML file in the applet tag has only the name of the file and no path information so it is looked for in the same directory as the HTML file. (This should also already be this way, but, again, it's good to check.)

None of the links in AppletVIEW's online documentation are working.
The links assume the AppletVIEW server program is running. The server program has a web server in it listening on port 8080, and the links try to attach to the pages being served by the web server. This is so that the example applets will work correctly.

PRODUCT

What's the difference between AppletVIEW and the LabVIEW internet toolkit?
AppletVIEW allows real-time control as well as monitoring, where the internet toolkit only allows monitoring. You can simulate real-time interaction with the internet toolkit by using an image map and CGI, but it is difficult to build and does not give you full control. Right now, NI recommends AppletVIEW for any applications requiring real-time interaction.

What about the LabVIEW Player?
The LabVIEW player does not handle the network connection and does not automatically hook up to the remote VI. All it does is allow you to run a VI locally on your own machine.

Do you use a browser plug-in?
No! We use only standard web browsers - no plugins, no special downloads; just as they are.

Is the LabVIEW run-time required?
No! The labview run-time is not required on the client - only a standard browser is required.

What sort of bandwidth does AppletVIEW support?
The appletview protocol is very lightweight, and works fine on modem connections. You can try out the demos on our website if you'd like to verify.

At the upper end, the amount of data that can be sent is almost always limited by how fast the client browser can receive and process it. We have found the upper limit to be about 60-100 datapoints per second. This is a limitation of Java in a browser, not AppletVIEW.

Why doesn't the java applet look like the LabVIEW application?
Because of NI's intellectual property rights, we would need to get permission from them to directly reproduce NI's controls. But even if we received permission, we have designed AppletVIEW to be as lightweight as possible on the client, meaning we prefer to use the Java controls built in to Java 1.1. This allows us to avoid extra download time which would be required to send images, code, etc. that reproduce NI controls. The AppletVIEW toolkit can use any JavaBean as a control, however, so nothing prevents us from implementing in the future a JavaBean library that directly matches the NI controls.

Can AppletVIEW be used with the LabVIEW application builder?
Yes - AppletVIEW's LabVIEW code is just a standard set of VI's (no platform specific code or anything else special).

Can AppletVIEW be used with software other than LabVIEW?
Right now, AppletVIEW works with Java, LabVIEW and LabWindows. The architecture is very open, however, and we'd be glad to discuss any other applications you are interested in.

Can I customize the AppletVIEW VI's?
The AppletVIEW VI's ship unlocked (in the full product version - they are locked in the evaluation version). So, you can open them and do whatever you want to them. You should not have any reason to want to, though!! And note that the license you recieve prevents you from distributing in any way, shape or form any changes you make. Also, we will not be able to provide any technical support to modified VI's!

What about modifying the Java code?
The full product comes with source code to the Java Beans used as GUI controls, but not for the rest of the product. You can modify and use the GUI control code as you like. The license prevents decompiling or modifying the rest of the Java code in any way.

How many simultaneous connections can your server support?
As many as the hardware and OS allow. An OS will theoretically allow about 15000 TCP/IP connections. Typically, however, the software, amount of memory, etc. becomes a limitation. At this point we have not tried to maximize the number of simultaneous connections that the server can use, since it is written in Java (we would port to native platform code if we wanted maximum performance). About 100 simultaneous connections should not be a problem.

What platforms and browsers do you support?

client:
4.0 level browser
(unix,mac,pc,etc.)

server:
java 1.3 required

instrumentation machine:
labview 5 or 6
see related question: Can AppletVIEW be used with software other than LabVIEW?

I would like different controls.
The AppletVIEW toolkit supports just about any Java Bean as a control. So, if you have a Java Bean library you would like to use instead, chances are we can support it.

Special provisions must be made if the Java Bean library uses any version of Java other than 1.1.

Cases where we cannot support Java Beans is where the coding was done in some kind of unexpected way, or where properties have values other than string, int, float, boolean, or arrays of them.

Can I run AppletVIEW or Java directly inside my LabVIEW application?
Yes and no ... if you can interface the Java code using Sun's ActiveX container you might be able to get it to run inside LabVIEW. You will not be able to transfer object values back and forth, though,since LabVIEW has no concept of Java objects. Also, you will have to turn off multithreading in LabVIEW - it will conflict with the multithreading in Java. Our experience is this solution is very unstable. The AppletVIEW model of communicating with Java through a TCP/IP socket and keeping the applications in their own execution space is much more reliable.

Can I let some users only view my application, while others can control it?
Yes - AppletVIEW does this by allowing you to build different java interfaces to the same LabVIEW application. So, in one case you would build an interface that only has "output" controls, while for users with permission you could build an interface with all controls.

What about security?
AppletVIEW can only be connected to if a client successfully retrieves both the Java applet and the VIML file. You can use standard web security techniques to control access to these files.

What about firewalls?
AppletVIEW allows the port the server listens on to be set to any value, so you can coordinate with your network administrators to pick one they like. Alternatively, you can set the AppletVIEW communication port to 80, which is the standard HTTP port and which most network administrators are comfortable enabling.

What are the licensing terms?
Summary: you receive a license to run the AppletVIEW server on a single machine. This server supports unlimited (see question 6) connections, meaning you can have many clients and many LabVIEW applications connected at the same time.

Request a copy of the complete license for details.



 Copyright 2004 Nacimiento Software Corporation. All Rights Reserved. US Patent Protected.