Projects
domecam:swift
domecam
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 27
View file
domecam.changes
Changed
@@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Mon Nov 7 07:50:45 UTC 2022 - Matwey V. Kornilov <matwey@sai.msu.ru> + +- Version 0.1.12 + +------------------------------------------------------------------- Wed Oct 19 09:52:03 UTC 2022 - Matwey V. Kornilov <matwey@sai.msu.ru> - Version 0.1.11
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.11</param> + <param name="revision">0.1.12</param> </service> <service name="tar" mode="buildtime" /> <service name="recompress" mode="buildtime">
View file
domecam-0.1.11.obscpio/.hgtags -> domecam-0.1.12.obscpio/.hgtags
Changed
@@ -9,3 +9,4 @@ efa87880dd80510c7274207a1df55793364749f3 0.1.8 5bde06ef6c04b0a814e8bf9455fcccbda5b90cc8 0.1.9 8e899284f1aef2a9916b0b0c75e182256db68365 0.1.10 +93fde07957df3453d10555f403039c3b02e27df3 0.1.11
View file
domecam-0.1.11.obscpio/CMakeLists.txt -> domecam-0.1.12.obscpio/CMakeLists.txt
Changed
@@ -1,5 +1,5 @@ cmake_minimum_required (VERSION 3.5) -project(domecam LANGUAGES C CXX VERSION 0.1.11) +project(domecam LANGUAGES C CXX VERSION 0.1.12) set(CMAKE_CXX_STANDARD 17)
View file
domecam-0.1.11.obscpio/exe/carriage.cpp -> domecam-0.1.12.obscpio/exe/carriage.cpp
Changed
@@ -160,8 +160,16 @@ } int application::do_run(const boost::program_options::variables_map& va, abstract_carriage& c) { + const auto axis = (va.count(axis_opt) ? std::optional{va[axis_opt].as<std::uint16_t>()} : std::nullopt); + if (va.count(home_opt)) { - carriage_home_executor executor_(std::nullopt); + carriage_home_executor executor_(axis); + executor_.run(c); + } else if (va.count(run_opt)) { + carriage_run_executor executor_(axis, va[run_opt].as<std::int16_t>()); + executor_.run(c); + } else if (va.count(track_opt)) { + carriage_track_executor executor_(axis, carriage::direction::cw); executor_.run(c); } else if (va.count(mask_opt)) { carriage_mask_executor executor_(va[mask_opt].as<std::uint16_t>()); @@ -172,12 +180,6 @@ } else if (va.count(axis_opt)) { carriage_axis_executor executor_(va[axis_opt].as<std::uint16_t>()); executor_.run(c); - } else if (va.count(run_opt)) { - carriage_run_executor executor_(std::nullopt, va[run_opt].as<std::int16_t>()); - executor_.run(c); - } else if (va.count(track_opt)) { - carriage_track_executor executor_(std::nullopt, carriage::direction::cw); - executor_.run(c); } else if (va.count(speed_opt)) { carriage_speed_executor executor_(va[speed_opt].as<std::uint16_t>()); executor_.run(c);
View file
domecam-0.1.11.obscpio/include/buffer_view.h -> domecam-0.1.12.obscpio/include/buffer_view.h
Changed
@@ -14,6 +14,7 @@ template<class T, std::size_t Align> struct buffer_base { + static_assert(Align > 0, "Align must be positive"); static_assert(Align % alignof(T) == 0, "alignof(T) is not divisor of Align"); using value_type = T; @@ -24,11 +25,16 @@ using const_iterator = const_pointer; constexpr static const std::size_t align = Align; - constexpr static const std::size_t packet_size = align / sizeof(T); + constexpr static const std::size_t packet_size = (sizeof(T) > alignof(T) ? + (align > sizeof(T) ? align / sizeof(T) : 1) : + align / alignof(T)); struct packet { alignas(Align) value_type elem[packet_size]; }; + + static_assert(sizeof(packet) != 0, "sizeof(packet) is zero"); + static_assert(alignof(packet) == Align, "aligof(packet) is not Align"); }; template<std::size_t From, std::size_t To>
View file
domecam-0.1.11.obscpio/include/executor/edge.h -> domecam-0.1.12.obscpio/include/executor/edge.h
Changed
@@ -111,7 +111,7 @@ public scan_executor, public edge_executor_base { public: - edge_scan_executor(std::size_t frames_number, std::size_t samples, bool force_initial, float loss_factor); + edge_scan_executor(std::size_t frames_number, std::size_t samples, bool force_initial, float loss_factor, std::uint16_t axis); virtual executor_result run(camera& c) const override; };
View file
domecam-0.1.11.obscpio/include/executor/pupil.h -> domecam-0.1.12.obscpio/include/executor/pupil.h
Changed
@@ -158,7 +158,7 @@ public scan_executor, public pupil_executor_base { public: - pupil_scan_executor(std::size_t frames_number, std::size_t samples, bool force_initial); + pupil_scan_executor(std::size_t frames_number, std::size_t samples, bool force_initial, std::uint16_t axis); virtual executor_result run(camera& c) const override; };
View file
domecam-0.1.11.obscpio/include/executor/raw.h -> domecam-0.1.12.obscpio/include/executor/raw.h
Changed
@@ -62,7 +62,7 @@ public scan_executor, public raw_executor_base { public: - raw_scan_executor(const std::string& target_uri, std::size_t frames_number); + raw_scan_executor(const std::string& target_uri, std::size_t frames_number, std::uint16_t axis); virtual executor_result run(camera& c) const override; };
View file
domecam-0.1.11.obscpio/include/executorfwd.h -> domecam-0.1.12.obscpio/include/executorfwd.h
Changed
@@ -72,7 +72,9 @@ protected: class source_mixin; public: - explicit scan_executor(std::size_t frames_number); + scan_executor(std::size_t frames_number, std::uint16_t axis); +protected: + const std::uint16_t axis_; }; class scan_executor::source_mixin:
View file
domecam-0.1.11.obscpio/include/source.h -> domecam-0.1.12.obscpio/include/source.h
Changed
@@ -92,15 +92,15 @@ private: constexpr static std::uint16_t max_range_ = 31000; - scan_source_base(camera& c, std::chrono::microseconds timeout, std::size_t capture_buffers, std::uint16_t mask, std::uint16_t load_speed); - scan_source_base(camera& c, std::chrono::microseconds timeout, std::size_t capture_buffers, std::uint16_t mask); + scan_source_base(camera& c, std::chrono::microseconds timeout, std::size_t capture_buffers, std::uint16_t mask, std::uint16_t load_speed, std::uint16_t axis); + scan_source_base(camera& c, std::chrono::microseconds timeout, std::size_t capture_buffers, std::uint16_t mask, std::uint16_t axis); protected: carriage carriage_; const std::uint16_t mask_; const std::uint16_t load_speed_; const float spe_; public: - scan_source_base(camera& c, std::size_t size, std::chrono::microseconds timeout, std::size_t capture_buffers); + scan_source_base(camera& c, std::size_t size, std::chrono::microseconds timeout, std::size_t capture_buffers, std::uint16_t axis); virtual ~scan_source_base() override = default; std::uint16_t mask() const { return mask_; } @@ -148,8 +148,8 @@ using result_type = detail::scan_frame<T>; constexpr static const std::size_t align = result_type::align; - scan_source(camera& c, std::size_t size, std::chrono::microseconds timeout, std::size_t capture_buffers): - scan_source_base(c, size, timeout, capture_buffers) { + scan_source(camera& c, std::size_t size, std::chrono::microseconds timeout, std::size_t capture_buffers, std::uint16_t axis): + scan_source_base(c, size, timeout, capture_buffers, axis) { } template<class F>
View file
domecam-0.1.11.obscpio/src/executor/edge.cpp -> domecam-0.1.12.obscpio/src/executor/edge.cpp
Changed
@@ -89,8 +89,8 @@ } -edge_scan_executor::edge_scan_executor(std::size_t frames_number, std::size_t samples, bool force_initial, float loss_factor): - scan_executor(frames_number), +edge_scan_executor::edge_scan_executor(std::size_t frames_number, std::size_t samples, bool force_initial, float loss_factor, std::uint16_t axis): + scan_executor(frames_number, axis), edge_executor_base(samples, force_initial, loss_factor) {} executor_result edge_scan_executor::run(camera& c) const {
View file
domecam-0.1.11.obscpio/src/executor/pupil.cpp -> domecam-0.1.12.obscpio/src/executor/pupil.cpp
Changed
@@ -85,8 +85,8 @@ } -pupil_scan_executor::pupil_scan_executor(std::size_t frames_number, std::size_t samples, bool force_initial): - scan_executor(frames_number), +pupil_scan_executor::pupil_scan_executor(std::size_t frames_number, std::size_t samples, bool force_initial, std::uint16_t axis): + scan_executor(frames_number, axis), pupil_executor_base(samples, force_initial) {} executor_result pupil_scan_executor::run(camera& c) const {
View file
domecam-0.1.11.obscpio/src/executor/raw.cpp -> domecam-0.1.12.obscpio/src/executor/raw.cpp
Changed
@@ -24,8 +24,8 @@ } -raw_scan_executor::raw_scan_executor(const std::string& target_uri, std::size_t frames_number): - scan_executor(frames_number), +raw_scan_executor::raw_scan_executor(const std::string& target_uri, std::size_t frames_number, std::uint16_t axis): + scan_executor(frames_number, axis), raw_executor_base(target_uri) {} executor_result raw_scan_executor::run(camera& c) const {
View file
domecam-0.1.11.obscpio/src/executorfwd.cpp -> domecam-0.1.12.obscpio/src/executorfwd.cpp
Changed
@@ -65,10 +65,11 @@ scan_executor::source_mixin::source_mixin(const scan_executor& e, camera& c): - ::source_mixin<source_type>(c, e.frames_number_, std::chrono::seconds(5), 20) {} + ::source_mixin<source_type>(c, e.frames_number_, std::chrono::seconds(5), 20, e.axis_) {} -scan_executor::scan_executor(std::size_t frames_number): - camera_executor(frames_number) {} +scan_executor::scan_executor(std::size_t frames_number, std::uint16_t axis): + camera_executor(frames_number), + axis_{axis} {} replay_executor::mempool_mixin::mempool_mixin(std::size_t size):
View file
domecam-0.1.11.obscpio/src/io.cpp -> domecam-0.1.12.obscpio/src/io.cpp
Changed
@@ -26,6 +26,8 @@ const auto& obj = jv.as_object(); const auto& type = obj.at("type").as_string(); + const auto axis = load<std::uint16_t>(obj.if_contains("axis")).value_or(0); + if (type == "raw") { return std::unique_ptr<executor>{new raw_executor{ value_to<std::string>(obj.at("filename")), @@ -33,7 +35,7 @@ } else if (type == "raw_scan") { return std::unique_ptr<executor>{new raw_scan_executor{ value_to<std::string>(obj.at("filename")), - value_to<std::size_t>(obj.at("frames_number"))}}; + value_to<std::size_t>(obj.at("frames_number")), axis}}; } else if (type == "grad") { return std::unique_ptr<executor>{new grad_executor{ value_to<std::string>(obj.at("filename")), @@ -50,14 +52,14 @@ if (type == "pupil") { return std::unique_ptr<executor>{new pupil_executor{frames_number, samples_number, force_initial}}; } else if (type == "pupil_scan") { - return std::unique_ptr<executor>{new pupil_scan_executor{frames_number, samples_number, force_initial}}; + return std::unique_ptr<executor>{new pupil_scan_executor{frames_number, samples_number, force_initial, axis}}; } else if (type == "edge" || type == "edge_scan") { const auto loss_factor = value_to<float>(obj.at("loss_factor")); if (type == "edge") { return std::unique_ptr<executor>{new edge_executor{frames_number, samples_number, force_initial, loss_factor}}; } else if (type == "edge_scan") { - return std::unique_ptr<executor>{new edge_scan_executor{frames_number, samples_number, force_initial, loss_factor}}; + return std::unique_ptr<executor>{new edge_scan_executor{frames_number, samples_number, force_initial, loss_factor, axis}}; } } else if (type == "pupil_mask") { return std::unique_ptr<executor>{new pupil_mask_executor{
View file
domecam-0.1.11.obscpio/src/source.cpp -> domecam-0.1.12.obscpio/src/source.cpp
Changed
@@ -45,7 +45,7 @@ }; -scan_source_base::scan_source_base(camera& c, std::chrono::microseconds timeout, std::size_t capture_buffers, std::uint16_t mask, std::uint16_t load_speed): +scan_source_base::scan_source_base(camera& c, std::chrono::microseconds timeout, std::size_t capture_buffers, std::uint16_t mask, std::uint16_t load_speed, std::uint16_t axis): camera_source_base(c, max_range_ / mask / 2, std::max(timeout, std::chrono::duration_cast<decltype(timeout)>(std::chrono::seconds(load_speed) * mask) / (144 * 1600)), capture_buffers), carriage_(c), mask_(mask), @@ -56,21 +56,22 @@ camera_.trigger_overlap(true); carriage_.sync_mask(mask_); carriage_.speed(load_speed_); + carriage_.axis(axis); } -scan_source_base::scan_source_base(camera& c, std::chrono::microseconds timeout, std::size_t capture_buffers, std::uint16_t mask): +scan_source_base::scan_source_base(camera& c, std::chrono::microseconds timeout, std::size_t capture_buffers, std::uint16_t mask, std::uint16_t axis): scan_source_base(c, timeout, capture_buffers, mask, std::min(std::max({ std::chrono::seconds(72), /* the fastest speed limit, lower value => faster motion */ std::chrono::duration_cast<std::chrono::seconds>(c.exposure_time() * (144 * 1600) / std::min(3, 2*mask)), std::chrono::duration_cast<std::chrono::seconds>(std::chrono::duration<double>(1.0/std::get<1>(c.frame_rate_bounds()) * (144 * 1600) / (2*mask))) - }), std::chrono::seconds(std::numeric_limits<std::uint16_t>::max())).count()) { + }), std::chrono::seconds(std::numeric_limits<std::uint16_t>::max())).count(), axis) { } -scan_source_base::scan_source_base(camera& c, std::size_t size, std::chrono::microseconds timeout, std::size_t capture_buffers): +scan_source_base::scan_source_base(camera& c, std::size_t size, std::chrono::microseconds timeout, std::size_t capture_buffers, std::uint16_t axis): scan_source_base(c, timeout, capture_buffers, // maximal mask supported in firmware is 0x80 - max_mask<unsigned int>() >> __builtin_clz(clamp(max_range_ / size / 2, static_cast<std::size_t>(1), static_cast<std::size_t>(std::numeric_limits<std::uint8_t>::max())))) { + max_mask<unsigned int>() >> __builtin_clz(clamp(max_range_ / size / 2, static_cast<std::size_t>(1), static_cast<std::size_t>(std::numeric_limits<std::uint8_t>::max()))), axis) { assert(size > 0); }
View file
domecam.obsinfo
Changed
@@ -1,3 +1,3 @@ name: domecam -version: 0.1.11 -mtime: 1666173046 +version: 0.1.12 +mtime: 1667807318
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
.