24template <
typename TransportT>
27 explicit Session(TransportT& transport) noexcept : transport_(transport) {}
30 [[nodiscard]]
bool EnsureReady() noexcept {
return transport_.EnsureInitialized(); }
37 std::uint8_t* rx, std::size_t rx_cap,
38 std::size_t* rx_len_out,
39 std::uint32_t timeout_ms)
noexcept {
40 if (rx_len_out ==
nullptr) {
46 if (!transport_.EnsureInitialized()) {
49 return transport_.Transceive(tx, tx_len, rx, rx_cap, rx_len_out, timeout_ms);
55 TransportT&
Transport() noexcept {
return transport_; }
56 const TransportT&
Transport() const noexcept {
return transport_; }
59 TransportT& transport_;
Transport-facing session (no owned buffers).
Definition se050_session.hpp:25
bool EnsureReady() noexcept
Propagates to the transport’s EnsureInitialized().
Definition se050_session.hpp:30
const TransportT & Transport() const noexcept
Definition se050_session.hpp:56
Session(TransportT &transport) noexcept
Definition se050_session.hpp:27
Error PulseReset() noexcept
Optional GPIO / power-style reset routed through the transport.
Definition se050_session.hpp:53
TransportT & Transport() noexcept
Definition se050_session.hpp:55
Error TransceiveRaw(const std::uint8_t *tx, std::size_t tx_len, std::uint8_t *rx, std::size_t rx_cap, std::size_t *rx_len_out, std::uint32_t timeout_ms) noexcept
Raw transceive used for early bring-up (not a substitute for se050::T1Session).
Definition se050_session.hpp:36
Definition se050_apdu.hpp:15
Error
Definition se050_types.hpp:14
CRTP base for an I²C-backed SE050 link (split Write / Read + optional raw transceive).
Shared types, limits, and error codes for the HF-SE050 driver.