get more accurate timings using the internal clock
This commit is contained in:
parent
3775d3b9ac
commit
9690161207
@ -1,6 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:xiao_pet_tracker/app_router/app_router.dart';
|
||||
import 'package:xiao_pet_tracker/xiao_connector/cubit/xiao_connector_cubit.dart';
|
||||
|
||||
class CaptureView extends StatefulWidget {
|
||||
@ -81,7 +80,7 @@ class _CaptureViewState extends State<CaptureView> {
|
||||
const SizedBox(
|
||||
height: 12,
|
||||
),
|
||||
ElevatedButton(
|
||||
ElevatedButton.icon(
|
||||
onPressed: () {
|
||||
// context.read<XiaoConnectorCubit>().startCapturing(
|
||||
// captureType: 'test',
|
||||
@ -89,7 +88,8 @@ class _CaptureViewState extends State<CaptureView> {
|
||||
final timeToSend = DateTime.now().millisecondsSinceEpoch;
|
||||
context.read<XiaoConnectorCubit>().setTime(timeToSend);
|
||||
},
|
||||
child: const Text('Send new Timestamp'),
|
||||
icon: const Icon(Icons.watch_later_outlined),
|
||||
label: const Text('Sync Clocks'),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 12,
|
||||
|
@ -24,7 +24,8 @@ var (
|
||||
//temperatureSense = [16]byte{0x74, 0x65, 0x6D, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x6E, 0x73, 0x65}
|
||||
)
|
||||
|
||||
var unixTimeStamp time.Time = time.Now()
|
||||
var currentTimeStamp time.Time = time.Now()
|
||||
var lastTimeStamp time.Time = time.Now()
|
||||
|
||||
const sleepDuration time.Duration = time.Millisecond * 100
|
||||
|
||||
@ -85,7 +86,7 @@ func main() {
|
||||
return
|
||||
}
|
||||
millisFromEpoch := binary.BigEndian.Uint64(value)
|
||||
unixTimeStamp = time.Unix(0, int64(millisFromEpoch)*int64(time.Millisecond))
|
||||
currentTimeStamp = time.Unix(0, int64(millisFromEpoch)*int64(time.Millisecond))
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -128,19 +129,20 @@ func main() {
|
||||
x, y, z, _ := accel.ReadAcceleration()
|
||||
|
||||
arrRot := valuesToByteArray(X, Y, Z, int8(1))
|
||||
senseCharacteristic.Write(arrRot)
|
||||
|
||||
arrAcc := valuesToByteArray(x, y, z, int8(2))
|
||||
senseCharacteristic.Write(arrAcc)
|
||||
|
||||
arrTime := timeStampToByteArray(unixTimeStamp.UnixMilli(), int8(3))
|
||||
currentTimeStamp = currentTimeStamp.Add(time.Now().Sub(lastTimeStamp))
|
||||
arrTime := timeStampToByteArray(currentTimeStamp.UnixMilli(), int8(3))
|
||||
|
||||
senseCharacteristic.Write(arrRot)
|
||||
senseCharacteristic.Write(arrAcc)
|
||||
senseCharacteristic.Write(arrTime)
|
||||
}
|
||||
|
||||
time.Sleep(sleepDuration)
|
||||
if isCapturing {
|
||||
unixTimeStamp = unixTimeStamp.Add(sleepDuration)
|
||||
lastTimeStamp = time.Now()
|
||||
}
|
||||
time.Sleep(sleepDuration)
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user