/* * PlatformValues.cpp * * Created on: 29 èþë. 2021 ã. * Author: titov */ #include "PlatformValues.hh" #include #include using namespace systemic; SignalImpl::SignalImpl( std::pair (* platform_info)( std::size_t info_id ), std::size_t info_id, std::size_t offset ) : platform_info(platform_info), id(info_id), offset(offset) {} SignalImpl::operator float() const { std::pair data = platform_info( id ); if( data.second < sizeof(float) + offset ) return NAN; std::memcpy( reinterpret_cast( &value ), data.first + offset, sizeof(float) ); return value; } StatusImpl::StatusImpl( std::pair (* platform_info)( std::size_t info_id ), std::size_t info_id, std::size_t offset ) : platform_info(platform_info), id(info_id), offset(offset) {} StatusImpl::operator bool() const { std::pair data = platform_info( id ); if( data.second < sizeof(bool) + offset ) return NAN; std::memcpy( reinterpret_cast( &value ), data.first + offset, sizeof(float) ); return value; }