Firmware  0.0.0
Loading...
Searching...
No Matches
z21::Service Class Reference

#include <service.hpp>

Inheritance diagram for z21::Service:
Collaboration diagram for z21::Service:

Public Member Functions

 Service (BaseType_t xCoreID)
 
 ~Service ()
 
void dcc (std::shared_ptr< z21::server::intf::Dcc > dcc_service)
 
esp_err_t socket (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
 
void logoff (z21::Socket const &sock) 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
 
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
 
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()

z21::Service::Service ( BaseType_t xCoreID)
explicit
Todo
document

◆ ~Service()

z21::Service::~Service ( )
Todo
document

Member Function Documentation

◆ cvPomAccessoryRead()

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

◆ cvPomAccessoryWrite()

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

◆ cvPomRead()

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

◆ cvPomWrite()

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

◆ cvRead()

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

◆ cvWrite()

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

◆ dcc()

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

◆ locoDrive()

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

◆ locoFunction()

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

◆ locoInfo()

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

◆ locoMode() [1/2]

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

◆ locoMode() [2/2]

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

◆ logoff()

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

◆ socket()

esp_err_t z21::Service::socket ( http::Message & msg)
Todo
document
Bug
if the socket cloases 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 z21::Service::stop ( )
nodiscardfinalprivate
Todo
document

◆ taskFunction()

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

◆ trackPower() [1/2]

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

◆ trackPower() [2/2]

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

◆ transmit()

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

Member Data Documentation

◆ _dcc_service

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

◆ _internal_mutex

std::mutex z21::Service::_internal_mutex
private

◆ _ws_sock_fds

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

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