Android Open Source - LibGeppa Physicaloid Socket






From Project

Back to project page LibGeppa.

License

The source code is released under:

Apache License

If you think the Android project LibGeppa 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 net.cattaka.libgeppa.net;
//from www.j a  v  a  2  s.co  m
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import com.physicaloid.lib.Physicaloid;

import net.cattaka.libgeppa.IRawSocket;
import net.cattaka.libgeppa.exception.NotImplementedException;

public class PhysicaloidSocket implements IRawSocket {
    private class InputStreamEx extends InputStream {
        private byte[] buf = new byte[64];

        private int bufReaded = 0;

        private int bufIdx = 0;

        private boolean closed = false;

        @Override
        public int read() throws IOException {
            while (mPhysicaloid.isOpened() && !closed) {
                if (bufIdx < bufReaded) {
                    return (0xFF) & buf[bufIdx++];
                } else {
                    bufIdx = 0;
                    bufReaded = mPhysicaloid.read(buf);
                }
            }
            return -1;
        }

        @Override
        public int read(byte[] buffer) throws IOException {
            throw new NotImplementedException();
        }

        @Override
        public int read(byte[] buffer, int offset, int length) throws IOException {
            throw new NotImplementedException();
        }

        @Override
        public void close() throws IOException {
            super.close();
            closed = true;
        }
    }

    private class OutputStreamEx extends OutputStream {
        private int mBufIdx;

        private byte[] mBuf = new byte[1 << 12];

        @Override
        public void write(int oneByte) throws IOException {
            mBuf[mBufIdx++] = (byte)oneByte;
            if (mBufIdx == mBuf.length) {
                flush();
            }
        }

        @Override
        public void flush() throws IOException {
            super.flush();
            mPhysicaloid.write(mBuf, mBufIdx);
            mBufIdx = 0;
        }
    }

    private Physicaloid mPhysicaloid;

    private InputStreamEx mInputStream;

    private OutputStreamEx mOutputStream;

    
    public PhysicaloidSocket(Physicaloid ftDriver) {
        super();
        mPhysicaloid = ftDriver;
        mInputStream = new InputStreamEx();
        mOutputStream = new OutputStreamEx();
    }

    @Override
    public boolean setup() {
        return true;
    }

    @Override
    public String getLabel() {
        return "FTDriver Socket";
    }

    @Override
    public InputStream getInputStream() {
        return mInputStream;
    }

    @Override
    public OutputStream getOutputStream() {
        return mOutputStream;
    }

    @Override
    public void close() throws IOException {
        mPhysicaloid.close();
    }

    @Override
    public boolean isConnected() {
        return mPhysicaloid.isOpened();
    }

}




Java Source Code List

net.cattaka.libgeppa.ActiveGeppaService.java
net.cattaka.libgeppa.AdkPassiveGeppaService.java
net.cattaka.libgeppa.BluetoothPassiveGeppaService.java
net.cattaka.libgeppa.Constants.java
net.cattaka.libgeppa.GeppaService.java
net.cattaka.libgeppa.IRawSocket.java
net.cattaka.libgeppa.PassiveGeppaService.java
net.cattaka.libgeppa.adapter.AbsConnectionAdapter.java
net.cattaka.libgeppa.adapter.DummyDeviceAdapter.java
net.cattaka.libgeppa.adapter.IDeviceAdapterListener.java
net.cattaka.libgeppa.adapter.IDeviceAdapter.java
net.cattaka.libgeppa.adapter.IDeviceCommandAdapter.java
net.cattaka.libgeppa.adapter.LocalDeviceAdapter.java
net.cattaka.libgeppa.adapter.RemoteDeviceAdapter.java
net.cattaka.libgeppa.binder.ActiveGeppaServiceFuncs.java
net.cattaka.libgeppa.binder.PassiveGeppaServiceFuncs.java
net.cattaka.libgeppa.binder.async.ActiveGeppaServiceFuncsAsync.java
net.cattaka.libgeppa.binder.async.AsyncInterfaceException.java
net.cattaka.libgeppa.binder.async.PassiveGeppaServiceFuncsAsync.java
net.cattaka.libgeppa.bluetooth.BluetoothAdapterFactory.java
net.cattaka.libgeppa.bluetooth.BluetoothAdapterWrapper.java
net.cattaka.libgeppa.bluetooth.BluetoothDeviceWrapper.java
net.cattaka.libgeppa.bluetooth.BluetoothSocketWrapper.java
net.cattaka.libgeppa.bluetooth.IBluetoothAdapter.java
net.cattaka.libgeppa.bluetooth.IBluetoothDevice.java
net.cattaka.libgeppa.bluetooth.IBluetoothSocket.java
net.cattaka.libgeppa.data.BaudRate.java
net.cattaka.libgeppa.data.ConnectionCode.java
net.cattaka.libgeppa.data.ConnectionState.java
net.cattaka.libgeppa.data.DeviceEventCode.java
net.cattaka.libgeppa.data.DeviceInfo.java
net.cattaka.libgeppa.data.DeviceState.java
net.cattaka.libgeppa.data.IPacketFactory.java
net.cattaka.libgeppa.data.IPacket.java
net.cattaka.libgeppa.data.PacketWrapper.java
net.cattaka.libgeppa.data.SocketState.java
net.cattaka.libgeppa.exception.NotImplementedException.java
net.cattaka.libgeppa.net.DummySocketPrepareTask.java
net.cattaka.libgeppa.net.DummySocket.java
net.cattaka.libgeppa.net.PhysicaloidSocketPrepareTask.java
net.cattaka.libgeppa.net.PhysicaloidSocket.java
net.cattaka.libgeppa.net.RemoteSocketPrepareTask.java
net.cattaka.libgeppa.net.RemoteSocket.java
net.cattaka.libgeppa.net.UsbClass.java
net.cattaka.libgeppa.passive.AdkPassiveReceiver.java
net.cattaka.libgeppa.passive.BluetoothPassiveReceiver.java
net.cattaka.libgeppa.passive.IPassiveReceiverListener.java
net.cattaka.libgeppa.passive.IPassiveReceiver.java
net.cattaka.libgeppa.socket.AdkRawSocket.java
net.cattaka.libgeppa.socket.BtRawSocket.java
net.cattaka.libgeppa.thread.ClientThread.java
net.cattaka.libgeppa.thread.ConnectionThread.java
net.cattaka.libgeppa.thread.IConnectionThreadListener.java
net.cattaka.libgeppa.thread.ReceiveThread.java
net.cattaka.libgeppa.thread.ServerThread.java
net.cattaka.libgeppa.util.AidlUtil.java
net.cattaka.libgeppa.util.DeviceUtil.java