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

Similar Messages

  • Reading form serial port problem

    I'm using javax.comm for communicating with a microcontroller (the uc just sends data ->"data from uc"). Here is what is read from the serial port. Where is the problem?
    the code:
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import javax.comm.*;
    public class ss extends Frame implements WindowListener,ActionListener,KeyListener {
         TextField text = new TextField(20);
         Button inainte;
         Button inapoi;
         Button stanga;
         Button dreapta;
         Button stop;
    SerialPort serialPort1, serialPort2;
    test2 df=new test2();
         Label msg_stop=new Label("am un obiect in fata! ");
         TextArea displayArea;
         Panel panel;
         Panel displayPanel;
         Integer i;
         /*     public static void main(String[] args)
              test df=new test();
              //     df.dumpFrame();
                   df.sendCommand("a");
              System.out.println("serial port successfully opened!");
         CommPortIdentifier portId1;
         CommPortIdentifier portId2;
         class test2 extends Thread
              serialComm mySerial;
              char var_ser,a;
              public String misc;
              test2()
                        try {
                             portId1 = CommPortIdentifier.getPortIdentifier("COM1");
                             portId2 = CommPortIdentifier.getPortIdentifier("COM2");
                             // cs a=new cs();
                   catch
                        (Exception e) {
                        // TimeStamp = new java.util.Date().toString();
                        // System.out.println(TimeStamp + ": COM1 " + portId1);
                        // System.out.println(TimeStamp + ": COM2 " + portId2);
                        // System.out.println(TimeStamp + ": msg1 - " + e);}
                        try{             
         // serialPort1 = (SerialPort) portId1.open("ss", 2000);
              catch
         (Exception e2){};
                   mySerial=new serialComm("1");
              // serialPort1=(SerialPort)mySerial;
         public void run()
              while(true) {
                   // var_ser=mySerial.readByte();           
                   // mySerial.writeStr("!andi");
                   //try{
                   //     sleep(200);
                   // }catch(InterruptedException e){};
                   a=mySerial.readByte();
    System.out.println(a);
              //     if(var_ser=='r') {
              //          System.out.println("dsadsa");
              //     mySerial.writeStr(misc);     
              //     misc="id";
              //     if(var_ser=='o'&& misc=="sp"){
              //     misc="id";
              //     msg_stop.setVisible(true);
              // System.out.println("Sunt in task1 "+misc+" "+var_ser+" end ");
              try{
                   sleep(200);
              }catch(InterruptedException e){};
         Flushes all data out of the serial file buffer
         int pixels[];
         public void dumpFrame()
              char a,c,k,r;
              int data=1, pix;
              int row,col=0;
              int count=0;
         //     pixels=new int[900];
         //     MemoryImageSource source;
         //     Image image;
         //          source = new MemoryImageSource(30,30,pixels,0,30);
         //          source.setAnimated(true);
         //          image=createImage(source);
              //     source.newPixels(0,0,30,30);
         //     mySerial.writeStr("DF\r");
              while(col==0){
              data=mySerial.readNonBlock();
              System.out.println(data);
              if(data==1) // New frame
                   System.out.println("este 1 ! !");
              else
         if(data==2) // New col
              System.out.println("este 2 ! !");
              System.out.println("count este : "+count);
              count=0;
         else
              count++;
              /* else{
                   if (data==0) {
                        'System.out.println("count este"+count);
              // if(!sendCommand("DF\r")) return 0;
              /* sendCommand("L1 1");
                   //data=mySerial.readNonBlock();
              while(data!=0)
                   sendCommand("L1 1");
                   if(data==1) // New frame
                        col=0;
                        row=0;
                   else if(data==2) // New col
                        col+=2;
                        row=0;
                   else if(data==3) // End frame
                        row=0;
                        col=0;
                   //     return 0;
                   else
                   {  // A pixel!
                        int red,green,blue,green2;
                        red=data;
                        green=mySerial.readByte();
                        blue=mySerial.readByte();
                        green2=green;
                        pix=0;
                        pix+=blue;
                        pix+=green<<8;
                        pix+=red<<16;
                        Color pixColor= new Color(pix);
                        pix=0;
                        pix+=blue;
                        pix+=green2<<8;
                        pix+=red<<16;     
                        Color pixColor2= new Color(pix);
              //     data=mySerial.readNonBlock();
              public void sendCommand(String command)
              char a,c,k,r;
              a=0;
         //     mySerial.writeStr("DF\r");
              //mySerial.writeStr("1");
              while(true){
                   try
              a=mySerial.readByte();
         //     if (a=='r') {
              //mySerial.writeStr("!and");
         //     'a=0;
              //     System.out.println(trimit !!!");
                   //     mySerial.writeStr(command);
    //     a=mySerial.readByte();
              //     c=mySerial.readByte();
         //          k=mySerial.readByte();
         //     r=mySerial.readByte();
              //     if(a=='A' && c=='C' && k=='K' && r=='\r' )
                        //return true;
              //     else
                   //     return false;
              }catch(Exception e) {System.out.println(e);}
              //return false;
              System.out.println(a);
         private int numClicks = 0;
    public void keyTyped(KeyEvent e) {
         int keyCode = e.getKeyCode();
         System.out.println("Buton Apasat !"+keyCode);
    /** Handle the key pressed event from the text field. */
    public void keyPressed(KeyEvent e) {
         int keyCode = e.getKeyCode();
         System.out.println("Buton Apasat !"+keyCode);
         switch(keyCode){
         case 38: df.misc="fa";
    /** Handle the key released event from the text field. */
    public void keyReleased(KeyEvent e) {
    public ss(String title) {
              super(title);
    //      df.dumpFrame();
    //     df.sendCommand("a");     
              //df.start();
    //          df.misc="id";
         //     test2 df=new test2();
              //     df.dumpFrame();
         //     df.sendCommand("a");
              Panel panel = new Panel();
         Panel displayPanel = new Panel();
              addWindowListener(this);
         //     displayPanel
              displayPanel.add(panel);
         //     text.addKeyListener(this);
              inainte = new Button("Inainte");
              inapoi = new Button("Inapoi");
              stanga = new Button("Stanga");
              dreapta = new Button("Dreapta");
              stop = new Button("Stop");
              panel.setLayout(new BorderLayout());
         msg_stop.setBackground(Color.red);
         msg_stop.setFont( new Font ( "Dialog", 30, Font.ROMAN_BASELINE ));
              msg_stop.setVisible(false);
         displayArea = new TextArea(5, 20);
              //panel.add(displayArea);
         panel.setLayout(new BorderLayout());
              panel.add(inainte,BorderLayout.NORTH);
              panel.add(inapoi,BorderLayout.SOUTH);
              panel.add(stanga,BorderLayout.WEST);
              panel.add(dreapta,BorderLayout.EAST);
              panel.add(stop);
              //panel.add(msg_stop,BorderLayout.EAST);
              //panel.add(text);
              this.add("Center",displayPanel);
              inainte.addActionListener(this);
              inapoi.addActionListener(this);
              stanga.addActionListener(this);
              dreapta.addActionListener(this);
              stop.addActionListener(this);
              this.setVisible(true);     
              inainte.addKeyListener(this);
              inapoi.addKeyListener(this);
              stanga.addKeyListener(this);
              dreapta.addKeyListener(this);
              stop.addKeyListener(this);
         //     addKeyListener(this);
         //     displayArea.addKeyListener(this);
         public static void main(String[] args) {
              ss myWindow = new ss("Boe Bot " +
                        "Control");
              //myWindow.setSize(300,300);
              myWindow.setLocation(400, 200);
              myWindow.setSize(200,300);
              myWindow.setVisible(true);
         public void actionPerformed(ActionEvent e) {
              String command=e.getActionCommand();
         if(command.equals("Inainte")){
              System.out.println("Inaite !!! ");     
              df.misc="fa";}
         if(command.equals("Inapoi")){
              System.out.println("Inapoi !!! ");     
              df.misc="sp";}
         if(command.equals("Stanga")){
              System.out.println("Inapoi !!! ");     
              df.misc="st";}
         if(command.equals("Dreapta")){
              System.out.println("Dreapta !!! ");     
              df.misc="dr";}
         if(command.equals("Stop")){
              System.out.println("Stop !!! ");     
              df.misc="id";}
         //     numClicks++;
         //     text.setText("Button Clicked " + numClicks + " times");
         public void windowClosing(WindowEvent e) {
              dispose();
              System.exit(0);
         public void windowOpened(WindowEvent e) {}
         public void windowActivated(WindowEvent e) {}
         public void windowIconified(WindowEvent e) {}
         public void windowDeiconified(WindowEvent e) {}
         public void windowDeactivated(WindowEvent e) {}
         public void windowClosed(WindowEvent e) {}
    thanks,
    andi

    from the screenshot it looks like there is 2 bytes of "noise" after every 8 bytes?
    print the char array next to the String. are the 2 bytes of noise the same every time?

  • K8NGM2-FID Serial Port problem

    The K8NGM2-FID has a serial connector, to which I attached a port so that I hook it up to a Polar heart rate monitor transmitter (Interface Plus unit with wire to serial port).  I never noticed, but assumed it was COM1.  In any case, it was transmitting fine as needed, then literally one night to the next morning it wouldn't anymore.  That's the problem.  This is my home computer and there were no other people or changes, and the watch's battery is ok (checked with a backup).  Looking at COM1, Device Manager (XP) says it's working, but the Polar software (PPP 2.1) says "Port Not Found" and chooses COM3 ("get status").  In Belarc, under Printers it shows COM1 being used by Amyuni Document Converter 2.51.  I've long had two of its affiliated programs installed, PDFWriter and PDFill Editor & Tools - document conversion is part of the latter, tho I've never used it - but would that interfere with a hardware connection?  Just to test, I uninstalled PDFill Editor/Tools, but Belarc still shows the Doc Converter on COM1. 
    So, if I haven't lost you, this is to say I am.  I did unplug/replug the transmitter connection to the serial port.  Other than the Polar unit going bad (think it's passive), the only other thing I can think of is the COM plug on the board went bad, but that's hard to believe (would it effect the COM port reading in Device Mgr?)  Any other ideas?  Thanks.

    Quote from: Russ_xp on 24-May-07, 16:41:24
    I think you are on the right track - seems that your PDF software has taken over COM1 and it is now assigned to a software Printer device. You could try to remove this or go into Device Manager and open the properties of the COM Port and change it to COM3 (just go through all the Advanced Options).
    I did remove the PDF software, moved what remained of the folder to another drive, and ran two registry cleaners and restarted, but Belarc still shows COM1 held by Amyuni Document Converter 2.51.  Turning to plan B, in Device Manager>Properties, what would need to be changed to make it COM3?

  • VISA (Serial port) commands fail in the VI, but work in VISA test panel

    Hi, I have an instrument which has a usb connection. When I connect it to a Windows 7 PC, it automatically picks up the driver and shows up as a "USB Serial Port (COM7) (Manufacturer is FTDI). 
    When I open up NI MAX, this device shows up as COM7 (ASRL7::INSTR) under "Serial and Parallel". And, when I click on Open VISA Test Panel, and try the "*IDN?" command, it works OK.
    However, the VI (which just sends a VISA command "*IDN?") gives me a time out error (0XBFF0015) or a device/resource not present error ( 0XBFFF0011). Attached is a screenshot of the VI. 
    Any ideas why?
    Thanks. 
    PS: I went through the process to create the VISA-USB driver, but that has some other issue, but I am trying to understand why this occurs. This device also has a GPIB port and when I use a USB-GPIB adapter, it works very well. 
    Solved!
    Go to Solution.
    Attachments:
    problem_vi.JPG ‏24 KB

    SysB1 wrote:
    Hi, I have an instrument which has a usb connection. When I connect it to a Windows 7 PC, it automatically picks up the driver and shows up as a "USB Serial Port (COM7) (Manufacturer is FTDI). 
    When I open up NI MAX, this device shows up as COM7 (ASRL7::INSTR) under "Serial and Parallel". And, when I click on Open VISA Test Panel, and try the "*IDN?" command, it works OK.
    However, the VI (which just sends a VISA command "*IDN?") gives me a time out error (0XBFF0015) or a device/resource not present error ( 0XBFFF0011). Attached is a screenshot of the VI. 
    Any ideas why?
    Thanks. 
    PS: I went through the process to create the VISA-USB driver, but that has some other issue, but I am trying to understand why this occurs. This device also has a GPIB port and when I use a USB-GPIB adapter, it works very well. 
    Look up the examples that ship with LabVIEW.  What you have there isn't quite complete - for serial VISA.  While GPIB will work great with what you have, serial VISA requires you to configure your serial port and is a little more complicated to read.
    Bill
    (Mid-Level minion.)
    My support system ensures that I don't look totally incompetent.
    Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.

  • Is it possible to choose the serial port if only the run time engine is installed

    I have an application, which communicates over the serial port. When I use the full version of Labview I can change the serial port without any problem from Com1 to Com2 (similar to the example “Hardeware input output -> serial -> Labview serial vi"). When I build an application and try to run this program on a computer where only the run time engine 6.1 is installed, it is not possible to choose the serial port. Since there is no “Measurement and Automation Explorer” available on the run time engine and no directory C:\VXIpnp is created, when the run time engine is installed, I do not see a way, how I can satisfy the computer with the information it needs for configuring
    the different ports. Any suggestions?

    Hi Daniel,
    Before LV6.1 there was LV5.1 In LV5.1 the way to Spedify a resource was to use a string control with correct VIsa Resource Class identifier. For eg. "GPIB0::11" or "ASRL1::INSTR". With Introduction of VISA Resource Name Control and linking with MAX, These names are Available from Pull Down List and Can be Aliased, meaning ASRL1 which is Serial Port 1 can be called COM1 and so on. However the old method still works with all 6.1 Controls. Only thing is you have to make sure you Dont Conflict the Class Names ie Use "GPIB::.." instead of "ASRL..." when addressing Serial Port VI's.
    To solve your Problem I would Build a Menu ring with COM1 to COM4 in the Pull Down List.
    Next, If I use the Traditonal Serial Port VI wich accepts the Integer as Seria
    l Port #. I just Wire the Menu Ring to this VI.(Remember COM1 is 0, COM2 is 1 for this VI)
    If I use VISA Config Serial Post. I build an Array Constant with Corresponding VISA Class Names So in our case a String Array Constant of 4 elements "ASRL1::INST" to "ASRL4::INST". I Use Index Array Function With the Index Wired to my Menu Ring. The Array Input Terminal Wired to the Array Constant. The Output of this Array will be correct Visa Class Name Based on slection of my Menu Ring. I can Wire this as Input to my VISA Config Serial Port Vi.
    I have attached a Small VI to Illustrate this.
    Drawback: You must Predefine what Ports you will Want to Use. Basically you define all the cases.
    I hope this Answers your Q!
    Good Luck
    Mache
    Good Luck!
    Mache
    Attachments:
    Serial_Port_Select.vi ‏36 KB

  • Problem --serial port reading one character at a time

    Hi Friend,
    I reading the serial port  one character at a time ,  i specified it in the "serial bytes to read" option in serial port read examples.
    The problem is ----------i can able to read  the data.
    but only the first character is reading again and again...and "reading string indicator" in the serial port example shows only the first character sent ..only for a single time.since i am reading continously ----aleast the first character should display as many times i running the program
    (i am running the vi by run continous option..........)..
    please help me ....how to read the character one by one.....
    regards
    rajasekar

    Hi jason...
    I can able to read the serial port by 1 byte or 2 byte or 4 byte as i can specify it in the serial port read bytes option..(in visa serial read)..
    I need to acquire 4 bytes of data and pass it to the Math-script node..and save these 4bytes of data in array (1 row and 4 column)..
    And split this array(just like array-indexing.vi) and processing it each each column separately....
    or suggest some method to achieve my task.....please.
    one more thing the math-script node is placed in a while loop.....in order to read sequence of bytes continously.......
    regards
    rajasekar

  • The "VISA Configure Serial Port" VI will only run at 9600 Baud

    I have written a Serial Port monitor "RS232 RW.vi"  that works for the most part. The problem is that it will not respond to alternate port configuration settings.... For instance: the default RS232 Serial port configuration is:
    (COM1,9600 baud,8 data bits,1 Stop bit, None no parity)
    As a test, I am using a Null Modem Cable to connect From my LabView Com1 port to another PC running RealTerm Serial Port Monitor.. Using my newly designed "RS232 RW.vi"  With port settings of (COM1,9600 baud,8 data bits,1 Stop bit, None no parity),  I can send and receive data back and forth all day long no problems....
    However, if I configure the "RS232 RW.vi"  port to any other configuration, such as (COM1,2400 baud ,7 data bits,1 stop bit, Odd parity).. It will not take the expected chances and continues to operate @ 9600 baud etc.
    I then changed the "RS232 RW.vi"  default settings to (2400,7,1,Odd)
    it still refuses to deviate from (COM1, 9600,8,1,None...)
    I also went into the Win XP  Device Manager on the LabView system and manually configured Com1 to 2400,7,1,Odd  
    and still,.... the "RS232 RW.vi"  will only operate @ 9600,8,1,None
    Can anyone else test drive my VI and see if they have the same problem of not being able to see new changes in the Port configuration settings ..other than (COM1, 9600,8,1,None...).... ?
    FYI.. Unfortunately my LabView is running on Version 6.0 so you may need to up-convert the attached vi
    Solved!
    Go to Solution.
    Attachments:
    RS232 RW.vi ‏102 KB

    Instead of just appreciating the comments, you need to implement them.
    Having the VISA close inside the loop is definitely the problem.  And Crossrulz is 100% correct about the problem being that the serial port gets reset to the default baud rate after closing the port.  Here is the proof.
    Note that while you may have set the port settings manually in device manager, those settings are revised by the VISA driver.  If you look in Measurement and Automation Explorer under Devices and Interfaces >> Serial and Parallel, you'll see the default settings that the VISA driver uses.  If you change the setting there, your program will work the way you want.  But that is not the correct fix.  The correct fix is to get the VISA close out of the while loop.
    The port settings are established in this order.
    1.  By the Windows device drivers.
    2.  By the VISA driver as established in MAX.  Since you are useing VISA, these settings will automatically override #1.
    3.  By the port settings you set programmatically in your LabVIEW program.
    Attachments:
    Example_VI.png ‏18 KB

  • How can detect the serial port is active

    I made a program. It can read datas via serial port. But the datas wont came all the time, so the other part of the program not need to run. I want to put before the "reading serial port" a detection about the serial port is get a data. So the reading is wont start before datas are not coming. Can anybody help me how can i solve this problem?

    Hi Zoyo, if you use the VISA- VIs, the functionyou need is "VISA Bytes at serial port". It shows, how many Bytes are available in the input buffer. You can find it here:
    greets, Dave
    Message Edited by daveTW on 11-22-2006 02:01 PM
    Greets, Dave
    Attachments:
    Bytes at serial port.png ‏20 KB

  • 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();
                                                           

  • Multiple serial port initialisation problem

    Good Morning All
    I have attached a vi which is giving me a problem that I can't solve, and would appreciate any help.
    The vi is supposed to intialise up to 7 serial ports (only using 5 at the moment), and I'm assuming this is a plausible way to do the initialisation (could be wrong). The serial ports are connected to a pc via a usb hub. The windows XP o/s does recognise the ports according to the device manager.
    The problem is that when the vi is run the following error is reported as shown in the attached word document.
    I have compared the port settings in the device manager properties for each port to the vi settings and they match. What more can I do?
    If somebody has a setup with mutliple serial ports could they try the vi and see if it works for them?
    Thanks and best regards
    Ray
    Solved!
    Go to Solution.
    Attachments:
    ax500 serial port init.vi ‏37 KB
    init error.docx ‏518 KB

    It has nothing to do with multiple serial ports.  It has to do with an invalid setting you are trying to use to configure any one of the serial ports.
    Look at the information in the error message.  Argument 4 of the property node in Configure Serial Port VI is the Stop Bits setting.  I see a coercion dot going into that VI, so that tells me the datatype you are wiring in doesn't quite match.
    You have an array of I32 values, and your values consist of 1's.  Disconnect that array and right click on the terminal of Configure Serial Port VI and pick Create Constant.  You'll see you get a ring data type.  It is a U16.  But if you look at the items in there, you'll see that stop bits 1.0 has a value of 10.  1.5 has a value of 15, 2.0 has a value of 20.  So the value of 1 has no meaning to that property node and you get an error.  You should be wiring in a value of 10.
    Delete that array.  Create an array of the ring constants.  Turn it into a control, and choose the correct ring value for each element of your array.
    You have several other coercion dots.  They may not be causing you problems, but I would consider disconnecting them, creating a constant of the correct datatype, and using that in the array you wire to the Configure subVI.
    I modified your VI and attached it.  See if it works for you.
    Attachments:
    ax500SerialPortInitMOD.vi ‏37 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.

  • How to read and write from the serial port using java

    can anyone tel me how to capture data from a serial port and display on the screen and also store it in a database.

    Java Comm API, JDBC

  • Establish a connection with the serial port on ST2510

    Hello guys,
    I have one question about connection on ST2510 with the serial port.
    Is it possible to get the following command prompt during connection on ST2510 through serial port (as described in the document 820-0015-11):
    "Enter password to access shell:"
    instead of
    "Enter password to access Service Interface (60 sec timeout):"
    ?

    stapler wrote:
    Thanks a lot,
    ...and how is it possible to get "Enter password to access shell:" instead of "Enter password to access Service Interface (60 sec timeout):" (wrong cable connection, etc.)?
    I ask about it, because one guy said me, that he tried to establish a connection according to the document 820-0015-11.
    But instead of "Enter password to access Service Interface (60 sec timeout):" he has got "Enter password to access shell:" and the default password kra16wen is incorrect.I won't indicate how to get "Enter password to access shell" because this is a special access as indicated in my previous post. However in order to get "Enter password to access Service Interface (60 sec timeout):" you need to press "S" (capital S) within 5 sec and then the password is "kra16wen".

  • How to extract data from a .txt file & send it to a serial port automatically

    Hi all
    I'm a final yr B.Tech student. I am new to the entire LABVIEW thing. But i hear its really good. My dept. in collge has purchased labview & i'm tryng to use it
    As i'm new to labview , i need help plz
    " I want to open a .txt file (in my PC) & transmit all the contents of the file via serial (COM) port to an 89%! microcontroller. Also i want to read the feedback messages from the microcontroller thru the serial port & save it to the same file in the PC.All this must be done automatically. ie, no manual intervention after execution starts"
    Kindly help me as i'm stuck here & unable to proceed further with my project

    here is my 20min try without debugging (needs a rs232 and loopback connector )
    use the probe and highlight the dataflow to see how it works.
    as always:  there are many ways to solve your problem
    Greetings from Germany
    Henrik
    LV since v3.1
    “ground” is a convenient fantasy
    '˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'
    Attachments:
    read write file to RS232.vi ‏69 KB

  • How can i browse FP 2000 via serial port same use Ethernet port(RJ 45)?

    I am a new user for  labview.I develope my program with FP 2000 but I have some problem
      1 How can i browse FP 2000 via serial port same use Ethernet port(RJ 45)? if it can Tell me please.
      2 If  I use GSM/GPRS modem via FP 2000 rs 232 port (I under stand how to send AT command) and leave it stand alone
         Can I dial modem and browse file in FP 2000 same as use Ethernetport?
    Someone please help me.Thank you very much.

    Hi!
        First, I can say that your project involves many things, I cannot describe all features in the forum, and I'm not used with GPRS modems (my modems are base band serial modems...).
        Anyway, I would say that in your project you should proceed like this:
          1) Configure your FP 2000 module via MAX and ethernet connection;
          2) Download an embedded application to your module (build in LabView Real-Time)
          3) In your application, you should build a kind of serial port manager, and by the means of serial port you send/receive commands from PC.
        The commands from PC can include "Tell me the about the FP 2000 file system ", or "switch on line X", or anything you need.
       I think it would be difficult to use Internet exp, because you use IE with TCP/IP, and TCP/IP is over ethernet.
       I know that for Windows you can find some wrappers that make you "see" the serial port as an ethernet, but these wrapper do not exist under filed Point, and you shoul build one yourself!!!(and that's not easy).
        For example, to browse your files, you should build a VI that searches through your file system, and reports, via serial, the files present in a directory (it's an example....).
        About communication between GPRS modems and FP2000, I know nothing.  I suppose that these modems accept serial inputs, so you'll have to configure your serial port on FP 2000 with the correct baud rate, parity, and so on..... and you send your data to the modem.  The modem will transfer data in its way, no matter on how it does.
        To send data to your modem you shoud take a look to some Serial communication examples.  What I suggest you, first, is to connect the serial port of FP2000 to a PC, and test communication between PC and FP2000, without modems. Just direct cable connection!  If you're able to do this, insertion of modems is the next step, and should be quite easy.  If you're not able to make the PC receive strings of data from FP2000, over  RS232, adding modems is a further complication, and you won't come out of this mess!
       So, what I say, is just build, for now, a simple embedded application for FP2000, that, using RS232, sends data to a PC (you should see data sent with use of Hyper terminal).
        To build this application, use Instrument I/O --> VISA commands (VISA open, VISA write, and Property node should be enough, for now).
       Please, let me know if this helps......
        Have a nice (programming) day!
    graziano

Maybe you are looking for