lzw
2024-11-04 dd257d5d6ab766917c1fea03cf109b07797169c4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package com.yw.sdkdemo.imu;
 
import android.os.Bundle;
 
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
 
import com.yw.imu.YwImuManager;
import com.yw.sdkdemo.R;
 
 
/**
 * Created by xushuang on 2024/5/10
 * E-mail: mitgic92@gmail.com
 * Description:
 */
public class ImuActivity extends AppCompatActivity {
 
    private static final String TAG = ImuActivity.class.getSimpleName();
 
    private Button bt_register;
    private Button bt_unregister;
    private TextView tv_data;
 
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_imu);
 
        initView();
        initListener();
    }
 
    private void initView() {
        bt_register = findViewById(R.id.bt_register);
        bt_unregister = findViewById(R.id.bt_unregister);
        tv_data = findViewById(R.id.tv_data);
 
    }
 
    // 使用 StringBuilder 替代 String.format
    StringBuilder logMessage = new StringBuilder();
 
 
    private YwImuManager.SensorDataListener listener = new YwImuManager.SensorDataListener() {
        @Override
        public void onSensorData(float v, float v1, float v2, float v3, float v4, float v5) {
            logMessage.delete(0, logMessage.length());
            logMessage.append("accX=").append(v)
                    .append(" accY=").append(v1)
                    .append(" accZ=").append(v2)
                    .append(" gyroX=").append(v3)
                    .append(" gyroY=").append(v4)
                    .append(" gyroZ=").append(v5);
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    tv_data.setText(logMessage.toString());
                }
            });
        }
    };
 
 
    private void initListener() {
 
        bt_register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                YwImuManager.getInstance().register(listener);
            }
        });
 
 
        bt_unregister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                YwImuManager.getInstance().unregister(listener);
                tv_data.setText("");
            }
        });
    }
 
    @Override
    protected void onPause() {
        super.onPause();
        YwImuManager.getInstance().unregister(listener);
        tv_data.setText("");
    }
}