sábado, 2 de marzo de 2013

Comunicación: Recepción de datos particionados

En una entrada anterior, se hizo enfásis en la manera en la que se podía particionar datos en un módulo arduino, y enviarlo a través de un módulo XBee. En esta ocasión, se observará como, a partir de un algoritmo diseñado en java, puede emplearse para capturar esta información y volverla a unir. Para ello, necesitamos emplear la libreria disponible para el lenguaje Java, que nos permite comunicarnos a través de un módulo XBee en modo API. Acá no entraré en detalles como importar una libreria, por lo que recomiendo consultarlo de alguna fuente externa.

Después de un análisis detallado del manejo de bits y de una serie de planteamientos realizados, se llegó al siguiente algoritmo, que para el caso se presenta como un método estático dentro de una clase:

    public static float convertDataType(int[] bytes) {
        //variable que nos almacena el valor procesado por el algoritmo
        int fstResult = 0;


        //Variable que almacena las operaciones que se harán con el Bit Shift

        int calc = 0;

        for (int i = 0; i < bytes.length; i++) {
            calc = (int) (bytes[i] << ((bytes.length - 1 - i) * 8));
            fstResult = fstResult | calc;
        }

        return fstResult;
    }


Este método recibe un arreglo de valores, que será los valores de la partición. Dentro del ciclo for, lo que hacemos es emplear el operador Bit Shift que nos permite correr los bits de cada valor del arreglo según lo indica la operación que se almacena en la variable calc.

COntinuará....

No hay comentarios:

Publicar un comentario