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/material.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.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';
|
import 'package:xiao_pet_tracker/xiao_connector/cubit/xiao_connector_cubit.dart';
|
||||||
|
|
||||||
class CaptureView extends StatefulWidget {
|
class CaptureView extends StatefulWidget {
|
||||||
@ -81,7 +80,7 @@ class _CaptureViewState extends State<CaptureView> {
|
|||||||
const SizedBox(
|
const SizedBox(
|
||||||
height: 12,
|
height: 12,
|
||||||
),
|
),
|
||||||
ElevatedButton(
|
ElevatedButton.icon(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
// context.read<XiaoConnectorCubit>().startCapturing(
|
// context.read<XiaoConnectorCubit>().startCapturing(
|
||||||
// captureType: 'test',
|
// captureType: 'test',
|
||||||
@ -89,7 +88,8 @@ class _CaptureViewState extends State<CaptureView> {
|
|||||||
final timeToSend = DateTime.now().millisecondsSinceEpoch;
|
final timeToSend = DateTime.now().millisecondsSinceEpoch;
|
||||||
context.read<XiaoConnectorCubit>().setTime(timeToSend);
|
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(
|
const SizedBox(
|
||||||
height: 12,
|
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}
|
//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
|
const sleepDuration time.Duration = time.Millisecond * 100
|
||||||
|
|
||||||
@ -85,7 +86,7 @@ func main() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
millisFromEpoch := binary.BigEndian.Uint64(value)
|
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()
|
x, y, z, _ := accel.ReadAcceleration()
|
||||||
|
|
||||||
arrRot := valuesToByteArray(X, Y, Z, int8(1))
|
arrRot := valuesToByteArray(X, Y, Z, int8(1))
|
||||||
senseCharacteristic.Write(arrRot)
|
|
||||||
|
|
||||||
arrAcc := valuesToByteArray(x, y, z, int8(2))
|
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)
|
senseCharacteristic.Write(arrTime)
|
||||||
}
|
}
|
||||||
|
|
||||||
time.Sleep(sleepDuration)
|
|
||||||
if isCapturing {
|
if isCapturing {
|
||||||
unixTimeStamp = unixTimeStamp.Add(sleepDuration)
|
lastTimeStamp = time.Now()
|
||||||
}
|
}
|
||||||
|
time.Sleep(sleepDuration)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user