8 #include <boost/variant.hpp>
10 #include "fisch/vx/container_cast.h"
11 #include "fisch/vx/container_ticket.h"
12 #include "fisch/vx/playback_program.h"
13 #include "haldls/cerealization.h"
14 #include "haldls/vx/common.h"
15 #include "haldls/vx/event.h"
16 #include "hate/type_list.h"
17 #include "hate/visibility.h"
18 #include "hxcomm/vx/target.h"
22 #if defined(__GENPYBIND__) or defined(__GENPYBIND_GENERATED__)
23 #include <pybind11/numpy.h>
24 #include <pybind11/stl_bind.h>
31 template <
typename,
typename,
template <
typename>
class>
33 template <
typename,
typename,
template <
typename>
class>
36 template <
typename BackendContainerTypeList>
39 template <
typename... BackendContainer>
42 typedef boost::variant<fisch::vx::ContainerTicket<decltype(
43 fisch::vx::container_cast(std::declval<BackendContainer>()))>...>
53 template <
typename Connection>
80 T
get() const SYMBOL_VISIBLE;
86 bool valid() const SYMBOL_VISIBLE;
100 GENPYBIND(getter_for(fpga_time))
104 typedef typename detail::to_ticket_variant<
105 typename haldls::vx::detail::BackendContainerTrait<T>::
container_list>::type
108 template <typename, typename, template <typename> class>
109 friend class detail::PlaybackProgramBuilderAdapterImpl;
112 m_coord(coord), m_ticket_impl(std::move(ticket_impl))
115 coordinate_type m_coord;
116 ticket_impl_type m_ticket_impl;
136 GENPYBIND(getter_for(spikes))
143 GENPYBIND(getter_for(madc_samples))
150 GENPYBIND(getter_for(highspeed_link_notifications))
157 GENPYBIND(getter_for(spikes_pack_counts))
164 GENPYBIND(getter_for(madc_samples_pack_counts))
171 GENPYBIND(getter_for(unsupported_targets))
172 std::unordered_set<hxcomm::vx::Target> const& get_unsupported_targets() const SYMBOL_VISIBLE;
174 GENPYBIND(stringstream)
195 PYBIND11_NUMPY_DTYPE(
196 haldls::vx::SpikeFromChip::SpikeFromChipDType, label, fpga_time, chip_time);
199 pybind11::bind_vector<stadls::vx::PlaybackProgram::spikes_type>(parent,
"spikes_type");
201 auto attr = parent.attr(
"spikes_type");
202 auto ism = parent->py::is_method(
attr);
208 typedef ::stadls::vx::PlaybackProgram::spikes_type
_values_type;
209 attr.attr(
"to_numpy") = parent->py::cpp_function(
211 pybind11::array_t<haldls::vx::SpikeFromChip::SpikeFromChipDType> ret(
212 {
static_cast<pybind11::ssize_t
>(
self.size())},
213 reinterpret_cast<haldls::vx::SpikeFromChip::SpikeFromChipDType const*
>(
229 PYBIND11_NUMPY_DTYPE(
230 haldls::vx::MADCSampleFromChip::MADCSampleFromChipDType, value, channel, fpga_time,
234 pybind11::bind_vector<stadls::vx::PlaybackProgram::madc_samples_type>(
235 parent,
"madc_samples_type");
237 typedef ::stadls::vx::PlaybackProgram::madc_samples_type _values_type;
238 auto attr = parent.attr(
"madc_samples_type");
239 auto ism = parent->py::is_method(
attr);
241 auto const to_numpy = [](_values_type
const&
self) {
242 pybind11::array_t<haldls::vx::MADCSampleFromChip::MADCSampleFromChipDType> ret(
243 {
static_cast<pybind11::ssize_t
>(
self.size())},
245 haldls::vx::MADCSampleFromChip::MADCSampleFromChipDType const*
>(
256 template <
typename Archive>
257 void serialize(Archive& ar, uint32_t);
259 template <
typename,
typename,
template <
typename>
class>
262 template <
typename,
typename,
template <
typename>
class>
265 template <
typename Connection>
268 friend ReinitStackEntry;
277 std::shared_ptr<fisch::vx::PlaybackProgram>
const& program_impl,
278 std::unordered_set<hxcomm::vx::Target> unsupported_targets) SYMBOL_VISIBLE;
280 std::shared_ptr<fisch::vx::PlaybackProgram> m_program_impl;
282 std::unordered_set<hxcomm::vx::Target> m_unsupported_targets;
287 #if defined(__GENPYBIND__) or defined(__GENPYBIND_GENERATED__)
Ticket for to-be-available container data corresponding to a read instruction.
T::coordinate_type coordinate_type
T get() const SYMBOL_VISIBLE
Get container data if available.
Sequential stream of executable instructions for the executor and result-container for event response...
std::vector< haldls::vx::HighspeedLinkNotification > highspeed_link_notifications_type
std::vector< haldls::vx::MADCSampleFromChip > madc_samples_type
fisch::vx::FPGATime fpga_time_type
fisch::vx::PlaybackProgram::madc_sample_pack_counts_type madc_sample_pack_counts_type
std::vector< haldls::vx::SpikeFromChip > spikes_type
::stadls::vx::PlaybackProgram::spikes_type _values_type
fisch::vx::PlaybackProgram::spike_pack_counts_type spike_pack_counts_type
PlaybackProgram() SYMBOL_VISIBLE
Default constructor.
Sequential PlaybackProgram builder.
#define GENPYBIND_TAG_STADLS_VX
class SYMBOL_VISIBLE stadls::vx::detail::PlaybackProgramBuilderAdapter empty() const
Get whether builder is empty, i.e.
struct stadls::vx::v2::DumperDone access
hate::type_list<#define PLAYBACK_CONTAINER(Name, Type) # 13 "/jenkins/jenlib_workspaces_f9/bld_nightly-haldls.YmxkX25pZ2h0bHktaGFsZGxzIzEzNzk.x/haldls/include/stadls/vx/v2/coordinate_to_container.h" 2#define LAST_PLAYBACK_CONTAINER(Name, Type) #define PLAYBACK_CONTAINER(Name, Type) # 16 "/jenkins/jenlib_workspaces_f9/bld_nightly-haldls.YmxkX25pZ2h0bHktaGFsZGxzIzEzNzk.x/haldls/include/stadls/vx/v2/coordinate_to_container.h" 2 > container_list
List of container types used to resolve a container type from a coordinate type.
RunTimeInfo run(Connection &, PlaybackProgram &)
Transfer and execute the given playback program and fetch results.
fisch::vx::RunTimeInfo RunTimeInfo
PlaybackProgramBuilderAdapter()
Construct builder.
boost::variant< fisch::vx::ContainerTicket< decltype(fisch::vx::container_cast(std::declval< BackendContainer >)))>... > type