小编Sol*_*oid的帖子

Android USB主机从设备读取

我正在尝试从连接到主机模式的Android手机的USB设备中获取一些数据.我能够向它发送数据,但读取失败.

我已经看了几个 例子,尽我所能,但我没有任何USB通信经验,虽然现在我知道了一点,而且我已经坚持了这个,我不得不承认.

我对端点配置不太熟悉,但我知道我的设备使用CDC类型的通信方法,并且输出(从电话到设备)和输入都被注册.

这是使用连接到手机的唯一设备来管理USB连接的整个班级,它没有以任何方式完成,但我希望在我继续前进之前让阅读部分工作.

public class UsbCommunicationManager
{
    static final String ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION";

    UsbManager usbManager;
    UsbDevice usbDevice;
    UsbInterface intf = null;
    UsbEndpoint input, output;
    UsbDeviceConnection connection;

    PendingIntent permissionIntent;

    Context context;

    byte[] readBytes = new byte[64];

    public UsbCommunicationManager(Context context)
    {
        this.context = context;
        usbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE);

        // ask permission from user to use the usb device
        permissionIntent = PendingIntent.getBroadcast(context, 0, new Intent(ACTION_USB_PERMISSION), 0);
        IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
        context.registerReceiver(usbReceiver, filter);
    }

    public void connect()
    {
        // …
Run Code Online (Sandbox Code Playgroud)

usb android host cdc

56
推荐指数
1
解决办法
3万
查看次数

0应用程序支持Android应用程序

我在使用Google Play商店时遇到问题,该商店坚持认为我的应用程序受0设备支持.我已经尝试过在SO和其他地方找到的所有解决方案.这不是关于apk不活动,它被激活是默认的,我甚至尝试停用并重新激活它.

我已经在我的Galaxy Nexus上测试了它并且效果很好,没有理由它与每个Android设备都不兼容......

这是我的清单文件:

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="17" />

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true"
    android:xlargeScreens="true" />

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.INTERNET" />

<uses-feature
    android:name="android.hardware.accelerometer"
    android:required="true" />
<uses-feature
    android:name="android.hardware.screen.portrait"
    android:required="false" />
Run Code Online (Sandbox Code Playgroud)

完整的项目源可以在这里找到:https://github.com/Nurgak/Android-Bluetooth-Remote-Control,因为它是开源的.

这就是我在Google Play上看到的内容. 在此输入图像描述

这5个特征是

android.hardware.ACCELEROMETER
android.hardware.BLUETOOTH
android.hardware.CAMERA
android.hardware.camera.AUTOFOCUS
android.hardware.TOUCHSCREEN
Run Code Online (Sandbox Code Playgroud)

和4个权限

android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.CAMERA
android.permission.INTERNET
Run Code Online (Sandbox Code Playgroud)

我也非常对他们的支持感到震惊,我只是得到了通用的"嘿,你看过我们的常见问题吗?" 回复电子邮件.

android google-play

40
推荐指数
6
解决办法
2万
查看次数

Android立即检测蓝牙断开连接

我正在寻找一种方法来检测蓝牙设备发生后立即断开(最多1秒),通常是在"设备太远"的情况下.目前我可以BroadcastReceiver通过获取a 来检测它BluetoothDevice.ACTION_ACL_DISCONNECTED,但是需要大约20秒才能触发......自己设置超时会更快,但我认为应该有一种方法可以在较低级别执行此操作.

android bluetooth

8
推荐指数
1
解决办法
2410
查看次数

Android在相机预览上绘制

我正在制作一个虚拟现实应用程序,摄像机应该检测到面部,找到它们并在摄像机预览中显示它们的位置.

我知道有3种方法可以做到,我想尽可能快地使用GLSurfaceView(根据这篇文章),但是目前我正在尝试使用相机用于预览的相同 SurfaceView.我的回调onFaceDetection就是这样:

public class MyActivity extends Activity implements SurfaceHolder.Callback, Camera.FaceDetectionListener {
    Camera camera;
    SurfaceView svPreview;
    SurfaceHolder previewHolder;
    TextView tvInfo;
    Paint red;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        svPreview = (SurfaceView) findViewById(R.id.svPreview);
        tvInfo = (TextView) findViewById(R.id.tvInfo);

        red = new Paint();
        red.setStyle(Paint.Style.STROKE);
        red.setStrokeWidth(3);

        previewHolder = svPreview.getHolder();
        previewHolder.addCallback(this);
        previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    }

    public void surfaceCreated(SurfaceHolder arg0) {
        camera = Camera.open();
        try {
            camera.setDisplayOrientation(90);
            camera.setFaceDetectionListener(this);
            camera.setPreviewDisplay(previewHolder);
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void surfaceChanged(SurfaceHolder holder, …
Run Code Online (Sandbox Code Playgroud)

android glsurfaceview android-camera

8
推荐指数
2
解决办法
2万
查看次数

C++,OpenGL Z-buffer prepass

我正在制作一个简单的体素引擎(想想Minecraft),目前我正在摆脱被遮挡的面孔以获得一些宝贵的fps.我在OpenGL中没有经过很多实验,也不太了解glColorMask魔法是如何工作的.

这就是我所拥有的:

// new and shiny
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

// this one goes without saying
glEnable(GL_DEPTH_TEST);

// I want to see my code working, so fill the mask
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);

// fill the z-buffer, or whatever
glDepthFunc(GL_LESS);
glColorMask(0,0,0,0);
glDepthMask(GL_TRUE);

// do a first draw pass
world_display();

// now only show lines, so I can see the occluded lines do not display
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

// I guess the error is somewhere here
glDepthFunc(GL_LEQUAL);
glColorMask(1,1,1,1);
glDepthMask(GL_FALSE);

// do a second draw pass …
Run Code Online (Sandbox Code Playgroud)

c++ opengl occlusion-culling

6
推荐指数
3
解决办法
8221
查看次数

OpenGL体素引擎速度慢

我正在使用C++和OpenGL(àlaMinecraft)制作一个体素引擎,并且使用ATI X1600无法在我的3GHz上获得不错的fps ...我完全没有想法.

当我在屏幕上有大约12000个立方体时,它会降到20fps以下 - 可悲.

到目前为止,我的优化是:视锥体剔除,背面剔除(通过OpenGL的glEnable(GL_CULL_FACE)),引擎只绘制可见面(当然除了剔除面)并且它们在八叉树中.

我试过VBO,我不喜欢它们,它们不会显着增加fps.

Minecraft的引擎如何如此之快......我在10000立方体中挣扎,而Minecraft可以在更高的fps下轻松绘制.

有任何想法吗?

c++ opengl voxel

6
推荐指数
2
解决办法
9597
查看次数

Minecraft克隆的最佳盒子选择方法

我正在制作一个Minecraft克隆作为我的第一个OpenGL项目,我被困在盒子选择部分.选择可靠的盒子的最佳方法是什么?

我一直在研究一些AABB算法,但是没有一个能够很好地解释它们到底做了什么(尤其是超级调整的算法)并且我不想使用我不理解的东西.

由于世界是由立方体组成的,我使用八叉树来消除光线投射计算的一些压力,基本上我唯一需要的是这个函数:

float cube_intersect(Vector ray, Vector origin, Vector min, Vector max)
{
    //???
}
Run Code Online (Sandbox Code Playgroud)

光线和原点很容易获得

Vector ray, origin, point_far;
double mx, my, mz;

gluUnProject(viewport[2]/2, viewport[3]/2, 1.0, (double*)modelview, (double*)projection, viewport, &mx, &my, &mz);
point_far = Vector(mx, my, mz);
gluUnProject(viewport[2]/2, viewport[3]/2, 0.0, (double*)modelview, (double*)projection, viewport, &mx, &my, &mz);
origin = Vector(mx, my, mz);
ray = point_far-origin;
Run Code Online (Sandbox Code Playgroud)

min和max是立方体的对角.

考虑到我必须检查的立方体数量,即使是八叉树,我也不确定这是否是正确的方法.

我也试过gluProject,它有效,但非常不可靠,并没有给我选择的立方体面.


编辑

所以这就是我所做的:用光线计算太空中的位置:

float t = 0;
for(int i=0; i<10; i++)
{
    Vector p = ray*t+origin;
    while(visible octree)
    {
        if(p inside …
Run Code Online (Sandbox Code Playgroud)

c++ opengl picking

6
推荐指数
1
解决办法
3746
查看次数

Frustum平面微积分

我正在从头开始编写一个简单的JavaScript 3D引擎,使用Canvas和像原始文件一样的盒子(例如Minecraft).我正在实施尽可能多的优化,到目前为止,我已经背面剔除和隐藏面部遮挡,但我无法弄清楚如何做截头剔除最佳方式.

我已经尝试过2D剔除,但这有一个我无法解决的具体问题:如果一个4点平面的单个顶点出现在相机后面,它仍然被绘制但完全失真(我认为x和y坐标是相反的) - 看图像.

我开始认为如果不使用更复杂的数学和渲染序列,这还没有真正的解决方案.

起初一切都好

在此输入图像描述

我试图限制2D屏幕内的顶点x和y坐标,只要4个顶点中至少有一个仍在屏幕内(见下文),但这完全扭曲了方形面(虽然我想我可以去更多花哨的数学和其他三角形).

在此输入图像描述

我有一些OpenGL的经验,它完全不同的东西,所以这甚至不是一个问题.

我有没有机会在不拔头发的情况下修理它?


最终的解决方案是在进行2D投影然后进行屏幕剪裁之前,在3D中针对近剪裁平面测试8个顶点中的每一个.

这是第二个剪切步骤,第一个是使用半径的边界球来测试框是否完全位于剪切平面的后面sqrt(3/2)*boxSideLength.

额外的三角形(在这种情况下实际上是点)太复杂和数学密集,这个解决方案并不完美但非常漂亮.

3d clipping

6
推荐指数
1
解决办法
5273
查看次数

当URI太长时,Chrome会崩溃

我正在为我的HTML5游戏制作导出功能,我目前的保存方法是游戏数据的粗略序列化,然后:

// this is Javascript
var gameData = "abc"; // this is actually a HUGE string of over 2MB
try
{
    document.location = "data:text/octet-stream,"+encodeURIComponent(JSON.stringify(gameData));
}
catch(e)
{
    console.log(e);
}
Run Code Online (Sandbox Code Playgroud)

From:使用HTML5/Javascript生成并保存文件

我不介意我不能将它用于大字符串,但我希望它能生成警告,通知此方法不起作用,不幸的是Chrome(16)崩溃而没有捕获该异常.

有没有更好的方法来实现这种出口,对我来说重要的是让它在本地工作.FileAPI将是一个更好的解决方案,但不能在本地工作.

javascript html5

6
推荐指数
1
解决办法
2151
查看次数

Arduino串行数据解析

我正在编写一个应用程序,用我的Android手机通过蓝牙控制我的机器人,一切顺利,数据得到回应和验证,但我在协议上遇到了一些麻烦,特别是我希望机器人的轮子在发送时转动一个命令,如s,10,100s,-30,-10...(以百分比表示的值).

我的问题是,当我想在我的Arduino的解析我的车轮转速命令我必须解析最多4分开bytesint,例如s,-100,-100使我的机器人全速倒退,但我要如何解析这个,所以我可以打电话setSpeed(left, right);leftright平等到-100?

我知道我可以单独分析每个字节并将它们放在一起得到一个整数,但它不是很优雅,而且可能已经有了更好的解决方案,不幸的是我还没有找到它.

编辑

这是我用于解析命令的Arduino函数:

void parseCommand(char* command, int* returnValues)
{
  // parsing state machine
  byte i = 2, j = 0, sign = 0;
  int temp = 0;
  while(*(command + i) != '\0')
  {
    switch(*(command + i))
    {
      case ',':
        returnValues[j++] = sign?-temp:temp;
        sign = 0;
        temp = 0;
        break;
      case '-':
        sign = 1;
        break;
      default:
        temp = temp …
Run Code Online (Sandbox Code Playgroud)

arduino

5
推荐指数
1
解决办法
2万
查看次数

使用OpenCV检测灰色内容

我想使用OpenCV检测一个对象,它与场景中的其他元素明显不同,因为它是灰色的.这很好,因为我可以用R == G == B进行测试,并且它允许独立于亮度,但是逐像素地进行测试很慢.

有没有更快的方法来检测灰色的东西?也许有一个OpenCV方法可以进行R == G == B测试... cv2.inRange颜色阈值处理,它不是我想要的.

python opencv

5
推荐指数
1
解决办法
2002
查看次数

PHP/MySQL COUNT似乎不能正常工作

我为此拉了我的头发,这个查询出了什么问题:

  SELECT COUNT(id), * 
    FROM location 
   WHERE country = '$country' 
     AND LCASE(namenodiacritics) LIKE LCASE('%$locname%') 
ORDER BY name ASC
Run Code Online (Sandbox Code Playgroud)

我是否允许在单个查询中使用COUNT(id)和*?

我一直收到这个错误:

您的SQL语法有错误; 查看与您的MySQL服务器版本相对应的手册,以便在'*FROM位置附近使用正确的语法WHERE country ='AQ'和LCASE(namenodiacritics)LIKE LCASE('%%''在第1行

奇怪的是它适用于"SELECT COUNT(id)FROM ..."以及"SELECT*FROM ...".

mysql sql

4
推荐指数
1
解决办法
1025
查看次数

Haarcascade分类训练

我正在尝试使用我用相机拍摄的样本创建一个xml文件.这是一个测试运行,我把相机对着窗户,让它每隔30秒拍一张照片,然后经过一段时间.我现在有大约200张照片(仅用于小型测试),但我无法再进一步了.

我做了一个选择工具来挑选图片上的汽车(边界框),如果没有,则将图片标记为底片.以下是应用程序的两个示例:

在此输入图像描述 在此输入图像描述

然后,应用程序将标记的对象保存在positive.txt文件中,如下所示,跳过未标记的图片或标记为否定的图片:

/samples/img_0000.jpg 1 74 66 34 30
/samples/img_0001.jpg 2 78 69 31 25 218 129 61 38
/samples/img_0003.jpg 1 83 72 21 21
/samples/img_0005.jpg 1 76 65 19 17
/samples/img_0006.jpg 1 127 112 37 24
/samples/img_0007.jpg 2 83 72 22 21 127 112 36 22
...
Run Code Online (Sandbox Code Playgroud)

负片图片只是保存到negative.txt文件中,如下所示:

/samples/img_0002.jpg
/samples/img_0004.jpg
/samples/img_0024.jpg
/samples/img_0026.jpg
...
Run Code Online (Sandbox Code Playgroud)

最后我尝试运行haar训练算法/usr/bin/opencv_haartraining -data samples -vec positive.txt -bg negative.txt -npos 99 -nneg 20 -nstages 5 -mem 128 -minhitrate 0.999 -maxfalsealarm 0.5 -nonsym -mode …

opencv haar-classifier

2
推荐指数
1
解决办法
2079
查看次数