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 | 32Arduinoビット単位を意味するか、Arduino バイトにビット 6 を設定32することを意味します。たとえば、次のようになります。

Arduino      = 10001010
32           = 00010000

Arduino | 32 = 10011010

同様に&ビット単位の とです。

于 2013-01-03T07:44:28.463 に答える