Projects
domecam:swift
domecam
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 30
View file
domecam.changes
Changed
@@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Tue Oct 24 15:07:28 UTC 2023 - Matwey V. Kornilov <matwey@sai.msu.ru> + +- Version 0.1.16 + +------------------------------------------------------------------- Fri Oct 6 13:21:23 UTC 2023 - Matwey V. Kornilov <matwey@sai.msu.ru> - Version 0.1.15
View file
_service
Changed
@@ -3,7 +3,7 @@ <param name="url">http://curl.sai.msu.ru/hg/home/matwey/domecam/</param> <param name="scm">hg</param> <param name="versionformat">{latesttag}</param> - <param name="revision">0.1.15</param> + <param name="revision">0.1.16</param> </service> <service name="tar" mode="buildtime" /> <service name="recompress" mode="buildtime">
View file
domecam-0.1.15.obscpio/.hgtags -> domecam-0.1.16.obscpio/.hgtags
Changed
@@ -13,3 +13,4 @@ f6f2cf7fc69c4b8853498a5242763da583ee9ca9 0.1.12 5dcf5bbc11e401e323d3faa68458878bfc6052b9 0.1.13 8655a50fea3e634a2b099c77882009e08fd22ca1 0.1.14 +4ca4898b0732dc93583b391358c621c74fd575bf 0.1.15
View file
domecam-0.1.15.obscpio/CMakeLists.txt -> domecam-0.1.16.obscpio/CMakeLists.txt
Changed
@@ -1,5 +1,5 @@ cmake_minimum_required (VERSION 3.5) -project(domecam LANGUAGES C CXX VERSION 0.1.15) +project(domecam LANGUAGES C CXX VERSION 0.1.16) option(BUILD_DOMECAMD "build domecamd" ON) option(BUILD_DOMECAM_PROC "build domecam-proc" ON)
View file
domecam-0.1.15.obscpio/include/executor/fits_sink_mixin.h -> domecam-0.1.16.obscpio/include/executor/fits_sink_mixin.h
Changed
@@ -12,9 +12,9 @@ #include <curl.h> #include <fits.h> +#include <mjd_clock.h> #include <source.h> - class fits_sink_mixin { private: const std::string target_uri_; @@ -123,6 +123,11 @@ f.update_key("FRATE", s.frame_rate()); f.update_key("XBINNING", std::get<0>(s.binning())); f.update_key("YBINNING", std::get<1>(s.binning())); + + const double now_mjd{mjd_clock::now().time_since_epoch().count()}; + for (const auto mjd_key: {"MJD-OBS", "MJD-BEG"}) { + f.update_key(mjd_key, now_mjd); + } } template<class T, std::size_t Align> @@ -139,6 +144,15 @@ template<class T, std::size_t Align> fits_sink_mixin::runner_mixin<T, Align>::runner_mixin(const fits_sink_mixin& e, std::size_t width, std::size_t height, std::size_t depth, const fits_source_base& source): runner_mixin(e, width, height, depth, source.xoffset(), source.yoffset()) { + + /* Key updating after image creation */ + auto& f = get_fits(); + const auto& src_fits = source.get_fits(); + for (const auto mjd_key: {"MJD-OBS", "MJD-BEG"}) { + if (const auto mjd = src_fits.template read_key_optional<double>(mjd_key); mjd) { + f.update_key(mjd_key, *mjd); + } + } } template<class T, std::size_t Align>
View file
domecam-0.1.16.obscpio/include/mjd_clock.h
Added
@@ -0,0 +1,57 @@ +/* + * SPDX-License-Identifier: GPL-3.0-or-later + * + * Copyright (C) 2017-2023 Matwey V. Kornilov <matwey.kornilov@gmail.com> + */ + +#ifndef _MJD_CLOCK_H +#define _MJD_CLOCK_H + +#include <chrono> +#include <ratio> +#include <type_traits> + + +struct mjd_clock { + using rep = double; + using period = std::ratio<86400>; + using duration = std::chrono::duration<rep, period>; + using time_point = std::chrono::time_point<mjd_clock>; + + static constexpr bool is_steady = std::chrono::system_clock::is_steady; + static constexpr std::chrono::duration<unsigned int, period> offset{40587u}; + + template<class Duration> + static constexpr auto + from_sys(const std::chrono::time_point<std::chrono::system_clock, Duration>& t) noexcept; + + template<class Duration> + static constexpr auto + to_sys(const std::chrono::time_point<mjd_clock, Duration>& t) noexcept; + + static time_point now() noexcept(noexcept(std::chrono::system_clock::now())); +}; + +template<class Duration> +constexpr auto +mjd_clock::from_sys(const std::chrono::time_point<std::chrono::system_clock, Duration>& t) noexcept { + const auto time_since_epoch = t.time_since_epoch() + offset; + + return std::chrono::time_point< + mjd_clock, + std::decay_t<decltype(time_since_epoch)> + >{time_since_epoch}; +} + +template<class Duration> +constexpr auto +mjd_clock::to_sys(const std::chrono::time_point<mjd_clock, Duration>& t) noexcept { + const auto time_since_epoch = t.time_since_epoch() - offset; + + return std::chrono::time_point< + std::chrono::system_clock, + std::decay_t<decltype(time_since_epoch)> + >{time_since_epoch}; +} + +#endif // _MJD_CLOCK_H
View file
domecam-0.1.15.obscpio/include/source.h -> domecam-0.1.16.obscpio/include/source.h
Changed
@@ -200,6 +200,8 @@ std::size_t xoffset() const { return xoffset_; } std::size_t yoffset() const { return yoffset_; } + + const auto& get_fits() const { return image_.get_fits(); } }; template<class T, std::size_t Align, class Allocator>
View file
domecam-0.1.16.obscpio/src/mjd_clock.cpp
Added
@@ -0,0 +1,15 @@ +/* + * SPDX-License-Identifier: GPL-3.0-or-later + * + * Copyright (C) 2017-2023 Matwey V. Kornilov <matwey.kornilov@gmail.com> + */ + +#include <mjd_clock.h> + + +constexpr bool mjd_clock::is_steady; +constexpr std::chrono::duration<unsigned int, std::ratio<86400>> mjd_clock::offset; + +mjd_clock::time_point mjd_clock::now() noexcept(noexcept(std::chrono::system_clock::now())) { + return std::chrono::time_point_cast<duration>(mjd_clock::from_sys(std::chrono::system_clock::now())); +}
View file
domecam.obsinfo
Changed
@@ -1,3 +1,3 @@ name: domecam -version: 0.1.15 -mtime: 1696598209 +version: 0.1.16 +mtime: 1698159956
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.