Android Open Source - RejsekortReader Interpreted Block






From Project

Back to project page RejsekortReader.

License

The source code is released under:

GNU General Public License

If you think the Android project RejsekortReader listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package info.rejsekort.reader.rkf.blocks;
//from   w w  w. j a v a  2 s.  c  o m
import info.rejsekort.reader.rkf.datatypes.DataType;

public class InterpretedBlock {

  public DataType[] mFields;
  public String[] mFieldNames;
  public byte[] mBits;
  public String id;
  
  public InterpretedBlock(String pid, byte[] bits) {
    id = pid;
    mBits = bits;
    assert bits.length == 16;
  }
  
  protected void interpretBlock() {
    int i = 0;
    String bitstring = DataType.getBinaryString(mBits);
    
    //Fix the endianness - reverse each byte
    StringBuilder sb = new StringBuilder();
    for (int j = 0; j < bitstring.length(); j += 8) {
      sb.append(new StringBuilder(bitstring.substring(j, j+8)).reverse().toString());
    }
    bitstring = sb.toString();
    assert(bitstring.length() == 128);
    //bitstring = new StringBuilder(bitstring).reverse().toString();
    
    for (DataType f : mFields) {
      int len = f.mBitlength;
      //Extract bits i:len
      try {
        String substr = bitstring.substring(i, i+len);
        f.fromBits(substr);
        i += len;
      }
      catch (StringIndexOutOfBoundsException e) {
        break;
      }
    }
  }
  
  public String toString() {
    StringBuilder sb = new StringBuilder();
    
    for (int i = 0; i < mFields.length; i++) {
      DataType f = mFields[i];
      String n = mFieldNames[i];
      sb.append(n);
      sb.append(": ");
      sb.append(f.toString());
      sb.append("\n");
    }
    
    return sb.toString();
  }

}




Java Source Code List

info.rejsekort.reader.BlockDetailActivity.java
info.rejsekort.reader.BlockDetailFragment.java
info.rejsekort.reader.BlockListActivity.java
info.rejsekort.reader.BlockListFragment.java
info.rejsekort.reader.DisplayTravelDetailActivity.java
info.rejsekort.reader.DumpRaw.java
info.rejsekort.reader.MainActivity.java
info.rejsekort.reader.RejsekortReaderApp.java
info.rejsekort.reader.rkf.MockRKFCard.java
info.rejsekort.reader.rkf.RKFCard.java
info.rejsekort.reader.rkf.TCELBlock_.java
info.rejsekort.reader.rkf.TCSTBlock.java
info.rejsekort.reader.rkf.blocks.CMIBlock.java
info.rejsekort.reader.rkf.blocks.CommonTCSTBlock.java
info.rejsekort.reader.rkf.blocks.InterpretedBlock.java
info.rejsekort.reader.rkf.blocks.TCAS1Block.java
info.rejsekort.reader.rkf.blocks.TCCIBlock.java
info.rejsekort.reader.rkf.blocks.TCCPStaticBlock.java
info.rejsekort.reader.rkf.blocks.TCDBDynamicBlock.java
info.rejsekort.reader.rkf.blocks.TCDBStaticBlock.java
info.rejsekort.reader.rkf.blocks.TCDI1Block.java
info.rejsekort.reader.rkf.blocks.TCDI2Block.java
info.rejsekort.reader.rkf.blocks.TCDI3Block.java
info.rejsekort.reader.rkf.blocks.TCELBlock.java
info.rejsekort.reader.rkf.blocks.TCPUDynamicv4Block.java
info.rejsekort.reader.rkf.blocks.TCPUDynamicv6Block.java
info.rejsekort.reader.rkf.blocks.TCPUStaticBlock.java
info.rejsekort.reader.rkf.blocks.TCSTv4Block.java
info.rejsekort.reader.rkf.blocks.TCSTv5Block.java
info.rejsekort.reader.rkf.datatypes.BitArray.java
info.rejsekort.reader.rkf.datatypes.ByteString.java
info.rejsekort.reader.rkf.datatypes.DataType.java
info.rejsekort.reader.rkf.datatypes.DateCompact.java
info.rejsekort.reader.rkf.datatypes.DateMonth11.java
info.rejsekort.reader.rkf.datatypes.DateMonth8.java
info.rejsekort.reader.rkf.datatypes.DateTime.java
info.rejsekort.reader.rkf.datatypes.MoneyAmount24.java
info.rejsekort.reader.rkf.datatypes.RKFInteger.java
info.rejsekort.reader.rkf.datatypes.TimeCompact.java