伙计们,我有一个问题:
我有一个使用蓝牙连接到外部设备的应用程序。我从此设备读取数据(例如Acceleration)并保存在数组中。这些数据是数据流,例如:36,-562,-839,36,-563,-839,35,-562,-841,36,-562,-842,36,-562,-843,36,-562,-843...
(这是console.log的结果)
我会做的是,为acc变量的每三个值添加变量时间(时间以秒为单位)。喜欢:
时间+加速度
因此结果应为:1 (sec) : 36,-562,-839,
10 (sec) : 36,-563,-839,
20 (sec) : 35,-562,-841,
30 (sec) : 36,-562,-842,..
这就是我所拥有的:47840 : -1,-565,-839,-1,-566,-839,0,-565,-839,...
47840是最后时间(当我按下停止按钮以读取数据时的时间)。其他数据是关于加速度的数据。
这是关于此部分的代码。
constructor(props) {
this.state = {
time: null,
acc: [],
array_acc_sx: []}}
async setupNotifications1(device) {
const time = parseInt(
Buffer.from(characteristic.value, "base64")
.readUInt16LE(0)
.toString(16),
16
);
const acc = [2, 4, 6].map(index => {
const hex = Buffer.from(characteristic.value, "base64")
.readInt16LE(index)
.toString(16);
return Number.parseInt(hex, 16);
});
const accUpdate_acc_sx = [...this.state.array_acc_sx, ...acc]
this.setState({ array_acc_sx: accUpdate_acc_sx})
}
stopConnection(time, array_acc_sx) {
return new Promise((resolve, reject) => {
console.log("Inizio stopConnection");
Actions.registerattivita({
time: this.state.time,
array_acc_sx: this.state.array_acc_sx,})
resolve("Connessione Interrotta");
reject("Connessione non interrotta.");
});
}
render() {
return (
<View>
<Text>Scarpa Sinistra: </Text>
<Text>{"Time:" + this.state.time}</Text>
<Text>{"Acc:" + this.state.acc.join(" ")}</Text>
</View>
<View>
<TouchableOpacity
style={[style.button, style.buttonOK]}
onPress={() =>
this.stopConnection(
this.state.time,
this.state.array_acc_sx
)
}
>
<Text style={style.buttonTesto}>Stop</Text>
</TouchableOpacity>
</View>
</View>
// ......
并在页面RegisterAttivita
dataReceived(time,array_acc_sx){
console.log("data acc_sx: " + this.props.time + this.props.array_acc_sx)
}
我能怎么做??谢谢
最佳答案
我已经解决了用这种方式做的事情:
const accUpdate_acc_sx = [...this.state.array_acc_sx, {time: this.state.time, acc: this.state.acc}]