Serial Port Hangs

Hi, i have two computers (Solaris 10 - client and server) running two different java applications communicating via serial port.
One of them sends a telegram (about 40 chars) to the other every 50 milliseconds and waits for the acknowledge telegram to send the next available telegram. After a couple of hours, the serial port of the server side becomes unable to send or receive any data.
If I restart the applications (close the ports and reopen again), after sending another telegram, it hangs again. I tried opening the port using "tip hardwire", serial port sends one character, client gets one character then the same result. (Setting inputbuffersize to 0 and 1024 again is no help)
If I reboot the computer, everything's fine again. Opening the port using "tip hardwire works fine. I'm using javaxcomm library.
Is there any way to make the serial port functional again without rebooting, or any tips to understand what's the problem?
Thanks.
Edited by: senole on Aug 9, 2010 1:57 AM

HEllo;
Couldn't find anything on our Databases regarding that combination. My suggestion is to upgrade the VISA driver to the latest version available, and to contact the manufacturer of the third party device to see if they have something reported related to a compatibility problem is between their product and NI DAQ board.
Regards
Filipe A.
Applications Engineer
National Instruments

Similar Messages

  • Serial port hang/freeze

    On rare occasions my application freezes.  What I believe is happening is that the VISA Read or VISA Write vi never returns.  (The program is an executable, so I can’t go to the diagram to be sure.  I just released a new version that will help me isolate it further, but it takes time to propagate new software to users.)  I do have the timeout set to 500ms, and I know this works because it timeouts when I have no hardware attached.
    When the freeze happens, I have to go to the Task Manager to kill my application; however, it never actually quits.  It goes away on the Applications tab, but won’t leave the Processes tab.  Selecting End Process on the Processes tab won't make it go away either.  I can get it to go away, however, by unplugging the USB cable.  I then plug the cable back in, relaunch my application, and all is OK.  (A restart works, too.)  I am using the FTDI 2232 USB to dual serial port chip (set up for RS485) in my system.
    My first question is whether anyone has seen this before or has a suggestion to get this work.
    My second question is how do I figure out what is actually hanging?  My LabVIEW 8.5.1 executable calls a VISA 4.41 driver.  The VISA driver calls a Windows COM port driver.  The Windows COM port driver calls the FTDI driver (Version 2.4.6).  The FTDI driver calls the USB driver.  We are running Windows XP with all updates installed.
    I have about 50 of these systems running continuously.  I see about one freeze like this once every few days on a random system.  I am not able to reproduce it on demand.  Any debug solution will have to be deployable to all 50 systems; otherwise, it is possible that I won't see the bug for weeks, if ever.
    Thanks in advance for the help.
    Matt K.

    Just dug out the email from FTDI support....
    Blue 
    Hello,
    If it is an application problem then what could happen is you ask to read 10
    bytes but only receive 5. The application would appear to hang waiting for
    the remaining 5 bytes unless you have set timeouts to allow the read to
    abort.
    The fact you need to unplug and re-insert suggests the driver needs to
    reload.
    This could in theory be a result of a surprise disconnect.
    What this means is the device handle is open and the device disappears from
    the PC (like unplugging - but could be an EMC/noise event).
    When the device re-appears to the PC the handle and the hardware no longer
    match as the stack is not maintained during a disconnect.
    This would result in you not talking to the actual device but some "rogue"
    device handle which could theoretically hang the application.
    Some ideas for debug:
    1.
    Verify the driver version installed is 2.04.06
    http://www.ftdichip.com/Drivers/CDM/CDM%202.04.06%20WHQL%20Certified.zip
    2.
    Ensure you have set read and write timeouts in your application
    3.
    Use WM_DeviceChange to determine if you are disconnecting.
    http://msdn.microsoft.com/en-us/library/aa363480.aspx
    4.
    Try increasing the resetpiperetrycount to make the device more immune to
    noise events.
    http://www.ftdichip.com/Documents/AppNotes/AN_AdvancedDriverOptions_(FT_0000
    73).pdf

  • Problem in reading data from serial port continuously- application hangs after sometimes

    I need to read data from two COM port and order of data appearance from COM port is not fixed. 
    I have used small timeout and reading data in while loop continously . If my application is steady for sometime it gets hangs and afterwards it doesnt receive any data again. 
    Then I need to restart my application again to make it work.
    I am attaching VI. Let me know any issue.
    Kudos are always welcome if you got solution to some extent.
    I need my difficulties because they are necessary to enjoy my success.
    --Ranjeet
    Attachments:
    Scanning.vi ‏39 KB

    billko wrote:
    Ranjeet_Singh wrote:
    I need to read data from two COM port and order of data appearance from COM port is not fixed. 
    I have used small timeout and reading data in while loop continously . If my application is steady for sometime it gets hangs and afterwards it doesnt receive any data again. 
    Then I need to restart my application again to make it work.
    I am attaching VI. Let me know any issue.
    What do you mean, "not fixed?"  If there is no termination character, no start/stop character(s) or even a consistent data length, then how can you really be sure when the data starts and stops?
    I probably misunderstood you though.  Assuming the last case is not ture - there is a certain length to the data - then you should use the bytes at port, like in the otherwise disastrous serial port read example.  In this case, it's NOT disastrous.  You have to make sure that you read all the data that came through.  Right now you have no idea how much data you just read.  Also, if this is streaming data, you might want to break it out into a producer/consumer design pattern.
    Not fixed means order is not fixed, data from any com port can come anytime. lenght is fixed, one com port have 14 byte and other 8 byte fixed..
    Reading data is not an issue for me as it works nice but I have a query that why my application hangs after sometime and stops reading data from COM PORT.
    Kudos are always welcome if you got solution to some extent.
    I need my difficulties because they are necessary to enjoy my success.
    --Ranjeet

  • Problem in using serial port.

    I am using serial port to get data from a fusion splicer. The number of bytes at the port is 4096 but the read buffer of VISA read is empty. I am reading the same number of bytes. Can any one tell me what is the maximum size of VISA Read buffer? I am trying to put the contents of the buffer in a file. I am using labVIEW 6.1 on linux.I am also attaching the VI.
    I also noticed this problem...If I read the number of bytes in the serial buffer many times, sometimes it reads it as 0 and I have to keep trying until it reads this 4096 bytes.
    Thanx for any help.
    S.Vijayalakshmi
    Attachments:
    serail_comm.vi ‏52 KB

    Hey Viji,
    In your application it looks like you are just checking to see how many bytes are at the serial port. Is it possible that your application is check for the serial data at the port before the data actually gets there. If you are looping this code as a subVI or just running it over and over it is possible that one of the iterations could occur faster than your device can write the information to the bus. In this instance you are checking the number of bytes at the port and there might not be any there yet. In this case the port reads 0 as you have designed it.
    If you want the read function to wait and always read 4096 then don't wire the bytes at port to the read function. Just wire a constant/control equal to 4096 to the read function instead o
    f the bytes at port. In this case, if there are not any bytes at the port the read function will wait for the bytes to show up or until the timeout period is reached.
    I would also, suggest lowering your time to something more reasonable, because if your instrument quits transmitting your application is going to wait for 33 minutes. That is a long time for a program to hang.
    I hope this helps out.
    JoshuaP
    National Instruments

  • Windows Kernel Debbuging: Debug over virtual serial port with WDK 8.1

    I'm currently having some issues doing kernel debugging of a Windows 7 x64 target from my Windows 8.1 x64 host machine. I'm running Visual Studio 2013 with WDK 8.1 on my host and have provisioned my target machine running in VMWare.
    Here are my configurations for the target machine. It was configured by reading mostly from here - http://www.codeproject.com/Tips/545835/Kernel-Mode-Debugging-in-a-VM-using-Visual-Studio :
        Windows 7 x64
        Serial port COM2 with VMWare with name \\.\pipe\com2. All proper options in VMWare are checked
        Debug flag for OS enabled through msconfig. Debug port is COM2 running at 115200 baud.
        I ran the test target client "WDK Test Target Setup x64-x64_en-us.exe" on the machine before provisioning the computer
    I was able to provision the computer properly -- it created the WDK Remove User account. However, I'm running into some issues actually debugging. Below are the steps
        Launch the Windows 7 x64 target image in VMWare and wait on the boot menu
        In Visual Studio (host machine), go to Debug -> Attach to process -> Select my computer -> Select process "Kernel" -> Attach
        In VMWare, press enter to boot Windows
        It takes a while, but on my host machine, Visual Studio eventually connects. I can choose to "Break All" and actually use the debugger.
    However, I can't seem to connect to the debugger if I don't do it before booting the kernel. And I can only attach once. For example, I can't let Windows initialize to the desktop and then build my driver and begin debugging. The debugger will always hang on
    "Waiting to reconnect...". The same goes for if I begin debugging on kernel initialization, decide to stop debugging, then try to reconnect or reattach; it will hang on "Waiting to reconnect..." indefinitely as well.

    Follow the directions here: https://msdn.microsoft.com/en-us/library/windows/hardware/jj200334%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
    You are using user mode debug setup menus, that won't work.
    Mark Roddy Windows Driver and OS consultant www.hollistech.com

  • Problem while reading data from Serial Port

    Hi All,
    I am facing some problem while reading data from Serial Port.
    As per the requirement I am writing the data on Serial Port and waiting for response of that data.
    Notification for data availabilty is checked with method public void serialEvent(SerialPortEvent event) of javax.comm.SerialPortEventListener.
    When we are writing data on the port one thread i.e. "main" thread is generated and when data availability event occures another thread "Win32SerialPort Notification thread" is generated. This creates problem for me as we can't control thread processing.
    So can anybody pls explain me how to overcome this problem?
    Regards,
    Neha

    My Problem is:-
    I am simoultaneouly wrting data on port & reading data from port.
    First I write data on port using outputStream.write() method. Now when target side sends me response back for the request on serial port DATA_AVAILABLE of SerialPortEventListner event occured,we are reading data from serial port.Now till the time we didn't get the response from target next command can't be written on the serial port. When we are writing data on port main thread is executed.Now my problem starts when DATA_AVAILABLE event occured.At this point another thread is created.Due to this my program writes data of next command without reading response of previous command.To solve this prob. I have used wait() & notify() methods as follows.But again due to this my pc hangs after execution of 2 commands. (PC hang in while loop in a code provided below.)
    From SOPs I could figure it out that after 2 commands we are not able to write data on serial port so DATA_AVAILABLE event doesn't occure n pro. goes in wait state.
    Can anybody help me to solve this issue.
    Neha.
    Code:
    public void serialEvent(SerialPortEvent event)
              switch (event.getEventType())
                   case SerialPortEvent.BI:
                   case SerialPortEvent.OE:
                   case SerialPortEvent.FE:
                   case SerialPortEvent.PE:
                   case SerialPortEvent.CD:
                   case SerialPortEvent.CTS:
                   case SerialPortEvent.DSR:
                   case SerialPortEvent.RI:
                   case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
                                 break;
                   case SerialPortEvent.DATA_AVAILABLE:
                        try
                             dataThread = Thread.currentThread();
                             dataThread.setPriority(10);
                             dataAvailable = true;
                                                                                    byte[] tempArray=new byte[availableBytes];
                                        inputStream.read(tempArray);
                                                                       catch (IOException io)
                             SOP(io, "Error in serialEvent callback call for event DATA_AVAILABLE");
    public void  writetoPort(byte[] data) throws IOException
                             outputStream.write(data);
                              while(finalTimeOut >= actualTime)
                            if( ! dataAvailable)
                                    actualTime = System.currentTimeMillis();
                           else
              synchronized (mainThread)
                   mainThread = Thread.currentThread();
                   mainThread.wait();
    public  void sendDatatoUser(byte[] b) throws Exception, HWCCSystemFailure
              obj.returnData(b);
              synchronized(mainThread)
                   mainThread.notify();
                                                           

  • Reading 2 serial port in a same time

    i want to monitor 2 type of data in a same time
     1- i have 6 sensor and i send them from micro avr and packed in this format >> 
    printf("%4d%4d%4d%4d%4d%2d@%4.2f\r\n",a,b,d,c,e,p,f);
    i want to recive all 30 data bytes  in one port then unpacked them...
    2- i have a gyro sensor that sends data very slow every 500ms thats data like this   >> 
    x+40.2\s\s\Y+42.3\r\n
    i want recive all 16 data byte in another port and send feed back (write serial) too.
    i recive gyro sensor data recive in fix 16 byte and dont have any problem  .
    but i have problem that i dont recive fix data from 30 data(from micro) its hangs or recive lower.
    its becuse i use 2port in same time if i use it alone there is no problem.i recive it fix.
    plz help me.
    also im sory im not good at english.
    Attachments:
    8-28-2012 8-07-41 PM.jpg ‏289 KB
    read and write in 2 serial port.vi ‏28 KB

    Hey,
    I would first add some error handling to your loops.  The way you have it setup, the loops could be running in error and you will never know about it.  The code I have attached will stop the loop if an error occurs.
    Does it throw any errors when you run it?
    Lewis Gear CLD
    Check out my LabVIEW UAV
    Attachments:
    read and write in 2 serial portv2.vi ‏28 KB

  • How to detect if my external device is connected to the Serial port

    Hi,
    If I remove the cable from the serial port in my pc or either remove the serial cable from my external device, then when I send a request to open the serial port from my program, it basically does nothing, it just sits there.
    I want to be able to show some sort of message or any other way of indicating to the user that they should check the cable.
    below is the bit of code to open and set serial port params:
         public void openPort() {
              // Initialise the drivers
              System.setSecurityManager(null);
              String driverName = "com.sun.comm.Win32Driver";
              try {
                   CommDriver commdriver = (CommDriver) Class.forName(driverName)
                             .newInstance();
                   commdriver.initialize();
              } catch (Exception e2) {
                   e2.printStackTrace();
              // port will be set in Store Operations.
              String wantedPortName = Configuration
                        .getParameter(ConfigSetting.EFT_COM_PORT);
              //System.out.println("wantedPortname : " + wantedPortName);
              Enumeration portIdentifiers = CommPortIdentifier.getPortIdentifiers();
              CommPortIdentifier portId = null; // will be set if port found
              while (portIdentifiers.hasMoreElements()) {
                   System.out.println("counter");
                   CommPortIdentifier pid = (CommPortIdentifier) portIdentifiers
                             .nextElement();
                   System.out.println(pid.getName());
                   if (pid.getPortType() == CommPortIdentifier.PORT_SERIAL
                             && pid.getName().equals(wantedPortName)) {
                        portId = pid;
                        System.out.println("found a macth");
                        break;
              } // end of while
              if (portId == null) {
                   System.err.println("Could not find serial port " + wantedPortName);
                   //System.exit(1);
              try {
                   port = (SerialPort) portId.open("EFTDriver", // Name of the
                                                                               // application
                                                                               // asking for the
                                                                               // port
                             10000 // Wait max. 10 sec. to acquire port
              } catch (PortInUseException e) {
                   e.printStackTrace();
                   System.err.println("Port already in use: " + e);
                   //System.exit(1);
              // Now we are granted exclusive access to the particular serial
              // port. We can configure it and obtain input and output streams.
              try {
                        port.setSerialPortParams(9600, SerialPort.DATABITS_8,
                             SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
              } catch (UnsupportedCommOperationException usc) {
                   System.err.println("Unsupported operation" + usc);
              }Please advise what method can I use for this purpose.
    Thanks
    Abhi

    You mean it hangs in the open() method despite the timeout?

  • Serial port problems/explanation on the pda

    Hello,
    I have attached the jpg for a simple test I had carried out. I am writing a custom command to an external hardware and waiting for a response from the hardware.
    As you may see in the block diagram, I am waiting for a response from the external hardware in the 4th frame. In the 5th frame I calculate the waiting time. The 4th frame also informs us that there is data in the serial port that has to be read. Yet I need to introduce an empirical delay (405 ms) befoer I can read the data. Does anyone have an explanation/theory why I need to add this delay while switching from Write to Read in the PDA ?
    Similarly, I introduced a Case structure inside the WHILE loop of the 4th frame that was driven by the current lo
    gic. Inside the TRUE case I inserted the 7th frame logic. This did not work either. Any explanations?
    And lastly I ran this program multiple times at different time delays. If I reduced the time delay sufficiently, then after a few runs (approx 3-5), the program hangs. I am closing the serial port though it does not appear in the current diagram . Am I doing something wrong with the serial port handling ?
    Thanks for all the help that you can provide. I am open to any explanation that you may have regarding WinCE/PocketPC etc.
    Attachments:
    testing_read_write_serial.JPG ‏102 KB

    The answer can be found by asking and/or searching archives at www.ibutton.com/TINI

  • RxtxSerial library multiple serial ports listener

    Hello All,
    I am using rxtxSerial library (import gnu.io.*; compatible with previousely available from Sun import javax.comm.*;) for my bridge application. Th example provided in the library's web site with nulltest.java employs only one serial port. It is powerful since it is threaded and detects incomming/outgoing streams.
    However, I would like to bridge between servers so multiple ports will be employed. Do you heave any suggestion how to obtain multiple port handling (reading/writing) within the same class. The null test code is presented as follows. Simplest idea is to use arrays, but more details are required.
    // derived from SUN's examples in the javax.comm package
    import java.io.*;
    import java.util.*;
    //import javax.comm.*; // for SUN's serial/parallel port libraries
    import gnu.io.*; // for rxtxSerial library
    public class nulltest implements Runnable, SerialPortEventListener {
       static CommPortIdentifier portId;
       static CommPortIdentifier saveportId;
       static Enumeration        portList;
       InputStream           inputStream;
       SerialPort           serialPort;
       Thread           readThread;
       static String        messageString = "AT";
       static OutputStream      outputStream;
       static boolean        outputBufferEmptyFlag = false;
       public static void main(String[] args) {
          boolean           portFound = false;
          String           defaultPort;
          // determine the name of the serial port on several operating systems
          String osname = System.getProperty("os.name","").toLowerCase();
          if ( osname.startsWith("windows") ) {
             // windows
             defaultPort = "COM5";
          } else if (osname.startsWith("linux")) {
             // linux
            defaultPort = "/dev/ttyS0";
          } else if ( osname.startsWith("mac") ) {
             // mac
             defaultPort = "????";
          } else {
             System.out.println("Sorry, your operating system is not supported");
             return;
          if (args.length > 0) {
             defaultPort = args[0];
          System.out.println("Set default port to "+defaultPort);
              // parse ports and if the default port is found, initialized the reader
          portList = CommPortIdentifier.getPortIdentifiers();
          while (portList.hasMoreElements()) {
             portId = (CommPortIdentifier) portList.nextElement();
             if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
                if (portId.getName().equals(defaultPort)) {
                   System.out.println("Found port: "+defaultPort);
                   portFound = true;
                   // init reader thread
                   nulltest reader = new nulltest();
          if (!portFound) {
             System.out.println("port " + defaultPort + " not found.");
       public void initwritetoport() {
          // initwritetoport() assumes that the port has already been opened and
          //    initialized by "public nulltest()"
          try {
             // get the outputstream
             outputStream = serialPort.getOutputStream();
          } catch (IOException e) {}
          try {
             // activate the OUTPUT_BUFFER_EMPTY notifier
             serialPort.notifyOnOutputEmpty(true);
          } catch (Exception e) {
             System.out.println("Error setting event notification");
             System.out.println(e.toString());
             System.exit(-1);
       public void writetoport() {
          System.out.println("Writing \""+messageString+"\" to "+serialPort.getName());
          try {
             // write string to serial port
             outputStream.write(messageString.getBytes());
          } catch (IOException e) {}
       public nulltest() {
          // initalize serial port
          try {
             serialPort = (SerialPort) portId.open("SimpleReadApp", 2000);
          } catch (PortInUseException e) {}
          try {
             inputStream = serialPort.getInputStream();
          } catch (IOException e) {}
          try {
             serialPort.addEventListener(this);
          } catch (TooManyListenersException e) {}
          // activate the DATA_AVAILABLE notifier
          serialPort.notifyOnDataAvailable(true);
          try {
             // set port parameters
             serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8,
                         SerialPort.STOPBITS_1,
                         SerialPort.PARITY_NONE);
          } catch (UnsupportedCommOperationException e) {}
          // start the read thread
          readThread = new Thread(this);
          readThread.start();
       public void run() {
          // first thing in the thread, we initialize the write operation
          initwritetoport();
          try {
             while (true) {
                // write string to port, the serialEvent will read it
                writetoport();
                Thread.sleep(1000);
          } catch (InterruptedException e) {}
       public void serialEvent(SerialPortEvent event) {
          switch (event.getEventType()) {
          case SerialPortEvent.BI:
          case SerialPortEvent.OE:
          case SerialPortEvent.FE:
          case SerialPortEvent.PE:
          case SerialPortEvent.CD:
          case SerialPortEvent.CTS:
          case SerialPortEvent.DSR:
          case SerialPortEvent.RI:
          case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
             break;
          case SerialPortEvent.DATA_AVAILABLE:
             // we get here if data has been received
             byte[] readBuffer = new byte[20];
                   int numBytes = 0;
             try {
                // read data
                while (inputStream.available() > 0) {
                   numBytes = inputStream.read(readBuffer);
                // print data
                String result  = new String(readBuffer);
                System.out.println("Bytes read: "+numBytes+", Read contents: "+result);
             } catch (IOException e) {}
             break;
    }Kujtim
    Edited by: Kujtim on Jul 12, 2009 1:41 PM
    Edited by: Kujtim on Jul 12, 2009 1:43 PM
    Edited by: Kujtim on Jul 13, 2009 1:57 PM

    As an off the wall suggestion, check the usb "power save settings" under "control Panelower Options:Edit Plan Settings:Advanced Settings:USB settings" You want the USB selective suspend setting to be Disabled. Another possible idagnostic tool might be to do  a    Power Efficiency Diagnostics Report  which we have found has occasionally pointed us to usb hanging issues. 
    Using the same type usb-serial adapters doesn't guarantee anything, but I have run into issues where a vendor's driver was implemented incorrectly. It ended up being a wrapper around the FTDI driver, and the wrapper dll wasn't correctly made multi-threaded safe. I browbeat the vendor (I was working at a LARGE corporation, with a prospective LARGE purchase of the devices) into telling me what calls their wrapper made. I then used the FTDI dll directly, not using the "simplified interface" of the vendor's dll. FTDI's dll was thread safe, no more random lockups/BSOD.
    Good Luck, these are incredibly painful!
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • Serial port doesn't close properly

    I'm working with the RXTX comm APi to connect a java application (jdk 1.5) with a mikrocontroller via a virtual serial port (using WinXP). I'm only jumping to certain addresses of the controller and then write into or read from them.
    After some tricky problems that were already discussed in this forum I now encountered a new one:
    After I finished my communication with the controller, I want to make a clean shutdown by closing the input- and outputStream, removing the SerialEventListener and finally closing the serialPort.
    When I'm doing the latter, the program suddenly hangs totally. No exception is thrown and I have to terminate the application through the ide.
    I monitor all the port traffic with "portmon" from sysinternals and it tells me that around 5 minutes after I tried to close the port, the javaw-process finally sends "IRP_MJ_CLEANUP" and "IRP_MJ_CLOSE".
    Sometimes only the first one is sent, what makes it impossible to connect to the port again without a restart of windows (port in use by unkown application).
    I don't have the sourcecode right with me now, so I can't post some examples. However I'm basically doing nothing else then most of the other sourcecodes concerning serial port connections posted in this forum. Anyway I will post some code later.
    But for now, has anybody some ideas what could be the problem?
    ********* EDIT **********
    Seems that it's not necessary to post my sourcecode because the same problem occures when I'm running the SerialDemo from the javax.comm 2.0 API.

    Here's an update.  The serial port works fine, as long as I don't have any I/O pci cards in the machine.  Both my Adaptec SCSI controller and a Pinnacle AV card cause the same malfunction with the serial port.  When those cards are removed, it works!  No conflicts with IRQ or anything that I can see.....no errors reported by windows device manager.
    P

  • Unable to capture data from Serial port using LVRT2010 in single core pentium 4 machine

    I am using application written in Labview using windows Labview
    Runtime environment 2010. Application creates a tunnel to intercept data from
    Serial port.
    My problem is, Currently, I am using single core Pentium
    processor. When I am trying to intercept the data between COM1 and COM7 (COM 7
    is a virtual port) it is not able to capture data.
    When I am running Labview RT environment using dual core
    processor machine it is running normally. I wonder whether it could be the compatibility issues with
    single core Pentium processor.

    Hi Magnetica
    Are both of the machines running the same runtime engine,
    drivers ect?
    Have you had RT applications running on this
    machine before?
    Is the development computer a 64bit machine?
    The processor is a supported model (See link below).
    http://zone.ni.com/devzone/cda/tut/p/id/8239
    Regards
    Robert
    National Instruments UK & Ireland

  • Problem on WinXP / Labview 6.1 with VISA (serial port)

    There is a problem on WinXP / Labview 6.1 with VISA which i use to poll the state lines of the serial port. The only functions that i use are "VISA Open", "Find Resource", line state properties and "VISA close".
    On my own machine (WinME) it works fine as a standalone application (with runtime engine in the same direction), even if i rename the Labview directory so that Labview is not found.
    From my VXIpnp directory i deleted all but these files:
    directory "Win95",
    subdirectory "Bin" containing "NiViAsrl.dll",
    subdirectory "NIvisa" containing "visaconf.dll".
    When shipping this to WinXP (and copying "VXIpnp" to the root directory), the serial port was not found, so i renamed the direction "Win95" to "
    WinNT", but this did not work also.
    I installed the VISA server, although it seems not to be required -- no result.
    Final question:
    What must i do for distributing the program as a standalone application for all windows platforms?

    Hey Joachim,
    In order to create an installer that includes the VISA Run-time engine for serial IO you will have to purchase LabVIEW 7.x. See screen shot. This packages a small compact version of the run-time that can only be used for serial, but it takes up much less space. The installer that I created has my application, the LV Run-time, and the VISA run-time and it is about 26 MB.
    That is much smaller than if I had to include the 32 MB LV 7.1 run-time and the 14 MB VISA run-time separately. It would have been even smaller if I would have uncheck some of the items that I wasn't using.
    -Josh
    Attachments:
    advanced.JPG ‏31 KB

  • Using a PS/2 keyboard on a Sparc workstation through the serial port

    We have recently migrated an application that used to run on a PC, to now run on a Sparc Workstation. This is a SunBlade 1500, running Solaris 8. The application is running in a dedicated console which has a fitted keyboard and trackerball that have PS/2 connectors and cannot be changed.
    We need a way of connecting the PS/2 keyboards to the serial ports of the Sparc workstation. We already have a piece of software that will read ascii values from the serial port so we definately want to go through the serial ports.
    Can someone please suggest what converters will be required to get the output of the keyboard and trackerball as ascii input to the serial port.

    Actually, that's not a bit perverse, at all.
    Jonathan's suggestion is a standard method of connecting to a server.
    (null cable between the computer serial ports)
    ... see the Solaris man pages.
    man tip
    TeraTerm and Hyperterminal are customarily used on a PC running some dialect of Windows.
    The 'tip' command is all that's necessary between Solaris systems.
    PS/2 is not a serial connection, but is a keyboard/mouse interface 'invented' by IBM when they offered their XT-class PS/2 line of desktop systems, back in the 1980's.
    I found this next link by using Google:
    http://members.chello.at/theodor.lauppert/computer/ps2/
    The smaller DIN ports were more compact than the AT-class keyboard ports and the mouse moved from a serial port to a dedicated mouse port.
    Serial communication devices are not keyboards, per se,
    and keyboards are not serial communication devices.
    You need other hardware in between to translate what the human being sends, and another computer is a common method to accomplish that translation.
    Having said all that ...
    Since you cannot change the dedicated console hardware,
    I suggest you go to the manufacturer of that console equipment
    and have them suggest some sort of serial-to-serial interface lash-up.

  • Using a serial port under j9.. How?

    I am trying out j9 on an ipaq. I am trying to get javax.comm to work.
    When I call CommPortIdentifier.getIdentifiers ();
    I get java.lang.string.NoSuchMethodError: java/lang/String.<init>([BIII)V
    It would appear that the javax.comm package was implemented using a now deprecated String method, and that IBM has chosen not to implement deprecated methods in it's j9 vm (I get the same issue trying to run swing.)
    One would think that what is needed is an updated javax.comm package. However, there doesn't appear to be a javax.comm package on Sun's site, let alone an updated one. Whats going on here? Can someone give me an idea of how Sun and/or the JCP thinks about developers who want to use serial ports?
    Is there a workaround? A different way of talking to a serial port? Or should I abandon j9? I should add that I got my software running just fine on nsi.com's creme vm (javax.comm and swing too) and it worked without any hassles. It even understands jar files (is there a reason why IBM insists on having a link file?). However, the reason I persevered was that a) j9 is cheaper and more importantly b) nsi.com don't seem terribly keen on actually selling their product. I have lots of references to them selling their vm in bundles of 40 ($1000) which is a bit ouchy but hey I'm not paying for it. But, you'd think the nsi.com people would actually confirm this on their site?
    So.. can it be done? And why, in the world of embedded systems (my field) and now lots of phones and pdas, is so little attention given to the humble serial port? It doesn't matter how fancy the protocol is, underneath it all is a UART. grumble
    -Russel

    Hi Russel,
    I will probably soon be in the position you are in trying to get this to work. I found the following page which offers some promise.
    http://www.intrinsyc.com/support/I-Linux/405-cube/misc/smf_serial_port_access_example.htm
    Mike

Maybe you are looking for