byte buff[] = new byte[1200];
byte[] tmpAddr = new byte[8];
System.arraycopy(buff, 0, tmpAddr, 0, 8);
//hubToRms.Sv = byteToDouble(tmpAddr, ByteOrder.LITTLE_ENDIAN);
hubToRms.Sv = ByteBuffer.wrap(tmpAddr).getDouble();
tmpAddr = new byte[4];
System.arraycopy(buff, 8, tmpAddr, 0, 4);
hubToRms.SvpH = byteToFloat(tmpAddr, ByteOrder.LITTLE_ENDIAN);
hubToRms.SvpH = ByteBuffer.wrap(tmpAddr).getFloat();
Log.d(TAG1, "SvpH -> " + hubToRms.SvpH);
System.arraycopy(buff, 12, tmpAddr, 0, 4);
hubToRms.CipCC = byteToFloat(tmpAddr, ByteOrder.LITTLE_ENDIAN);
hubToRms.CipCC = ByteBuffer.wrap(tmpAddr).getFloat();
//String CipCC = String.format("%.3f", hubToRms.CipCC);
Log.d(TAG1, "CipCC -> " + hubToRms.CipCC);
System.arraycopy(buff, 16, tmpAddr, 0, 4);
hubToRms.cps = byteToFloat(tmpAddr, ByteOrder.LITTLE_ENDIAN);
hubToRms.cps = ByteBuffer.wrap(tmpAddr).getFloat();
//String cps = String.format("%.3f", hubToRms.cps);
Log.d(TAG1, "cps -> " +hubToRms.cps);
클라이언트(안드로이드) 쪽에서 값을 받아 바이트단위로 잘라서 각 데이터타입에 맞게 저장하려고 합니다.
처음에는 8바이트로 Double형 받아서 double형 변수에 저장했고, 나머지는 4바이트씩 float형으로 잘라서 각각 저장했습니다. 근데 로그찍어보니 값이 6.2626725E-28 이런식으로 나오는데.. 똑바로 한건지 잘 모르겠네요.. 원래는 값이 0.412 뭐 이정도로 작은값이 나와야 합니다.. 바이트 단위로 잘 잘라서 사용하고 있는건지.. 확인좀 부탁드립니다. 그리고 비슷한 예제나 자료도 부탁드려요~