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.
