Android Open Source - retrowatch Transaction Receiver






From Project

Back to project page retrowatch.

License

The source code is released under:

Apache License

If you think the Android project retrowatch 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

/*
 * Copyright (C) 2014 The Retro Watch - Open source smart watch project
 */*from  ww  w. j a v  a2  s  .c  o  m*/
 * 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.
 */

package com.hardcopy.retrowatch.connectivity;

import java.util.ArrayList;

import android.os.Handler;

public class TransactionReceiver {
  private static final String TAG = "TransactionReceiver";
  
  private static final int PARSE_MODE_ERROR = 0;
  private static final int PARSE_MODE_WAIT_START_BYTE = 1;
  private static final int PARSE_MODE_WAIT_COMMAND = 2;
  private static final int PARSE_MODE_WAIT_DATA = 3;
  private static final int PARSE_MODE_WAIT_END_BYTE = 4;
  
  private Handler mHandler = null;
  private ArrayList<Transaction> mTransactionQueue = new ArrayList<Transaction>();
  
  private int mParseMode = PARSE_MODE_WAIT_START_BYTE;
  private int mCommand = Transaction.COMMAND_TYPE_NONE;
  private Transaction mTransaction = null;
  
  public TransactionReceiver(Handler h) {
    mHandler = h;
    mParseMode = PARSE_MODE_WAIT_START_BYTE;
  }
  
  public void setByteArray(byte[] buffer) {
    parseStream(buffer);
  }
  
  public void popTransaction() {
    // TODO: 
  }

  private void parseStream(byte[] buffer) {
    if(buffer != null && buffer.length > 0) {
      for(int i=0; i<buffer.length; i++) {
        
        switch(mParseMode) {
        case PARSE_MODE_WAIT_START_BYTE:
          parseStartByte(buffer[i]);
          break;
        case PARSE_MODE_WAIT_COMMAND:
          parseCommand(buffer[i]);
          break;
        case PARSE_MODE_WAIT_DATA:
          parseData(buffer[i]);
          break;
        case PARSE_MODE_WAIT_END_BYTE:
          parseEndByte(buffer[i]);
          break;
        }
      }  // End of for loop
    }  // End of if()
  }
  
  private void parseStartByte(byte packet) {
    if(packet == Transaction.TRANSACTION_START_BYTE) {
      mParseMode = PARSE_MODE_WAIT_COMMAND;
      mTransaction = new Transaction();
    }
  }
  
  private void parseCommand(byte cmd) {
    mCommand = cmd;
    switch(mCommand) {
    case Transaction.COMMAND_TYPE_PING:
      mParseMode = PARSE_MODE_WAIT_END_BYTE;
      break;
      
    // TODO:
      
    default:
      break;
    }  // End of switch()
  }  // End of parseCommand()
  
  private void parseData(byte packet) {
    if(packet == Transaction.TRANSACTION_END_BYTE) {
      mParseMode = PARSE_MODE_WAIT_START_BYTE;
      pushTransaction();
    }
    
    // TODO: 
  }
  
  private void parseEndByte(byte packet) {
    if(packet == Transaction.TRANSACTION_END_BYTE) {
      mParseMode = PARSE_MODE_WAIT_START_BYTE;
      pushTransaction();
    }
  }
  
  private void pushTransaction() {
    if(mTransaction != null) {
      mTransactionQueue.add(mTransaction);
      mTransaction = null;
    }
  }
  
  
  public class Transaction {
    private static final byte TRANSACTION_START_BYTE = (byte)0xfc;
    private static final byte TRANSACTION_END_BYTE = (byte)0xfd;
    
    public static final int COMMAND_TYPE_NONE = 0x00;
    public static final int COMMAND_TYPE_PING = 0x01;
    
  }
  
}




Java Source Code List

com.hardcopy.retrowatch.DeviceListActivity.java
com.hardcopy.retrowatch.FiltersAdapter.java
com.hardcopy.retrowatch.FiltersFragment.java
com.hardcopy.retrowatch.IAdapterListener.java
com.hardcopy.retrowatch.IDialogListener.java
com.hardcopy.retrowatch.IFragmentListener.java
com.hardcopy.retrowatch.IWebViewListener.java
com.hardcopy.retrowatch.MessageListAdapter.java
com.hardcopy.retrowatch.MessageListDialog.java
com.hardcopy.retrowatch.MessageListFragment.java
com.hardcopy.retrowatch.RetroWatchActivity.java
com.hardcopy.retrowatch.RetroWatchFragmentAdapter.java
com.hardcopy.retrowatch.RetroWebViewActivity.java
com.hardcopy.retrowatch.RetroWebView.java
com.hardcopy.retrowatch.RssAdapter.java
com.hardcopy.retrowatch.RssFragment.java
com.hardcopy.retrowatch.WatchControlFragment.java
com.hardcopy.retrowatch.connectivity.BluetoothManager.java
com.hardcopy.retrowatch.connectivity.ConnectionInfo.java
com.hardcopy.retrowatch.connectivity.HttpAsyncTask.java
com.hardcopy.retrowatch.connectivity.HttpFileAsyncTask.java
com.hardcopy.retrowatch.connectivity.HttpInterface.java
com.hardcopy.retrowatch.connectivity.HttpListener.java
com.hardcopy.retrowatch.connectivity.HttpRequester.java
com.hardcopy.retrowatch.connectivity.TransactionBuilder.java
com.hardcopy.retrowatch.connectivity.TransactionReceiver.java
com.hardcopy.retrowatch.contents.ContentManager.java
com.hardcopy.retrowatch.contents.FeedManager.java
com.hardcopy.retrowatch.contents.FeedParser.java
com.hardcopy.retrowatch.contents.GmailContract.java
com.hardcopy.retrowatch.contents.IContentManagerListener.java
com.hardcopy.retrowatch.contents.IFeedListener.java
com.hardcopy.retrowatch.contents.objects.CPObject.java
com.hardcopy.retrowatch.contents.objects.ContentObject.java
com.hardcopy.retrowatch.contents.objects.EmergencyObject.java
com.hardcopy.retrowatch.contents.objects.FeedObject.java
com.hardcopy.retrowatch.contents.objects.FilterObject.java
com.hardcopy.retrowatch.contents.objects.MessagingObject.java
com.hardcopy.retrowatch.contents.objects.NotificationObject.java
com.hardcopy.retrowatch.database.DBHelper.java
com.hardcopy.retrowatch.service.NotificationReceiverService.java
com.hardcopy.retrowatch.service.RetroWatchService.java
com.hardcopy.retrowatch.service.ServiceMonitoring.java
com.hardcopy.retrowatch.utils.Constants.java
com.hardcopy.retrowatch.utils.Logs.java
com.hardcopy.retrowatch.utils.RecycleUtils.java
com.hardcopy.retrowatch.utils.Settings.java
com.hardcopy.retrowatch.utils.Utils.java
com.hardcopy.retrowatchle.DeviceListActivity.java
com.hardcopy.retrowatchle.FiltersAdapter.java
com.hardcopy.retrowatchle.FiltersFragment.java
com.hardcopy.retrowatchle.IAdapterListener.java
com.hardcopy.retrowatchle.IDialogListener.java
com.hardcopy.retrowatchle.IFragmentListener.java
com.hardcopy.retrowatchle.IWebViewListener.java
com.hardcopy.retrowatchle.MessageListAdapter.java
com.hardcopy.retrowatchle.MessageListDialog.java
com.hardcopy.retrowatchle.MessageListFragment.java
com.hardcopy.retrowatchle.RetroWatchActivity.java
com.hardcopy.retrowatchle.RetroWatchFragmentAdapter.java
com.hardcopy.retrowatchle.RetroWebViewActivity.java
com.hardcopy.retrowatchle.RetroWebView.java
com.hardcopy.retrowatchle.RssAdapter.java
com.hardcopy.retrowatchle.RssFragment.java
com.hardcopy.retrowatchle.WatchControlFragment.java
com.hardcopy.retrowatchle.connectivity.BluetoothManager.java
com.hardcopy.retrowatchle.connectivity.ConnectionInfo.java
com.hardcopy.retrowatchle.connectivity.HttpAsyncTask.java
com.hardcopy.retrowatchle.connectivity.HttpFileAsyncTask.java
com.hardcopy.retrowatchle.connectivity.HttpInterface.java
com.hardcopy.retrowatchle.connectivity.HttpListener.java
com.hardcopy.retrowatchle.connectivity.HttpRequester.java
com.hardcopy.retrowatchle.connectivity.TransactionBuilder.java
com.hardcopy.retrowatchle.connectivity.TransactionReceiver.java
com.hardcopy.retrowatchle.contents.ContentManager.java
com.hardcopy.retrowatchle.contents.FeedManager.java
com.hardcopy.retrowatchle.contents.FeedParser.java
com.hardcopy.retrowatchle.contents.GmailContract.java
com.hardcopy.retrowatchle.contents.IContentManagerListener.java
com.hardcopy.retrowatchle.contents.IFeedListener.java
com.hardcopy.retrowatchle.contents.objects.CPObject.java
com.hardcopy.retrowatchle.contents.objects.ContentObject.java
com.hardcopy.retrowatchle.contents.objects.EmergencyObject.java
com.hardcopy.retrowatchle.contents.objects.FeedObject.java
com.hardcopy.retrowatchle.contents.objects.FilterObject.java
com.hardcopy.retrowatchle.contents.objects.MessagingObject.java
com.hardcopy.retrowatchle.contents.objects.NotificationObject.java
com.hardcopy.retrowatchle.database.DBHelper.java
com.hardcopy.retrowatchle.service.RetroWatchService.java
com.hardcopy.retrowatchle.service.ServiceMonitoring.java
com.hardcopy.retrowatchle.utils.Constants.java
com.hardcopy.retrowatchle.utils.Logs.java
com.hardcopy.retrowatchle.utils.RecycleUtils.java
com.hardcopy.retrowatchle.utils.Settings.java
com.hardcopy.retrowatchle.utils.Utils.java