0

我正在尝试找出Android中的编码,以使RC玩具车以 Android 作为控制器向左或向右移动。汽车本身连接到Arduino。我也不知道如何在Eclipse中进行 Android 编码,以使 Arduino 读取/识别 Android 设备上的按钮单击。到目前为止,这是我用于控制按钮的代码。

    // Connect to Bluetooth Module
    connect_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (connectStat) {
                // Attempt to disconnect from the device
                disconnect();
            }
            else{
                // Attempt to connect to the device
                connect();
            }
        }
    });

    // Toggle Headlights
    led_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (ledStat) {
                Arduino = (byte) (Arduino & 124);
                led_button.setText(R.string.ledON);
                ledStat = false;
            }
            else{
                Arduino = (byte) (Arduino | 128);
                led_button.setText(R.string.ledOFF);
                ledStat = true;
            }
            write(Arduino);
        }
    });

    // Drive forward
    forward_button.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if ((event.getAction() == MotionEvent.ACTION_DOWN) |
                (event.getAction() == MotionEvent.ACTION_MOVE)) {
                forward_button.setPressed(true);
                Arduino = (byte) (Arduino | 16);
                write(Arduino);
                return true;

            }
            else if (event.getAction() == MotionEvent.ACTION_UP) {
                forward_button.setPressed(false);
                Arduino = (byte) (Arduino & 236);
                write(Arduino);
                return true;
            }
            forward_button.setPressed(false);
            return false;
        }
    });

    // Back up
    reverse_button.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if ((event.getAction() == MotionEvent.ACTION_DOWN) |
                (event.getAction() == MotionEvent.ACTION_MOVE)) {
                reverse_button.setPressed(true);
                Arduino = (byte) (Arduino | 32);
                write(Arduino);
                return true;
            }
            else if (event.getAction() == MotionEvent.ACTION_UP) {
                reverse_button.setPressed(false);
                Arduino = (byte) (Arduino & 220);
                write(Arduino);
                return true;
            }
            reverse_button.setPressed(false);
            return false;
        }
    });
}

左右函数我什么都没有,请问,这个中的“Arduino | 32”Arduino = (byte) (Arduino | 32);是什么意思?32是干什么用的?

4

1 回答 1

0

该符号Arduino | 32表示Arduino按位或32再次表示在 Arduino byte 中设置第 6 位,例如:

Arduino      = 10001010
32           = 00010000

Arduino | 32 = 10011010

同样&按位和

于 2013-01-03T07:44:28.463 回答