Decoder.java
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2011 Google Inc.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
00005  * use this file except in compliance with the License. You may obtain a copy of
00006  * the License at
00007  *
00008  * http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
00012  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
00013  * License for the specific language governing permissions and limitations under
00014  * the License.
00015  */
00016 
00017 package com.github.rosjava.rosjava_extras.hokuyo.scip20;
00018 
00019 import com.google.common.base.Preconditions;
00020 
00024 class Decoder {
00025 
00026   public static int decodeValue(String buffer) {
00027     int blockSize = buffer.length();
00028     Preconditions.checkState(2 <= blockSize && blockSize <= 4);
00029     int result = 0;
00030     for (int i = 0; i < blockSize; i++) {
00031       result |= (buffer.charAt(blockSize - i - 1) - 0x30) << i * 6;
00032     }
00033     return result;
00034   }
00035 
00036   public static int[] decodeValues(String buffer, int blockSize) {
00037     Preconditions.checkArgument(buffer.length() % blockSize == 0);
00038     int[] data = new int[buffer.length() / blockSize];
00039     for (int i = 0; i < data.length; i++) {
00040       int bufferIndex = i * blockSize;
00041       data[i] = decodeValue(buffer.substring(bufferIndex, bufferIndex + blockSize));
00042     }
00043     return data;
00044   }
00045 }


rosjava_extras
Author(s): Damon Kohler
autogenerated on Thu Aug 27 2015 14:53:42