Ver Mensaje Individual
  #7 (permalink)  
Antiguo 18/11/2012, 22:26
tellezcoo
 
Fecha de Ingreso: marzo-2010
Mensajes: 58
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: detectar cuando una variable a cambiado

mira masomenos asi esta funcionando
Código Java:
Ver original
  1. private pPort lpt1=new pPort();
  2. short estadoPuerto = (short) lpt1.input((short) 0x379);

y la librería seria esta

Código JAva:
Ver original
  1. package hardware.jnpout32;
  2.  
  3. // ** Derived from information provided on the web by Dr. Kenneth G. Schweller,
  4. // ** ( http://web.bvu.edu/faculty/schweller/ ) and his Mars Rover project page.
  5.  
  6. public class pPort
  7. {
  8.    ioPort pp;                   // wrapper class for 'Jnpout32.dll'
  9.                                // with methods:
  10.                                //    int Out32(int port, int value);
  11.                                //    int Inp32(int port);
  12.    short portAddress;            // address of data port
  13.    short currentVal;             // current value of port bits
  14.  
  15.    public pPort()
  16.    {
  17.       pp = new ioPort();
  18.       portAddress = (short)0x378;     // Hex Address of Data Byte of PC Parallel Port
  19.       setAllDataBits((short)0);       // initialize port bits to 0
  20.       currentVal = 0x00;
  21.    }
  22.  
  23.    // wrap ParallelPort output method
  24.    public void output(short port, short value)
  25.    {
  26.       pp.Out32(port, value);
  27.    }
  28.  
  29.    // wrap ParallelPort input method
  30.    public short input(short port)
  31.    {
  32.       return pp.Inp32(port);
  33.    }
  34.  
  35.     // output to default Data port
  36.     public void output(short value)
  37.     {
  38.       pp.Out32(portAddress, value);
  39.     }
  40.  
  41.     // input from default Data port
  42.     public short input()
  43.     {
  44.       return pp.Inp32(portAddress);
  45.     }
  46.  
  47.  
  48.   /**
  49.    * set all bits on Data port to zero
  50.    **/
  51.    public void setAllDataBits(short value)
  52.    {
  53.       pp.Out32(portAddress, value);
  54.       currentVal = value;
  55.    }
  56.  
  57.  
  58.    // For users who prefer dealing with Pin numbers
  59.    //    Set Pin <pin> to <value>
  60.    public void setPin(short pin, short value)
  61.    {
  62.       if (pin >= 2 && pin <= 9)
  63.          // just set the corresponding Data bit to indicted value
  64.          setDataBit((short)(pin-2), value);
  65.    }
  66.  
  67.  
  68.    /**
  69.     * Set Data Bit at selected index to a value of 1 or 0
  70.     * while preserving current values of all other Data bits
  71.     **/
  72.    void setDataBit(short index, short value)
  73.    {
  74.       switch(index)
  75.       {
  76.          case 0:
  77.            if (value==0)                        //  Set Data[0] to 0
  78.  
  79.               currentVal = (short) (currentVal & 0xFE);
  80.                                                        //      aaaa aaaa  currentVal
  81.                                                 //  AND 1111 1110  mask
  82.                                                 //      =========
  83.                                                 //      aaaa aaa0  new currentVal
  84.  
  85.            else                                 //  Set Data[0] to 1
  86.  
  87.               currentVal = (short) (currentVal | 0x01);
  88.                                                         //      aaaa aaaa   currentVal
  89.                                                 //  OR  0000 0001   mask
  90.                                                 //      =========
  91.                                                 //      aaaa aaa1   new currentVal
  92.            break;
  93.          case 1:
  94.            if (value==0)
  95.               currentVal = (short) (currentVal & 0xFD);
  96.                                                         //  currentVal = aaaa aa0a
  97.            else
  98.               currentVal = (short) (currentVal | 0x02);
  99.                                                         //  currentVal = aaaa aa1a
  100.            break;
  101.          case 2:
  102.            if (value==0)
  103.               currentVal = (short) (currentVal & 0xFB);
  104.                                                         //  currentVal = aaaa a0aa
  105.            else
  106.               currentVal = (short) (currentVal | 0x04);
  107.                                                         //  currentVal = aaaa a1aa
  108.            break;
  109.          case 3:
  110.            if (value==1)
  111.               currentVal = (short) (currentVal & 0xF7);
  112.                                                         //  currentVal = aaaa 0aaa
  113.            else
  114.               currentVal = (short) (currentVal | 0x08);   //  currentVal = aaaa 1aaa
  115.            break;
  116.          case 4:
  117.            if (value==0)
  118.               currentVal = (short) (currentVal & 0xEF);
  119.                                                         //  currentVal = aaa0 aaaa
  120.            else
  121.               currentVal = (short) (currentVal | 0x10);   //  currentVal = aaa1 aaaa
  122.            break;
  123.          case 5:
  124.            if (value==0)
  125.               currentVal = (short) (currentVal & 0xDF);
  126.                                                         //  currentVal = aa0a aaaa
  127.            else
  128.               currentVal = (short) (currentVal | 0x20);   //  currentVal = aa1a aaaa
  129.            break;
  130.          case 6:
  131.            if (value==0)
  132.               currentVal = (short) (currentVal & 0xBF);
  133.                                                         //  currentVal = a0aa aaaa
  134.            else
  135.               currentVal = (short) (currentVal | 0x40);   //  currentVal = a1aa aaaa
  136.            break;
  137.              case 7:
  138.            if (value==0)
  139.               currentVal = (short) (currentVal &  0x7F);
  140.                                                         //  currentVal = 0aaa aaaa
  141.            else
  142.               currentVal = (short) (currentVal | 0x80);   //  currentVal = 1aaa aaaa
  143.            break;
  144.  
  145.          default:
  146.            System.out.println("index must be 0 - 7");
  147.       }
  148.       pp.Out32(portAddress, currentVal);
  149.    }
  150.  
  151.     public short input(short s, short s0) {
  152.         throw new UnsupportedOperationException("Not yet implemented");
  153.     }
  154.  
  155.  
  156. }