add PID-related items in mount config
rewrite AsibFM700ServoController methods according to new time point representation in LibSidServo
This commit is contained in:
@@ -119,7 +119,14 @@ AsibFM700ServoController::error_t AsibFM700ServoController::hardwareSetState(har
|
||||
|
||||
// time point from sidservo library is 'double' number represented UNIXTIME with
|
||||
// microseconds/nanoseconds precision
|
||||
double tp = std::chrono::duration<double>(state.time_point.time_since_epoch()).count();
|
||||
// double tp = std::chrono::duration<double>(state.time_point.time_since_epoch()).count();
|
||||
|
||||
|
||||
// 2025-12-04: coordval_pair_t.X.t is now of type struct timespec
|
||||
auto ns = std::chrono::duration_cast<std::chrono::nanoseconds>(state.time_point.time_since_epoch());
|
||||
auto secs = std::chrono::floor<std::chrono::seconds>(ns);
|
||||
ns -= secs;
|
||||
std::timespec tp{.tv_sec = secs.count(), .tv_nsec = ns.count()};
|
||||
|
||||
// according to"SiTech protocol notes" X is DEC-axis and Y is HA-axis
|
||||
coordval_pair_t cvalpair{.X{.val = state.Y, .t = tp}, .Y{.val = state.X, .t = tp}};
|
||||
@@ -151,10 +158,16 @@ AsibFM700ServoController::error_t AsibFM700ServoController::hardwareGetState(har
|
||||
// time point from sidservo library is 'double' number represented UNIXTIME with
|
||||
// microseconds/nanoseconds precision (must be equal for encXposition and encYposition)
|
||||
|
||||
using secs_t = std::chrono::duration<double>;
|
||||
// using secs_t = std::chrono::duration<double>;
|
||||
|
||||
// secs_t secs = secs_t{mdata.encXposition.t};
|
||||
// state->time_point = tp_t{std::chrono::duration_cast<tp_t::duration>(secs)};
|
||||
|
||||
// 2025-12-04: coordval_pair_t.X.t is now of type struct timespec
|
||||
auto dr = std::chrono::duration_cast<decltype(state->time_point)::duration>(
|
||||
std::chrono::seconds(mdata.encXposition.t.tv_sec) + std::chrono::nanoseconds(mdata.encXposition.t.tv_nsec));
|
||||
state->time_point = decltype(state->time_point){dr};
|
||||
|
||||
secs_t secs = secs_t{mdata.encXposition.t};
|
||||
state->time_point = tp_t{std::chrono::duration_cast<tp_t::duration>(secs)};
|
||||
|
||||
// if (mcc::utils::isEqual(secs.count(), 0.0)) { // model mode?
|
||||
// state->time_point = decltype(state->time_point)::clock::now();
|
||||
|
||||
Reference in New Issue
Block a user