Firmware  0.4.1
Loading...
Searching...
No Matches
mw::roco::z21::Service Class Reference

#include <service.hpp>

Inheritance diagram for mw::roco::z21::Service:
Collaboration diagram for mw::roco::z21::Service:

Public Member Functions

 Service ()
 
void dcc (std::shared_ptr< z21::server::intf::Dcc > dcc_service)
 
esp_err_t socket (intf::http::Message &msg)
 

Private Member Functions

void taskFunction (void *)
 
void transmit (z21::Socket const &sock, std::span< uint8_t const > datasets) final
 
bool trackPower (bool on) final
 
bool stop () final
 
int32_t serialNumber () const final
 
void logoff (z21::Socket const &sock) final
 
z21::SystemState & systemState () final
 
z21::LocoInfo locoInfo (uint16_t loco_addr) final
 
void locoFunction (uint16_t loco_addr, uint32_t mask, uint32_t state) final
 
void locoDrive (uint16_t loco_addr, z21::LocoInfo::SpeedSteps speed_steps, uint8_t rvvvvvvv) final
 
z21::LocoInfo::Mode locoMode (uint16_t loco_addr) final
 
void locoMode (uint16_t loco_addr, z21::LocoInfo::Mode mode) final
 
z21::TurnoutInfo turnoutInfo (uint16_t accy_addr) final
 
z21::AccessoryInfo accessoryInfo (uint16_t accy_addr) final
 
void turnout (uint16_t accy_addr, bool p, bool a, bool q) final
 
void accessory (uint16_t accy_addr, uint8_t dddddddd) final
 
z21::TurnoutInfo::Mode turnoutMode (uint16_t accy_addr) final
 
void turnoutMode (uint16_t accy_addr, z21::TurnoutInfo::Mode mode) final
 
bool cvRead (uint16_t cv_addr) final
 
bool cvWrite (uint16_t cv_addr, uint8_t byte) final
 
void cvPomRead (uint16_t loco_addr, uint16_t cv_addr) final
 
void cvPomWrite (uint16_t loco_addr, uint16_t cv_addr, uint8_t byte) final
 
void cvPomAccessoryRead (uint16_t accy_addr, uint16_t cv_addr) final
 
void cvPomAccessoryWrite (uint16_t accy_addr, uint16_t cv_addr, uint8_t byte) final
 
z21::RailComData railComData (uint16_t loco_addr) final
 
z21::CommonSettings commonSettings () final
 
void commonSettings (z21::CommonSettings const &common_settings) final
 
z21::MmDccSettings mmDccSettings () final
 
void mmDccSettings (z21::MmDccSettings const &mm_dcc_settings) final
 
bool trackPower (bool on, State dcc_state)
 

Private Attributes

std::shared_ptr< z21::server::intf::Dcc > _dcc_service
 
std::set< int > _ws_sock_fds
 
std::mutex _internal_mutex
 

Constructor & Destructor Documentation

◆ Service()

mw::roco::z21::Service::Service ( )
Todo
document

Member Function Documentation

◆ accessory()

void mw::roco::z21::Service::accessory ( uint16_t accy_addr,
uint8_t dddddddd )
finalprivate
Todo
document

◆ accessoryInfo()

z21::AccessoryInfo mw::roco::z21::Service::accessoryInfo ( uint16_t accy_addr)
nodiscardfinalprivate
Todo
document

◆ commonSettings() [1/2]

z21::CommonSettings mw::roco::z21::Service::commonSettings ( )
nodiscardfinalprivate
Todo
document

◆ commonSettings() [2/2]

void mw::roco::z21::Service::commonSettings ( z21::CommonSettings const & common_settings)
finalprivate
Todo
document

◆ cvPomAccessoryRead()

void mw::roco::z21::Service::cvPomAccessoryRead ( uint16_t accy_addr,
uint16_t cv_addr )
finalprivate
Todo
document

◆ cvPomAccessoryWrite()

void mw::roco::z21::Service::cvPomAccessoryWrite ( uint16_t accy_addr,
uint16_t cv_addr,
uint8_t byte )
finalprivate
Todo
document

◆ cvPomRead()

void mw::roco::z21::Service::cvPomRead ( uint16_t loco_addr,
uint16_t cv_addr )
finalprivate
Todo
document

◆ cvPomWrite()

void mw::roco::z21::Service::cvPomWrite ( uint16_t loco_addr,
uint16_t cv_addr,
uint8_t byte )
finalprivate
Todo
document

◆ cvRead()

bool mw::roco::z21::Service::cvRead ( uint16_t cv_addr)
nodiscardfinalprivate
Todo
document

◆ cvWrite()

bool mw::roco::z21::Service::cvWrite ( uint16_t cv_addr,
uint8_t byte )
nodiscardfinalprivate
Todo
document

◆ dcc()

void mw::roco::z21::Service::dcc ( std::shared_ptr< z21::server::intf::Dcc > dcc_service)
Todo
document

◆ locoDrive()

void mw::roco::z21::Service::locoDrive ( uint16_t loco_addr,
z21::LocoInfo::SpeedSteps speed_steps,
uint8_t rvvvvvvv )
finalprivate
Todo
document

◆ locoFunction()

void mw::roco::z21::Service::locoFunction ( uint16_t loco_addr,
uint32_t mask,
uint32_t state )
finalprivate
Todo
document

◆ locoInfo()

z21::LocoInfo mw::roco::z21::Service::locoInfo ( uint16_t loco_addr)
finalprivate
Todo
document

◆ locoMode() [1/2]

z21::LocoInfo::Mode mw::roco::z21::Service::locoMode ( uint16_t loco_addr)
finalprivate
Todo
document

◆ locoMode() [2/2]

void mw::roco::z21::Service::locoMode ( uint16_t loco_addr,
z21::LocoInfo::Mode mode )
finalprivate
Todo
document

◆ logoff()

void mw::roco::z21::Service::logoff ( z21::Socket const & sock)
finalprivate
Todo
document
Todo
should this broadcast stop? if there are no more clients?

◆ mmDccSettings() [1/2]

z21::MmDccSettings mw::roco::z21::Service::mmDccSettings ( )
nodiscardfinalprivate
Todo
document

◆ mmDccSettings() [2/2]

void mw::roco::z21::Service::mmDccSettings ( z21::MmDccSettings const & mm_dcc_settings)
finalprivate
Todo
document

◆ railComData()

z21::RailComData mw::roco::z21::Service::railComData ( uint16_t loco_addr)
nodiscardfinalprivate
Todo
document

◆ serialNumber()

int32_t mw::roco::z21::Service::serialNumber ( ) const
nodiscardfinalprivate
Todo
document

◆ socket()

esp_err_t mw::roco::z21::Service::socket ( intf::http::Message & msg)
Todo
document
Bug
if the socket closes for any reason we're fucked, there must be some way to detect such cases and restart the socket in the Frontend?
Todo
implicit power off here if there are no more clients registered?

◆ stop()

bool mw::roco::z21::Service::stop ( )
nodiscardfinalprivate
Todo
document

◆ systemState()

z21::SystemState & mw::roco::z21::Service::systemState ( )
nodiscardfinalprivate
Todo
document

◆ taskFunction()

void mw::roco::z21::Service::taskFunction ( void * )
private
Todo
document

◆ trackPower() [1/2]

bool mw::roco::z21::Service::trackPower ( bool on)
nodiscardfinalprivate
Todo
document

◆ trackPower() [2/2]

bool mw::roco::z21::Service::trackPower ( bool on,
State dcc_state )
private
Todo
document
Todo
does... never... happen? Z21 app NEVER turn power off -.-

◆ transmit()

void mw::roco::z21::Service::transmit ( z21::Socket const & sock,
std::span< uint8_t const > datasets )
finalprivate
Todo
document

◆ turnout()

void mw::roco::z21::Service::turnout ( uint16_t accy_addr,
bool p,
bool a,
bool q )
finalprivate
Todo
document

◆ turnoutInfo()

z21::TurnoutInfo mw::roco::z21::Service::turnoutInfo ( uint16_t accy_addr)
nodiscardfinalprivate
Todo
document

◆ turnoutMode() [1/2]

z21::TurnoutInfo::Mode mw::roco::z21::Service::turnoutMode ( uint16_t accy_addr)
nodiscardfinalprivate
Todo
document

◆ turnoutMode() [2/2]

void mw::roco::z21::Service::turnoutMode ( uint16_t accy_addr,
z21::TurnoutInfo::Mode mode )
finalprivate
Todo
document

Member Data Documentation

◆ _dcc_service

std::shared_ptr<z21::server::intf::Dcc> mw::roco::z21::Service::_dcc_service
private

◆ _internal_mutex

std::mutex mw::roco::z21::Service::_internal_mutex
private

◆ _ws_sock_fds

std::set<int> mw::roco::z21::Service::_ws_sock_fds
private

The documentation for this class was generated from the following files: