Bonjour,
Je suis en train de détecter un paramétre 'temperature' via UDP mais le problème est que la valeur affichée est egal x*10^4. Voila mon code :
Ce code m'afiche 240702, j'ai fait comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 // simple server waiting for datagrams and extracting ans displaying string package udp_broad; import java.io.*; import java.util.*; import java.util.zip.*; import java.net.*; import java.awt.event.ActionEvent; public class UDP_broad extends Thread { public static void main(String args[]) { try { int receivePort=999, i; InetAddress remoteIPaddress; // IP address of remote host int remotePort; byte[] buffer = new byte[65507]; // array to put datagrams in DatagramPacket dp = new DatagramPacket(buffer, buffer.length); DatagramSocket ds = new DatagramSocket(receivePort); while (true) { ds.receive(dp); // wait for next datagram byte[] data = dp.getData(); // get datagram contents for (i=93;i<=dp.getLength();i++) System.out.println(" \n Temperature = " + (((data[99]<<8)+data[100])<<4)); } } catch (IOException se) {System.err.println("error " + se);} System.exit(1); // exit on failure } }
Mais ça m'affiche juste 24. Comment faire pour afficher 24,0702 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part System.out.println(" \nRotor Temperature = " + (((data[99]<<8)+data[100])<<4)/10000);
Merci d'avance
Partager