QWERTY USB keyboard - keystrokes problem

by Jerry Johns » Thu, 30 Apr 2009 08:28:19 GMT


Sponsored Links
 I managed to successfully port the android 2.6.23 kernel changes over
to a TI Davinci TMS320DM6446 EVM Board - its an arm926ejs core with a
DSP processor as well in the die.
The changes were patched over the davinci-git kernel (2.6.23 as well).

The board boots up fine over NFS - i get the red blob moving around,
and then the final UI comes up fine with no error messages on the
console.

I connected a QWERTY keyboard as a USB HID, and it worked absolutely
fine the first time i connected it to the board; on subsequent boots
however, a single keystroke started getting mis-interpreted as
multiple keystrokes - typing "H" would result in 3 Hs for example;
navigating the UI was really hard as it would skip over many of the
icons.
On further boots, this became even more problematic as it would
duplicate them 5 times.

A "getevent" showed that in addition to the event0 device being
registered, some other weird .nfs0020932092302 device in the /dev/
input/ folder was being registered as well. If i deleted that device
(an "ls" in the folder didn't show it), i would get
newer .nfsxxxxxxxxx keystrokes being logged.

Any ideas why this is happening? I'm using the ramdisk provided in the
m5-rc14 SDK version.

Thank you kindly,

Jerry
--~--~---------~--~----~------------~-------~--~----~

-~----------~----~----~----~------~----~------~--~---



Other Threads

1. Camera Preview not working on my G2

I'm trying to get the camera preview running on my G2.

This is the code I'm testing with, which was taken from the sample
code.  It is using supplemental code supplied by Wu-Cheng, but its
still throwing an error


/*
 * Copyright (C) 2007 The Android Open Source Project
 *
 * 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.sltools;

import android.app.Activity;
import android.content.Context;
import android.hardware.Camera;
import android.hardware.Camera.Size;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.Window;
import java.io.IOException;
import java.util.List;

//
----------------------------------------------------------------------

public class CameraPreview extends Activity {
    private Preview mPreview;

    @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Hide the window title.
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        // Create our Preview view and set it as the content of our
activity.
        mPreview = new Preview(this);
        setContentView(mPreview);
    }


}

//
----------------------------------------------------------------------

class Preview extends SurfaceView implements SurfaceHolder.Callback {
    SurfaceHolder mHolder;
    Camera mCamera;

    Preview(Context context) {
        super(context);

        // Install a SurfaceHolder.Callback so we get notified when
the
        // underlying surface is created and destroyed.
        mHolder = getHolder();
        mHolder.addCallback(this);
        mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    }

    public void surfaceCreated(SurfaceHolder holder) {
        // The Surface has been created, acquire the camera and tell
it where
        // to draw.
        mCamera = Camera.open();
        try {
           mCamera.setPreviewDisplay(holder);
        } catch (IOException exception) {
            mCamera.release();
            mCamera = null;
            // TODO: add more exception handling logic here
        }
    }

    public void surfaceDestroyed(SurfaceHolder holder) {
        // Surface will be destroyed when we return, so stop the
preview.
        // Because the CameraDevice object is not a shared resource,
it's very
        // important to release it when the activity is paused.
        mCamera.stopPreview();
        mCamera.release();
        mCamera = null;
    }

    public void surfaceChanged(SurfaceHolder holder, int format, int
w, int h) {
            // Now that the size is known, set up the camera parameters and
begin
            // the preview.
            Camera.Parameters parameters = mCamera.getParameters();

            List<Size> sizes = parameters.getSupportedPreviewSizes();
            Size optimalSize = getOptimalPreviewSize(sizes, w, h);
            parameters.setPreviewSize(optimalSize.width, optimalSize.height);

            mCamera.setParameters(parameters);
            mCamera.startPreview();
        }

        private Size getOptimalPreviewSize(List<Size> sizes, int w, int h) {
        final double ASPECT_TOLERANCE = 0.05;
        double targetRatio = (double) w / h;
        if (sizes == null) return null;

        Size optimalSize = null;
        double minDiff = Double.MAX_VALUE;

        int targetHeight = h;

        // Try to find an size match aspect ratio and size
        for (Size size : sizes) {
            double ratio = (double) size.width / size.height;
            if (Math.abs(ratio - targetRatio) > ASPECT_TOLERANCE)
continue;
            if (Math.abs(size.height - targetHeight) < minDiff) {
                optimalSize = size;
                minDiff = Math.abs(size.height - targetHeight);
            }
        }

        // Cannot find the one match the aspect ratio, ignore the
requirement
        if (optimalSize == null) {
            minDiff = Double.MAX_VALUE;
            for (Size size : sizes) {
                if (Math.abs(size.height - targetHeight) < minDiff) {
                    optimalSize = size;
                    minDiff = Math.abs(size.height - targetHeight);
                }
            }
        }
        return optimalSize;
    }

}


The error I'm getting in logcat is FATAL EXCEPTION: main
Class Not Found Exception in dalvik.system.pathclassloader...

Any help or insight into this would be greatly appreciated.


-- 

2. Tab Icons

Hi all,

just a simple question..anyone knows of any icon packs for android
tabhost? Let's say I'm not good at drawing.. :)

-- 

3. Which Javascript Framework?

4. how to get device's android version

5. what intent is used for opening mail account?

6. Interface Design Question

7. reading ttf fonts