当前位置: 首页 > 知识库问答 >
问题:

试图找出何时CH34xAndroidDriver.isConnection()成为true

万俟均
2023-03-14

我试图找到CH34xAndroidDriver的时间和地点。isConnected()值变为true。我试着在祝酒词中发现并展示它的价值。有人能解释清楚吗。

public class UartLoopBackActivity extends Activity {
public static final String TAG = "com.wch.wchusbdriver";
private static final String ACTION_USB_PERMISSION = "com.wch.wchusbdriver.USB_PERMISSION";
/* thread to read the data */
public readThread handlerThread;
protected final Object ThreadLock = new Object();
/* declare UART interface variable */
public CH34xAndroidDriver uartInterface;

// byte timeout; // time out
public Context global_context;
public boolean isConfiged = false;
public boolean READ_ENABLE = false;
public SharedPreferences sharePrefSettings;
Drawable originalDrawable;
public String act_string;

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

    /* create editable text objects */
    readText = (EditText) findViewById(R.id.ReadValues);
    // writeText = (EditText) findViewById(R.id.WriteValues);

    global_context = this;

    configButton = (Button) findViewById(R.id.configButton);
    originalDrawable = configButton.getBackground();
    readBuffer = new char[512];
    baudRate = 9600;
    stopBit = 1;
    dataBit = 8;
    parity = 0;
    flowControl = 0;
    configButton.setOnClickListener(new OpenDeviceListener());
    // writeButton.setOnClickListener(new OnClickedWriteButton());

    // writeButton.setEnabled(false);
    //

    uartInterface = new CH34xAndroidDriver(
            (UsbManager) getSystemService(Context.USB_SERVICE), this,
            ACTION_USB_PERMISSION);
    act_string = getIntent().getAction();
    if (-1 != act_string.indexOf("android.intent.action.MAIN")) {

        Log.d(TAG, "android.intent.action.MAIN");
    } else if (-1 != act_string
            .indexOf("android.hardware.usb.action.USB_DEVICE_ATTACHED")) {
        Log.d(TAG, "android.hardware.usb.action.USB_DEVICE_ATTACHED");
    }

    if (!uartInterface.UsbFeatureSupported()) {
        Toast.makeText(this, "No Support USB host API", Toast.LENGTH_SHORT)
                .show();
        readText.setText("No Support USB host API");
        uartInterface = null;
        Toast.makeText(global_context,
                "148k" + ((Boolean) uartInterface.isConnected()),
                Toast.LENGTH_SHORT).show();
    }

    getWindow().setSoftInputMode(
            WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

    if (READ_ENABLE == false) {
        READ_ENABLE = true;

        handlerThread = new readThread(handler);
        handlerThread.start();
        Toast.makeText(global_context,"155k" + ((Boolean) uartInterface.isConnected()),Toast.LENGTH_SHORT).show();
    }

}

public class OpenDeviceListener implements View.OnClickListener {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        boolean flags;
        Toast.makeText(global_context,"170" + ((Boolean) uartInterface.isConnected()),Toast.LENGTH_SHORT).show();
        Log.d("onClick", "12");
        if (false == isConfiged) {
            Log.d("onClick", "58");
            isConfiged = true;
            Log.d("onClick", "98");
            // writeButton.setEnabled(true);
            if (uartInterface.isConnected()) {
                Log.d("onClick", "100");
                flags = uartInterface.UartInit();
                if (!flags) {
                    Log.d(TAG, "Init Uart Error");
                    Toast.makeText(global_context, "Init Uart Error",
                            Toast.LENGTH_SHORT).show();
                } else {
                    if (uartInterface.SetConfig(baudRate, dataBit, stopBit,
                            parity, flowControl)) {
                        Log.d(TAG, "Configed");
                    }
                }
            }

            if (isConfiged == true) {
                Toast.makeText(global_context,"193" + ((Boolean) uartInterface.isConnected()),Toast.LENGTH_SHORT).show();
                Log.d("onClick", "200");
                configButton.setEnabled(false);
            }
        }

    }

}


public void onHomePressed() {
    onBackPressed();
}

public void onBackPressed() {
    super.onBackPressed();
}

protected void onResume() {
    super.onResume();
    if (2 == uartInterface.ResumeUsbList()) {
        uartInterface.CloseDevice();
        Log.d(TAG, "Enter onResume Error");
    }
}

protected void onPause() {
    super.onPause();
}

protected void onStop() {
    if (READ_ENABLE == true) {
        READ_ENABLE = false;
    }
    super.onStop();
}

protected void onDestroy() {
    if (uartInterface != null) {
        if (uartInterface.isConnected()) {
            uartInterface.CloseDevice();
        }
        uartInterface = null;
    }

    super.onDestroy();
}

final Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {

        if (actualNumBytes != 0x00) {
            readText.append(String.copyValueOf(readBuffer, 0,
                    actualNumBytes));
            Toast.makeText(global_context,"269k" + ((Boolean) uartInterface.isConnected()),Toast.LENGTH_SHORT).show();
            actualNumBytes = 0;
        }

    }
};

/* usb input data handler */
private class readThread extends Thread {
    Handler mHandler;

    /* constructor */
    Handler mhandler;

    readThread(Handler h) {
        mhandler = h;
        this.setPriority(Thread.MIN_PRIORITY);
    }

    public void run() {
        while (READ_ENABLE) {
            Message msg = mhandler.obtainMessage();
            try {
                Thread.sleep(50);
            } catch (InterruptedException e) {
            }
            // Log.d(TAG, "Thread");
            synchronized (ThreadLock) {
                if (uartInterface != null) {
                    actualNumBytes = uartInterface.ReadData(readBuffer, 64);

                    if (actualNumBytes > 0) {
                        mhandler.sendMessage(msg);
                    }
                }
            }
        }
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.uart_loop_back, menu);
    return true;
}
}

直到第74行(Toast.makeText(global\u context,“155k”((Boolean)uartInterface.isConnected()),Toast.LENGTH\u SHORT)。show();)我发现它返回false,但当调用onClick()时,它返回true。为什么如果有人有答案,请检查一下。谢谢

共有1个答案

于鸿博
2023-03-14

方法ResumeUsbList()启用usb连接,并将isConnected()更改为true。如果ResumeUsbList()失败,则返回2

检查活动的onResume()

 类似资料:
  • 问题指出该方法(公共静态int Sum(int[]输入)应该采用一个int数组,并对输入数据X执行以下数学运算。 这是我的代码,我需要知道我的问题是否正确。

  • 问题内容: 我已经使用selenium来启动下载。下载完成后,需要采取某些措施,是否有任何简单的方法可以确定下载何时完成?(我正在使用FireFox驱动程序) 问题答案: 硒没有内置的方式等待下载完成。 这里的一般想法是 等待文件出现在“下载”目录中 。

  • 问题内容: 我已经使用硒来启动下载。下载完成后,需要采取某些措施,是否有任何简单的方法可以确定下载何时完成?(我正在使用FireFox驱动程序) 问题答案: 硒没有内置的方式来等待下载完成。 这里的一般想法是 等待文件出现在“下载”目录中 。

  • 我第一次尝试用ApacheCXF和SpringBoot开发一个soap jax ws web服务;我对这些技术的使用非常陌生。为此,我创建了一个web应用程序类型的maven项目,旨在实现我的web层服务(知道dao层和专业将通过一个实际上是带有spring boot的project maven java应用程序的程序调用)。所有这些都耦合在一个企业应用程序中。 然后我在web项目中构建了apac

  • 我正在阅读(无界),正如我所理解的DP中的经典。 虽然我认为我在阅读时理解了解决方案,但我不清楚如何将其翻译为实际代码。 例如在以下递归“公式”中: <代码>M(j)=MAX{M(j-1), MAX i=1 to n(M(j-Si)Vi)}for j 我不确定如何将其翻译成代码,因为我不清楚内部应该在那里还是应该在那里:

  • 我试图从使用FileAppender切换到使用log4j2的RollingFileAppender(在beta3和beta4 jar中都会发生)。 看起来好像正在读取配置文件,并且appender正在试图创建,但不确定我做错了什么。 我尝试过剪切和粘贴其他人的RollingFileAppender配置,但我仍然得到上面的错误。 谢了。