2016-07-14 51 views
1

这是类:主要计算和比较int循环?

public class Main { 

int secondPassed = 0; 
Timer mytime = new Timer(); 


TimerTask mytask = new TimerTask() 
{ 
    public void run() { 
     secondPassed++; 

     if (secondPassed == 3){ 
      secondPassed = 0; 

      Convertion callConvertion = new Convertion(); 
      try { 
       callConvertion.cnvrt(); 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      int donecnvrtin = callConvertion.donecnvrtin(); 
      int donecnvrtout = callConvertion.donecnvrtout();; 
      System.out.println("IN : " + donecnvrtin); 
      System.out.println("OUT : " + donecnvrtout); 
     } 

     else{ 

      System.out.println("Second : " + secondPassed); 
     } 
    } 
}; 

public void start(){ 

    mytime.scheduleAtFixedRate(mytask, 1000,1000); 
} 

public static void main(String[] args) throws Exception { 
    Time starter = new Time(); 
    starter.start(); 
} 
} 

这是类:Udp的

public class Udp { 

public String result; 


public void socketp() throws Exception { 
    DatagramSocket clientSocket = new DatagramSocket(10076); 
     InetAddress IPAddress = InetAddress.getByName("192.168.100.10"); 
     byte[] sendData = new byte[9]; 
     byte[] receiveData = new byte[9]; 
     String sentence = "VDV2bE1"; 
     sendData = sentence.getBytes(); 
     DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 10076); 
     clientSocket.send(sendPacket); 
     DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); 
     clientSocket.receive(receivePacket); 
     clientSocket.close(); 
     this.result = new String(receivePacket.getData()); 
     return; 
} 

public String trnsfrRPckt(){ 
    return this.result; 
} 

} 

这是类:皈依

public class Convertion { 

public int PassIN; 
public int PassOUT; 


public String convertStringToHex(String str){ 

    char[] chars = str.toCharArray(); 

    StringBuffer hex = new StringBuffer(); 
    for(int i = 0; i < chars.length; i++){ 
    hex.append(Integer.toHexString((int)chars[i])); 
    } 

    return hex.toString(); 
} 

public void cnvrt(){ 

    Udp callUdp = new Udp(); 
    try { 
     callUdp.socketp(); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
String trnsferRP = callUdp.trnsfrRPckt(); 

Convertion strToHex = new Convertion(); 
String hex = strToHex.convertStringToHex(trnsferRP); 
String cut = hex.substring(10); 

String A = cut.substring(0, 2); 
String B = cut.substring(2, 4); 
String C = cut.substring(4, 6); 
String D = cut.substring(6, 8); 

int cvA = Integer.parseInt(A); 
int cvB = Integer.parseInt(B); 
int cvC = Integer.parseInt(C); 
int cvD = Integer.parseInt(D); 

int calcA = (cvA - 30) * 16; 
int calcB = (cvB - 30); 
int calcC = (cvC - 30) * 16; 
int calcD = (cvD - 30); 

this.PassIN = calcA + calcB; 
this.PassOUT = calcC + calcD; 

int tempIN = 0; 
int tempOUT = 0; 
int LPassIN; 
int LPassOUT; 

if (tempIN == 0){ 
    LPassIN = PassIN + tempIN; 
    System.out.println(LPassIN); 
}else if (LPassIN != PassIN){ 
    LPassIN = PassIN; 
    System.out.println(PassIN); 
}else{ 
    System.out.println(LPassIN); 
} 

if (tempOUT == 0){ 
    LPassOUT = PassOUT + tempOUT; 
    System.out.println(LPassOUT); 
}else if (LPassOUT != PassOUT){ 
    System.out.println(PassOUT); 
}else{ 
    System.out.println(LPassOUT); 
    } 

} 


public int donecnvrtin(){ 
    return this.PassIN; 
} 

public int donecnvrtout(){ 
    return this.PassOUT; 
} 

} 

我想比较计算与经过的LPassIN,所以我通过将O传递给LPassIn来开始循环,然后LPassIN将从PassIN中保存一个新的第一个int。之后,如果新的第二个int到来,变量将比较int LPassIn和PassIN。如果不同则打印PassIN,然后保存/保存到LPassIN中,如果相同则打印LPassIN。

因此,如果新的第三INT来,将比较新的第二INT

是我的方法不对或有设置这样的规则?

*忽略PassOUT

+0

发布一个[SSCCE](http://sscce.org/)请求 –

回答

0

不是关于的udp callUdp =新的UDP很清楚();看起来不像java api?

+0

那是从另一个类请求数据/变量,也就是类Udp –

+0

我想执行并检查程序,但由于Udp i不能这样做?有没有进口? – Fairoz

+0

ooo ok2,我编辑了所有代码的问题..所以数据,从类中检索:Udp是套接字编程。 主页>转换> Udp –