Is it possible that you're filtering debug messages in logcat? Have you
tried using Log.e(...) instead?


On Fri, Jun 6, 2014 at 8:20 AM, Sidharta Prahladsingh <[email protected]
> wrote:

> I really don't see the difference between your implementation and mine.
> Think it's a problem with my Android Manifest? Dont see how, but I am
> actually really desperate now to get feedback from the Looper class for
> some other features I was planning to implement. The work around is way too
> inefficient. is there anything that I might be missing or can try? I am
> working in Eclipse, MainActivity extends IOIOActivity, Looper extends
> BaseIOIOLooper, all imports concerning this are also done like you saw in
> my previous post, createIOIOLooper is being done... I am really at a loss
> on this one...
>
> On Friday, June 6, 2014 2:10:09 AM UTC+2, Ytai wrote:
>
>>
>>
>>
>> On Thu, Jun 5, 2014 at 11:04 AM, Sidharta Prahladsingh <
>> [email protected]> wrote:
>>
>>> the SPI lines are now confirmed to be in working order. Most things were
>>> fixed by sleeping after sending and by sampling at trailing clock.
>>>
>>
>> I can't see why sleeping would be required. Also, unless you care about
>> the data coming back, I would use writeReadAsync() and put the entire frame
>> push in a beginBatch() / endBatch() block.
>> Sampling at the trailing vs. leading clock edge has to do with what your
>> slave expects.
>>
>>
>>>
>>> About ANY function I put in the looper does not give my feedback to
>>> android. Say I feed MOSI back to MISO, I KNOW there is a signal but any
>>> attempt to view the MISO input isn't working. Even tried making a seperate
>>> infograb function in another class so I can send the data to be viewed in
>>> Logcat but that also gives nothing. No data wants to leave looper for some
>>> reason.
>>>
>>
>> I have testing code that does a loopback between MISO and MOSI and logs
>> out data. It works. You have something else going on it seems. The code is
>> in the TortureTest app, you can check it out.
>>
>>
>>>
>>>
>>> On Thursday, June 5, 2014 5:39:10 PM UTC+2, Ytai wrote:
>>>
>>>> Nothing obviously wrong with your code.
>>>> Since (if I understand correctly) your FPGA is also under development,
>>>> your best way to proceed is to capture the SPI lines with a logic analyzer
>>>> and see whether the IOIO is sending valid data.
>>>> Also, why doesn't Log.d work in your looper? It normally does.
>>>>
>>>>
>>>> On Thu, Jun 5, 2014 at 3:03 AM, Sidharta Prahladsingh <
>>>> [email protected]> wrote:
>>>>
>>>>> oh also spi is fixed. "spi_ = ioio_.openSpiMaster(new
>>>>> DigitalInput.Spec(4,
>>>>>      Mode.PULL_UP), new DigitalOutput.Spec(5),
>>>>>      new DigitalOutput.Spec(3),
>>>>>      new DigitalOutput.Spec[] { new DigitalOutput.Spec(2) },
>>>>>      new SpiMaster.Config(Rate.RATE_1M, false, true));" worked better
>>>>> than
>>>>> "spi_ = ioio_.openSpiMaster(4, 5, 3, 2, SpiMaster.Rate.RATE_1M);" in
>>>>> our situation.
>>>>> The latter produced double information.
>>>>>
>>>>> On Thursday, June 5, 2014 11:51:04 AM UTC+2, Sidharta Prahladsingh
>>>>> wrote:
>>>>>
>>>>>> Since it would be too much code to go through, I will just at my
>>>>>> imports, MainActivity with global variables and the Looper class:
>>>>>> Global variables and imports:
>>>>>>
>>>>>> import java.io.BufferedInputStream;
>>>>>>
>>>>>> import java.io.File;
>>>>>>
>>>>>> import java.io.FileOutputStream;
>>>>>>
>>>>>> import java.io.IOException;
>>>>>>
>>>>>> import java.io.InputStream;
>>>>>>
>>>>>> import java.io.InputStreamReader;
>>>>>>
>>>>>> import java.net.MalformedURLException;
>>>>>>
>>>>>> import java.net.URL;
>>>>>>
>>>>>> import java.net.URLConnection;
>>>>>>
>>>>>> import java.nio.ByteBuffer;
>>>>>>
>>>>>> import java.util.ArrayList;
>>>>>>
>>>>>> import java.util.Arrays;
>>>>>>
>>>>>> import java.util.List;
>>>>>>
>>>>>> import java.util.concurrent.ExecutionException;
>>>>>>
>>>>>>
>>>>>> import android.R.style;
>>>>>>
>>>>>> import android.graphics.Bitmap;
>>>>>>
>>>>>> import android.graphics.Bitmap.Config;
>>>>>>
>>>>>> import android.graphics.BitmapFactory;
>>>>>>
>>>>>> import android.graphics.Canvas;
>>>>>>
>>>>>> import android.graphics.Color;
>>>>>>
>>>>>> import android.graphics.Matrix;
>>>>>>
>>>>>> import android.graphics.Paint;
>>>>>>
>>>>>> import android.graphics.Rect;
>>>>>>
>>>>>> import android.graphics.Paint.Style;
>>>>>>
>>>>>> import android.os.AsyncTask;
>>>>>>
>>>>>> import android.os.Bundle;
>>>>>>
>>>>>> import android.os.Environment;
>>>>>>
>>>>>> import android.util.Log;
>>>>>>
>>>>>> import android.view.Menu;
>>>>>>
>>>>>> import android.view.MenuInflater;
>>>>>>
>>>>>> import android.view.MenuItem;
>>>>>>
>>>>>> import android.view.MotionEvent;
>>>>>>
>>>>>> import android.view.VelocityTracker;
>>>>>>
>>>>>> import android.view.View;
>>>>>>
>>>>>> import android.view.WindowManager;
>>>>>>
>>>>>> import ioio.lib.api.DigitalInput;
>>>>>>
>>>>>> import ioio.lib.api.DigitalInput.Spec.Mode;
>>>>>>
>>>>>> import ioio.lib.api.DigitalOutput;
>>>>>>
>>>>>> import ioio.lib.api.IOIO;
>>>>>>
>>>>>> import ioio.lib.api.SpiMaster;
>>>>>>
>>>>>> import ioio.lib.api.SpiMaster.Rate;
>>>>>>
>>>>>> import ioio.lib.api.Uart;
>>>>>>
>>>>>> import ioio.lib.api.exception.ConnectionLostException;
>>>>>>
>>>>>> import ioio.lib.util.BaseIOIOLooper;
>>>>>>
>>>>>> import ioio.lib.util.IOIOLooper;
>>>>>>
>>>>>> import ioio.lib.util.android.IOIOActivity;
>>>>>>
>>>>>> import android.view.View.OnClickListener;
>>>>>>
>>>>>> import android.annotation.TargetApi;
>>>>>>
>>>>>> import android.app.AlarmManager;
>>>>>>
>>>>>> import android.app.Dialog;
>>>>>>
>>>>>> import android.app.PendingIntent;
>>>>>>
>>>>>> import android.content.Context;
>>>>>>
>>>>>> import android.content.Intent;
>>>>>>
>>>>>> import android.database.Cursor;
>>>>>>
>>>>>> import android.net.Uri;
>>>>>>
>>>>>> import android.os.Build;
>>>>>>
>>>>>> import android.provider.MediaStore;
>>>>>>
>>>>>> import android.widget.ArrayAdapter;
>>>>>>
>>>>>> import android.widget.Button;
>>>>>>
>>>>>> import android.widget.CheckBox;
>>>>>>
>>>>>> import android.widget.EditText;
>>>>>>
>>>>>> import android.widget.FrameLayout;
>>>>>>
>>>>>> import android.widget.ImageView;
>>>>>>
>>>>>> import android.widget.LinearLayout;
>>>>>>
>>>>>> import android.widget.Spinner;
>>>>>>
>>>>>> import android.widget.TextView;
>>>>>>
>>>>>> public class MainActivity extends IOIOActivity{
>>>>>>  //initiation attributes
>>>>>> private EditText custtext;
>>>>>> private EditText urltxt;
>>>>>> private Button custtxtbut;
>>>>>>  private Button urlshare;
>>>>>> private Button picdisplayButton;
>>>>>> private Button rstButton;
>>>>>>  private ImageView pictest;
>>>>>> private static ImageView pictest2;
>>>>>> private static ImageView pictest3;
>>>>>>  private ImageView pictest4;
>>>>>> private GifView gifView;
>>>>>> private GifDecoder decoder;
>>>>>> private VelocityTracker mVelocityTracker = null;
>>>>>>  private static TextView test;
>>>>>>
>>>>>> //intiation variables
>>>>>> //width and height of the LED-matrix
>>>>>>  private static int picw =33;
>>>>>> private static int pich = 5;
>>>>>> private static boolean isgif = false;
>>>>>>  private boolean bkgchk;
>>>>>> private boolean check = true;
>>>>>> private int bkgclr = 0;
>>>>>> private int txtclr = 3;
>>>>>>  private static byte[] buffer = new byte[picw*pich*3]; //<----------
>>>>>> This I want to read out in Looper
>>>>>> public static List<Bitmap> bmlist = new ArrayList<Bitmap>();
>>>>>>  private static Bitmap lastpic = null;
>>>>>> private float touchposx;
>>>>>> private float touchposy;
>>>>>>  private float deltax;
>>>>>> private float deltay;
>>>>>> private Bitmap lastfullbm = null;
>>>>>> private Bitmap touchpic =null;
>>>>>>  private Bitmap oldtouchpic =null;
>>>>>>
>>>>>> private static byte[] bufferin= new byte[picw*pich*3];
>>>>>>
>>>>>> private static boolean picdone = true;
>>>>>>
>>>>>>
>>>>>> *Looper Class:*
>>>>>>
>>>>>> static class Looper extends BaseIOIOLooper {
>>>>>>
>>>>>>  //initiation of SPI protocol variable
>>>>>>
>>>>>>  private SpiMaster spi_;
>>>>>>
>>>>>>  private DigitalOutput pin8;
>>>>>>
>>>>>>  @Override
>>>>>>
>>>>>>  protected void setup() throws ConnectionLostException {
>>>>>>
>>>>>>
>>>>>>  pin8 = ioio_.openDigitalOutput(8, false);//image_enable
>>>>>>
>>>>>>
>>>>>> }
>>>>>>
>>>>>>     @Override
>>>>>>
>>>>>>  public void loop() throws ConnectionLostException,
>>>>>> InterruptedException {
>>>>>>
>>>>>>  if (picdone == false)
>>>>>>
>>>>>>  {
>>>>>>
>>>>>>  if (!isgif){
>>>>>>
>>>>>> //picture send process
>>>>>>
>>>>>>  spi_ = ioio_.openSpiMaster(new DigitalInput.Spec(4,
>>>>>>
>>>>>>
>>>>>>      Mode.PULL_UP), new DigitalOutput.Spec(5),
>>>>>>
>>>>>>      new DigitalOutput.Spec(3),
>>>>>>
>>>>>>      new DigitalOutput.Spec[] { new DigitalOutput.Spec(2) },
>>>>>>
>>>>>>      new SpiMaster.Config(Rate.RATE_1M, false, true));
>>>>>>
>>>>>>  byte[] buffer_= buffer;
>>>>>>
>>>>>>   int buffernum = (int) Math.ceil(buffer_.length/48);
>>>>>>
>>>>>>
>>>>>>  byte[] buffer1_= new byte[48];
>>>>>>
>>>>>>  byte[] packetlast= new byte[48];
>>>>>>
>>>>>>  pin8.write(true);
>>>>>>
>>>>>>
>>>>>>  Thread.sleep(500);
>>>>>>
>>>>>>  for (int i =0;i<buffernum;i++){
>>>>>>
>>>>>>  System.arraycopy(buffer_, i*48, buffer1_, 0, 48);
>>>>>>
>>>>>>
>>>>>>  spi_.writeRead( buffer1_, buffer1_.length,
>>>>>>
>>>>>>
>>>>>> buffer1_.length, null,0);* <------- e.g. I want to read here the
>>>>>> MISO and display it on the phone or display the buffer array from here to
>>>>>> phone. Log.d also doesnt work here but everywhere else.*
>>>>>>
>>>>>>  Thread.sleep(100);
>>>>>>
>>>>>>
>>>>>> }
>>>>>>
>>>>>>  Thread.sleep(500);
>>>>>>
>>>>>>  pin8.write(false);
>>>>>>
>>>>>>  spi_.close();
>>>>>>
>>>>>>  }
>>>>>>
>>>>>>
>>>>>> else
>>>>>>
>>>>>>  {
>>>>>>
>>>>>>  //GIF send process
>>>>>>
>>>>>>   isgif = false;
>>>>>>
>>>>>>  }
>>>>>>
>>>>>> picdone =true;//must be true to send 1 image per time.
>>>>>>
>>>>>>  }
>>>>>>
>>>>>>  }
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  }
>>>>>>
>>>>>>
>>>>>>  protected IOIOLooper createIOIOLooper() {
>>>>>>
>>>>>>  return new Looper();
>>>>>>
>>>>>>  }
>>>>>>
>>>>>> On Wednesday, June 4, 2014 5:55:40 PM UTC+2, Ytai wrote:
>>>>>>
>>>>>> Regarding SPI: there shouldn't be any lost data. I would try
>>>>>> connecting a logic analyzer on MOSI/CLK to verify that.
>>>>>> Note that you can do up to 64 bytes on each transaction.
>>>>>> To answer the other question I need to look at your code. The static
>>>>>> variables should work as you expect, but there's probably something else
>>>>>> about your code that you're missing.
>>>>>>
>>>>>>
>>>>>> On Wed, Jun 4, 2014 at 4:33 AM, Sidharta Prahladsingh <sidki...@
>>>>>>
>>>>>> ...
>>>>>
>>>>>  --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "ioio-users" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>>
>>>>> Visit this group at http://groups.google.com/group/ioio-users.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "ioio-users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/ioio-users.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
> You received this message because you are subscribed to the Google Groups
> "ioio-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/ioio-users.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"ioio-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/ioio-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to