Return a Vantage Pro two-byte representation of rain fall. - Java java.lang

Java examples for java.lang:int Format

Description

Return a Vantage Pro two-byte representation of rain fall.

Demo Code

/*/*from   w w  w.j  a v  a  2s  .co m*/
 *  Copyright 2006 Goran Ehrsson.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *  under the License.
 */
//package com.java2s;

public class Main {
    public static void main(String[] argv) throws Exception {
        double mm = 2.45678;
        System.out.println(java.util.Arrays.toString(getRain(mm)));
    }

    /**
     * Return a Vantage Pro two-byte representation of rain fall.
     * @param mm millimeter rain.
     * @return a byte array with size=2
     */
    public static byte[] getRain(double mm) {
        return getBytes((int) (mm * 5.0));
    }

    /**
     * Return the two least significant bytes of a value.
     * The least signifcant byte is returned first (at index 0)
     * @param value the value to convert to bytes
     * @return a byte array of size 2 with LSB first.
     */
    public static byte[] getBytes(int value) {
        byte[] rval = new byte[2];
        // Least significant byte first.
        rval[0] = (byte) (value & 0xff);
        rval[1] = (byte) ((value >>> 8) & 0xff);
        return rval;
    }
}

Related Tutorials