protected final void read(InputStream in, ByteArrayOutputStream sink, DataListener listener) { final byte[] buf = new byte[1024]; try { int len = -1; boolean reading = true; while (reading) { final int sinkSize = sink.size(); final int readSize = (listener == null ? buf.length : Math.min(buf.length, listener.getDesiredByteCount(this, sinkSize))); if ((len = in.read(buf, 0, readSize)) > 0) { if (listener == null) { sink.write(buf, 0, len); reading = false; } else { if (len > 0 && !listener.receivedData(this, buf, 0, len, sink, sink.size())) { reading = false; ; } } } else if (listener == null) { reading = false; } } } catch (IOException e) { log.warn("IOException reading serial data: {}", e.getMessage()); } if (eventLog.isTraceEnabled()) { eventLog.trace("Finished reading data: {}", asciiDebugValue(sink.toByteArray())); } }
/** @param inPacket */ private void notifyDataReceived(CrtpPacket packet) { boolean found = false; for (DataListener dataListener : mDataListeners) { if (dataListener.getPort() == packet.getHeader().getPort()) { dataListener.dataReceived(packet); found = true; } } if (!found) { // mLogger.warn("Got packet on port [" + packet.getHeader().getPort() + "] but found no data // listener to handle it."); } }
private void updateScreenNail(long version, Future<Bitmap> future) { ImageEntry entry = mImageCache.get(version); if (entry == null || entry.screenNailTask != future) { Bitmap screenNail = future.get(); if (screenNail != null) screenNail.recycle(); return; } entry.screenNailTask = null; entry.screenNail = future.get(); if (entry.screenNail == null) { entry.failToLoad = true; /*a@nufront start*/ for (int i = -1; i <= 1; ++i) { if (version == getVersion(mCurrentIndex + i)) { if (0 == i) updateTileProvider(entry); mPhotoView.notifyImageInvalidated(i); } } /*a@nufront end*/ } else { if (mDataListener != null) { mDataListener.onPhotoAvailable(version, false); } for (int i = -1; i <= 1; ++i) { if (version == getVersion(mCurrentIndex + i)) { if (i == 0) updateTileProvider(entry); mPhotoView.notifyImageInvalidated(i); } } } updateImageRequests(); }
/** * Constructor. * * @param connection the XMPP connection */ private InBandBytestreamManager(Connection connection) { this.connection = connection; // register bytestream open packet listener initiationListener = new InitiationListener(this); this.connection.addPacketListener(initiationListener, initiationListener.getFilter()); // register bytestream data packet listener dataListener = new DataListener(this); this.connection.addPacketListener(dataListener, dataListener.getFilter()); // register bytestream close packet listener closeListener = new CloseListener(this); this.connection.addPacketListener(closeListener, closeListener.getFilter()); }
private void updateCurrentIndex(int index) { mCurrentIndex = index; updateSlidingWindow(); MediaItem item = mData[index % DATA_CACHE_SIZE]; mItemPath = item == null ? null : item.getPath(); updateImageCache(); updateImageRequests(); updateTileProvider(); mPhotoView.notifyOnNewImage(); if (mDataListener != null) { mDataListener.onPhotoChanged(index, mItemPath); } fireModelInvalidated(); }
private void updateFullImage(long version, Future<BitmapRegionDecoder> future) { ImageEntry entry = mImageCache.get(version); if (entry == null || entry.fullImageTask != future) { BitmapRegionDecoder fullImage = future.get(); if (fullImage != null) fullImage.recycle(); return; } entry.fullImageTask = null; entry.fullImage = future.get(); if (entry.fullImage != null) { if (mDataListener != null) { mDataListener.onPhotoAvailable(version, true); } if (version == getVersion(mCurrentIndex)) { updateTileProvider(entry); mPhotoView.notifyImageInvalidated(0); } } updateImageRequests(); }
/** * Post marker data to subscribed listeners. * * @param cmap the channel map containing the marker data */ protected void fireMarkersUpdated(ChannelMap cmap) { for (DataListener listener : markerListeners) { SimpleResponse r = new SimpleResponse(cmap); listener.postData(r); } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button refreshButton = (Button) findViewById(R.id.refresh); refreshButton.setOnClickListener(this); Button connectButton = (Button) findViewById(R.id.connect); connectButton.setOnClickListener(this); Button disconnectButton = (Button) findViewById(R.id.disconnect); disconnectButton.setOnClickListener(this); Button pauseButton = (Button) findViewById(R.id.pause); pauseButton.setOnClickListener(this); // // Uncommet to test Muse File Reader // // // file can be big, read it in a separate thread // Thread thread = new Thread(new Runnable() { // public void run() { // playMuseFile("testfile.muse"); // } // }); // thread.start(); // kt: start the audio feedback thread Thread thread = new Thread( new Runnable() { public void run() { stopSounds = 0; playAudioFeedback(0); } }); thread.start(); File dir = getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS); fileWriter = MuseFileFactory.getMuseFileWriter(new File(dir, "new_muse_file.muse")); Log.i("Muse Headband", "libmuse version=" + LibMuseVersion.SDK_VERSION); fileWriter.addAnnotationString(1, "MainActivity onCreate"); dataListener.setFileWriter(fileWriter); boolean append_to_file = false; // GettingCurrentDate gcd = new GettingCurrentDate(); // DateFormat df = new SimpleDateFormat("dd-MM-yy_HH:mm:ss"); DateFormat df = new SimpleDateFormat("yy-MM-dd_HH:mm:ss"); Date dateobj = new Date(); // System.out.println(df.format(dateobj)); String ldt = df.format(dateobj); // String ldt = gcd.getCurrentDateTime(); try { String fdname = dir + "/muse_data_file" + ldt + ".csv"; writeData = new FileWriter(fdname, append_to_file); } catch (Exception e) { Log.e("Muse Headband", e.toString()); } print_line = new PrintWriter(writeData); // fileWriterData.addAnnotationString(1, "alpha, beta, delta, gamma, theta,"); // String strData = "Time ms,AlphaAbs0,AlphaAbs1,AlphaAbs2,AlphaAbs3, BetaAbs0, BetaAbs1, // BetaAbs2, BetaAbs3, DeltaAbs0, DeltaAbs1, DeltaAbs2, DeltaAbs3, GammaAbs0, GammaAbs1, // GammaAbs2, GammaAbs3, ThetaAbs0, ThetaAbs1, ThetaAbs2, ThetaAbs3, Horseshoe0, Horseshoe1, // Horseshoe2, Horseshoe4 " + "\r\n"; // Sensor1, Sensor2, Sensor3, Sensor4 " + "\r\n"; // old setup: all sensors // String strData = "Packet time,Time ms,Eeg TP9,Eeg TP10,Eeg FP1,Eeg FP2,AlphaAbs TP9,AlphaAbs // TP10,AlphaAbs FP1,AlphaAbs FP2,BetaAbs TP9,BetaAbs TP10,BetaAbs FP1,BetaAbs FP2,Delta // TP9,Delta TP10,Delta FP1,Delta FP2,GammaAbs TP9,GammaAbs TP10,GammaAbs FP1,GammaAbs // FP2,ThetaAbs TP9,ThetaAbs TP10,ThetaAbs FP1,ThetaAbs FP2,Horseshoe tp9,Horseshoe // TP10,Horseshoe FP1,Horseshoe FP2 " + "\r\n"; // new setu[p : only fp1, fp2 eeg sensors String strData = "Packet time,Time ms,Eeg FP1,Eeg FP2,AlphaAbs FP1,AlphaAbs FP2,BetaAbs FP1,BetaAbs FP2,Delta FP1,Delta FP2,GammaAbs FP1,GammaAbs FP2,ThetaAbs FP1,ThetaAbs FP2,,Horseshoe FP1,Horseshoe FP2 " + "\r\n"; print_line.printf(strData); }
public void removeDataListener(JSObject event) { super.removeDataListener(DataListener.get(event)); }
public void addDataListener(JSObject event) { super.addDataListener(DataListener.get(event)); }
/** * Remove a data listener for data that comes on a specific port * * @param dataListener */ public void removeDataListener(DataListener dataListener) { mLogger.debug("Removing data listener for port [" + dataListener.getPort() + "]"); this.mDataListeners.remove(dataListener); }
/** * Add a data listener for data that comes on a specific port * * @param dataListener */ public void addDataListener(DataListener dataListener) { mLogger.debug("Adding data listener for port [" + dataListener.getPort() + "]"); this.mDataListeners.add(dataListener); }