RLPark 1.0.0
Reinforcement Learning Framework in Java

DropBit.java

Go to the documentation of this file.
00001 package rlpark.plugin.robot.internal.disco.drops;
00002 
00003 
00004 import rlpark.plugin.rltoys.math.ranges.Range;
00005 import rlpark.plugin.robot.internal.disco.datatype.ScalarReader;
00006 import rlpark.plugin.robot.internal.sync.LiteByteBuffer;
00007 
00008 public class DropBit extends DropData implements ScalarReader {
00009   private final byte bitIndex;
00010   private final byte mask;
00011 
00012   public DropBit(String label, int bitIndex) {
00013     this(label, bitIndex, -1);
00014   }
00015 
00016   public DropBit(String label, int bitIndex, int index) {
00017     super(label, false, index);
00018     this.bitIndex = (byte) bitIndex;
00019     mask = (byte) (0x01 << bitIndex);
00020   }
00021 
00022   @Override
00023   public DropData clone(String label, int index) {
00024     return new DropBit(label, bitIndex, index);
00025   }
00026 
00027   @Override
00028   public int getInt(LiteByteBuffer buffer) {
00029     byte b = buffer.get(index);
00030     return (b & mask) != 0 ? 1 : 0;
00031   }
00032 
00033   @Override
00034   public void putData(LiteByteBuffer buffer) {
00035   }
00036 
00037   @Override
00038   public int size() {
00039     return 0;
00040   }
00041 
00042   @Override
00043   public Range range() {
00044     return new Range(0, 1);
00045   }
00046 
00047   @Override
00048   public double getDouble(LiteByteBuffer buffer) {
00049     return getInt(buffer);
00050   }
00051 }
 All Classes Namespaces Files Functions Variables Enumerations
Zephyr
RLPark